io-imap 0.5.0

IMAP client library for Rust
Documentation
//! Full std client: pass a URL + TLS config, let
//! [`ImapClientStd::connect`] open TCP, negotiate TLS, read the
//! greeting + capability list. Requires the `rustls-ring`
//! (or `rustls-aws` / `native-tls`) feature.
//!
//! Run with: `URL=imaps://imap.example.org cargo run --example std_client_full`

use std::{env, error::Error};

use io_imap::{client::ImapClientStd, session::ImapSessionOpenOptions};
use io_sasl::mechanism::Sasl;
use pimalaya_stream::tls::Tls;
use url::Url;

fn main() -> Result<(), Box<dyn Error>> {
    env_logger::init();

    let url = env::var("URL").unwrap();
    let url = Url::parse(&url)?;
    let tls = Tls::default();

    let opts = ImapSessionOpenOptions::default();
    let (_client, capabilities) = ImapClientStd::connect(&url, &tls, None::<Sasl>, opts)?;

    for capability in capabilities {
        println!("{capability:?}");
    }

    Ok(())
}