diff --git a/melib/src/imap/connection.rs b/melib/src/imap/connection.rs index 8b514998..59d36929 100644 --- a/melib/src/imap/connection.rs +++ b/melib/src/imap/connection.rs @@ -462,6 +462,20 @@ impl ImapStream { ret.wait_for_continuation_request().await?; ret.send_literal(b"c2lyaGM=").await?; } + _ if capabilities + .iter() + .any(|cap| cap.eq_ignore_ascii_case(b"AUTH=PLAIN")) => + { + let credentials = format!( + "\0{}\0{}", + &server_conf.server_username, &server_conf.server_password + ); + ret.send_command(CommandBody::authenticate_with_ir( + AuthMechanism::Plain, + credentials.as_bytes(), + )) + .await?; + } _ => { if capabilities .iter() diff --git a/melib/src/imap/mod.rs b/melib/src/imap/mod.rs index 26e5e23c..8e16304a 100644 --- a/melib/src/imap/mod.rs +++ b/melib/src/imap/mod.rs @@ -82,6 +82,7 @@ pub type MessageSequenceNumber = ImapNum; pub static SUPPORTED_CAPABILITIES: &[&str] = &[ "AUTH=ANONYMOUS", + "AUTH=PLAIN", "AUTH=XOAUTH2", "COMPRESS=DEFLATE", "CONDSTORE",