From afccebf331b44e9c2707ee46b9dea9f76f31bbe4 Mon Sep 17 00:00:00 2001 From: Manos Pitsidianakis Date: Thu, 18 Jul 2024 11:01:57 +0300 Subject: [PATCH] melib/imap: add AUTH=PLAIN support Signed-off-by: Manos Pitsidianakis --- melib/src/imap/connection.rs | 14 ++++++++++++++ melib/src/imap/mod.rs | 1 + 2 files changed, 15 insertions(+) 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",