【问题标题】:MailKit unable to authenticate IMAPMailKit 无法验证 IMAP
【发布时间】:2020-07-28 13:58:06
【问题描述】:

我已经阅读了所有 MailKit 问题,但我的仍然无法正常工作。我已经删除了我的实际登录密码,但它们对于该帐户是正确的。

using (var client = new ImapClient(new ProtocolLogger(@"c:\temp\imaplog.txt")))
{
    try
    {
        client.Connect("outlook.office365.com", 993, true);
        client.AuthenticationMechanisms.Remove("XOAUTH2");
        client.AuthenticationMechanisms.Clear();
        client.SslProtocols = SslProtocols.Tls;
        client.Authenticate(<username>,<password>);
        //var inbox = client.mai;
        //inbox.Open(FolderAccess.ReadWrite);
        //var uids = await inbox.SearchAsync(MailKit.Search.SearchQuery.NotSeen);
    }
    catch (Exception exc)
    {
    }
}

IMAP 日志文件

Connected to imaps://outlook.office365.com:993/
S: * OK The Microsoft Exchange IMAP4 service is ready. [UwBOADYAUABSADAAMQBDAEEAMAAwADAAMwAuAHAAcgBvAGQALgBlAHgAYwBoAGEAbgBnAGUAbABhAGIAcwAuAGMAbwBtAA==]
C: A00000000 CAPABILITY
S: * CAPABILITY IMAP4 IMAP4rev1 AUTH=PLAIN AUTH=XOAUTH2 SASL-IR UIDPLUS MOVE ID UNSELECT CHILDREN IDLE NAMESPACE LITERAL+
S: A00000000 OK CAPABILITY completed.
C: A00000001 LOGIN username password
S: A00000001 NO LOGIN failed.

【问题讨论】:

  • MailKit 是否向服务器发送了正确的用户名和密码字符串?您的用户名是否包含帐户电子邮件地址的@domain 部分?如果您尝试不包含它或包含它(即与您正在做的事情相反)怎么办?如果您删除 client.AuthenticationMechanisms.Clear(); 以允许 MailKit 使用 PLAIN 身份验证,会发生什么情况?在使用 PLAIN 进行测试时,请务必尝试使用和不使用 @domain
  • 我已经尝试了你所说的一切,但无济于事。如果我包含域,它看起来像域/用户名,密码是否正确?
  • 不,它看起来像 username@outlook.comusername@office365.com

标签: c# office365 imap mailkit


【解决方案1】:

您需要进入您的 Office365 设置并确保允许通过“不太安全的应用程序”进行 IMAP 登录。

仅供参考:https://developer.microsoft.com/en-us/office/blogs/end-of-support-for-basic-authentication-access-to-exchange-online-apis-for-office-365-customers/

换句话说,您需要在 2020 年 10 月之前开始使用 XOAUTH2。

【讨论】:

    猜你喜欢
    • 2017-01-29
    • 2017-01-27
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 2021-08-03
    • 1970-01-01
    • 1970-01-01
    • 2014-10-15
    相关资源
    最近更新 更多