【问题标题】:Authenticating to Office 365 Outlook IMAP using MailKit fails for a specific user对于特定用户,使用 MailKit 对 Office 365 Outlook IMAP 进行身份验证失败
【发布时间】:2019-12-05 04:18:17
【问题描述】:

对于很多客户,我们连接到 Office 365 Outlook IMAP 服务器,并且效果很好。但是,对于一位客户来说,它现在不起作用。我可以使用用户名和密码登录 portal.office.com,然后转到 Outlook 那里查看邮箱,但我一辈子都无法在我的代码中使用它。这是我的代码:

var stream = new MemoryStream();
var logger = new ProtocolLogger(stream, false);

using (var client = new MailKit.Net.Imap.ImapClient(logger))
{
    try
    {
        client.Connect("outlook.office365.com", 993, true);
        client.AuthenticationMechanisms.Remove("XOAUTH2");
        client.Authenticate(@"SVC_CubitDLE@lyse.no", @".whb----%RS*,H^");
        var inbox = client.Inbox;
        inbox.Open(FolderAccess.ReadWrite);
        var uids = await inbox.SearchAsync(SearchQuery.NotSeen);
    } catch (Exception exc){
        exc.Dump();
        stream.Position = 0;
        var reader = new StreamReader(stream);
        reader.ReadToEnd().Dump();
    }
}

我尝试了使用和不使用client.AuthenticationMechanisms.Remove("XOAUTH2");

抛出的异常是AuthenticationException,消息为LOGIN failed.

steam中发出的日志是:

S: * OK The Microsoft Exchange IMAP4 service is ready. [UABSADAAUAAyADYANABDAEEAMAAxADkAOAAuAEYAUgBBAFAAMgA2ADQALgBQAFIATwBEAC4ATwBVAFQATABPAE8ASwAuAEMATwBNAA==]
C: E00000000 CAPABILITY
S: * CAPABILITY IMAP4 IMAP4rev1 AUTH=PLAIN AUTH=XOAUTH2 SASL-IR UIDPLUS ID UNSELECT CHILDREN IDLE NAMESPACE LITERAL+
S: E00000000 OK CAPABILITY completed.
C: E00000001 AUTHENTICATE PLAIN AFNWQ19DdWJpAAAAAAAAAAAAAAAAAAAASF4=
S: E00000001 NO AUTHENTICATE failed.
C: E00000002 LOGIN SVC_CubitDLE@lyse.no ".whb----%RS*,H^"
S: E00000002 NO LOGIN failed.

知道我在这里做错了什么吗?

【问题讨论】:

  • 您好像粘贴了两次实际密码。可能想立即改变。
  • (仅供参考,AUTHENTICATE PLAIN 也包含 base64 编码的密码。)
  • 我现在已经查看了实际问题,我认为这是微软客户服务的问题。 IMAP 部分看起来完美无缺。
  • 我错过了base64部分,但上面的其他密码不是正确的。感谢您的 cmets。
  • 我参加聚会有点晚了,我假设用户名和密码字符串现在已经被混淆了(?),所以我只能问:用户名或密码是否包含任何Unicode字符?我能想到的唯一可能破坏AUTHENTICATE PLAIN的是MailKit的SaslPrep实现在某种程度上是错误的,但这将要求用户名或密码包含似乎并非如此的unicode字符。

标签: outlook office365 imap mailkit


【解决方案1】:

很可能该用户禁用了 IMAP。如果您有权访问 AD,我会检查是否启用。

Here's一篇文章

【讨论】:

    猜你喜欢
    • 2017-01-27
    • 2020-08-19
    • 2020-10-24
    • 1970-01-01
    • 2015-06-27
    • 1970-01-01
    • 2020-11-10
    • 2016-06-04
    • 1970-01-01
    相关资源
    最近更新 更多