C# 邮件工具包 - Office 365 - 服务器问题



我已经在我的C#Web应用程序中使用Mailkit一段时间了。以前从未遇到任何问题,但是今天当我尝试发送时,我开始收到以下错误:

身份验证异常: 错误正在处理: 4.7.0 临时服务器错误。请稍后重试。PRX4 [SYXPR01CA0117.ausprd01.prod.outlook.com] 证实

我最初运行的是 MailKit 1.6,但发生这种情况时,我将 Mailkit 升级到 2.4 以尝试解决此问题。

以下是我用来发送电子邮件的代码。

        using (var client = new SmtpClient())
        {
            client.LocalDomain = "smtp.office365.com";
            await client.ConnectAsync("smtp.office365.com", 587, SecureSocketOptions.StartTls).ConfigureAwait(false);
            client.Authenticate("EmailAddress", "Password");
            await client.SendAsync(emailMessage).ConfigureAwait(false);
            await client.DisconnectAsync(true).ConfigureAwait(false);
        }

如果有人遇到此问题或有一些想法可以解决这个问题,请告诉我!

打电话给Microsoft确认他们目前不相信他们的交换服务器有问题。

更新

经过更多的测试确认,我可以远程登录到office365的实例。 我还可以使用以下代码使用Powershell发送电子邮件

$msolcred = get-credential
Send-MailMessage –From emailaddress –To emailaddress  –Subject “Test Email” –Body “Test” -SmtpServer smtp.office365.com -Credential $msolcred -UseSsl -Port 587

该错误消息来自您的SMTP服务器,而不是MailKit。该错误似乎表明它确实是临时服务器问题。

另外值得注意的是:没有MailKit 2.4这样的东西。最新版本是 1.16.1。

尝试添加到下一行:

client.AuthenticationMechanisms.Remove("XOAUTH2");

所以你的代码可以是:

    using (var client = new SmtpClient())
    {
        client.LocalDomain = "smtp.office365.com";
        await client.ConnectAsync("smtp.office365.com", 587, SecureSocketOptions.StartTls).ConfigureAwait(false);
        client.AuthenticationMechanisms.Remove("XOAUTH2");
        client.Authenticate("EmailAddress", "Password");
        await client.SendAsync(emailMessage).ConfigureAwait(false);
        await client.DisconnectAsync(true).ConfigureAwait(false);
    }

相关内容

  • 没有找到相关文章

最新更新