Skip to main content

imap_wizard/
imap_wizard.rs

1//! Runs the IMAP configuration wizard against an email address read
2//! from a CLI arg or the `EMAIL` env var. No autoconfig discovery is
3//! performed — the wizard falls back to standard defaults
4//! (`imap.<domain>`, port 993, TLS).
5//!
6//! ```sh
7//! EMAIL=alice@example.com cargo run --example imap-wizard
8//! # or
9//! cargo run --example imap-wizard -- alice@example.com
10//! ```
11
12use std::env;
13
14use pimalaya_cli::wizard;
15
16fn main() {
17    let email = env::args()
18        .nth(1)
19        .or_else(|| env::var("EMAIL").ok())
20        .expect("EMAIL env var or first CLI arg");
21
22    let (local, domain) = email.rsplit_once('@').expect("EMAIL must contain `@`");
23
24    let account = format!("{local}-{domain}");
25    let config = wizard::imap::run(&account, local, domain, None).unwrap();
26
27    println!();
28    println!("--- IMAP config ---");
29    println!("host:       {}", config.host);
30    println!("port:       {}", config.port);
31    println!("encryption: {}", config.encryption);
32    println!("login:      {}", config.login);
33}