mirror of
https://github.com/rustmailer/bichon.git
synced 2026-08-03 07:48:34 +02:00
fixZ: Send IMAP ID command after successful authentication to ensure compatibility with 163 mail servers #25
This commit is contained in:
@@ -16,7 +16,6 @@
|
|||||||
// You should have received a copy of the GNU Affero General Public License
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
use crate::modules::error::code::ErrorCode;
|
use crate::modules::error::code::ErrorCode;
|
||||||
use crate::modules::imap::session::SessionStream;
|
use crate::modules::imap::session::SessionStream;
|
||||||
use crate::{modules::error::BichonResult, raise_error};
|
use crate::{modules::error::BichonResult, raise_error};
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ use crate::modules::imap::client::Client;
|
|||||||
use crate::modules::imap::oauth2::OAuth2;
|
use crate::modules::imap::oauth2::OAuth2;
|
||||||
use crate::modules::imap::session::SessionStream;
|
use crate::modules::imap::session::SessionStream;
|
||||||
use crate::modules::oauth2::token::OAuth2AccessToken;
|
use crate::modules::oauth2::token::OAuth2AccessToken;
|
||||||
use crate::{decrypt, raise_error};
|
use crate::{bichon_version, decrypt, raise_error};
|
||||||
use async_imap::Session;
|
use async_imap::Session;
|
||||||
use tracing::error;
|
use tracing::error;
|
||||||
|
|
||||||
@@ -143,6 +143,19 @@ impl ImapConnectionManager {
|
|||||||
.await;
|
.await;
|
||||||
return Err(error);
|
return Err(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if capabilities.has_str("ID") || capabilities.has_str("id") {
|
||||||
|
session
|
||||||
|
.id([
|
||||||
|
("name", Some("bichon")),
|
||||||
|
("version", Some(bichon_version!())),
|
||||||
|
("vendor", Some("rustmailer")),
|
||||||
|
])
|
||||||
|
.await
|
||||||
|
.map_err(|e| {
|
||||||
|
raise_error!(format!("{:#?}", e), ErrorCode::ImapCommandFailed)
|
||||||
|
})?;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Err(error) => {
|
Err(error) => {
|
||||||
error!("Failed to fetch IMAP capabilities: {:#?}", error);
|
error!("Failed to fetch IMAP capabilities: {:#?}", error);
|
||||||
|
|||||||
Reference in New Issue
Block a user