使用MailKit对Office 365 Outlook IMAP进行身份验证失败的特定用户

时间:2019-11-28 12:45:47

标签: outlook office365 imap mailkit

对于许多客户,我们连接到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.

蒸汽中发出的日志是:

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.

对我在这里做错的任何想法吗?

1 个答案:

答案 0 :(得分:0)

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

Here's一篇文章