【问题标题】:C# Mail Kit - Office 365 - Server issueC# 邮件工具包 - Office 365 - 服务器问题
【发布时间】:2017-11-16 02:19:58
【问题描述】:

我在我的 C# webapps 中使用 Mailkit 已经有一段时间了。以前从来没有任何问题,但是今天我尝试发送时开始收到以下错误:

AuthenticationException:ErrorInProcessing:4.7.0 临时服务器错误。请稍后再试。 PRX4 [SYXPR01CA0117.ausprd​​01.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 确认他们目前不认为他们的交换服务器存在问题。

更新

经过更多测试确认我可以telnet到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

【问题讨论】:

    标签: c# email office365 mailkit


    【解决方案1】:

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

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

    【讨论】:

    • 嘿 jstedfast - 谢谢你的回复,你的权利,我的 NuGet 对我大发雷霆,一些刷新和 avil 版本回到 1.16.1 - 我希望这是一个没有邮件包的问题很多证据与 Office 365 一样,我可以影响我可以修复 mailkit 问题的交换服务器!我可能其他人也发生过这种情况,否则我需要希望 MS 能解决他们的问题。
    • 刚刚确认 Mailkit 是问题所在。推出它并用 .net 邮件 STMPClient 替换它,一切都恢复正常了。
    • 那么请提交错误报告并附上协议日志以便调试。
    【解决方案2】:

    尝试添加到下一行:

    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);
        }
    

    【讨论】:

    • 感谢您的建议,我推出了 Mailkit 并用标准的 .net SMTP 替换它,这解决了我的问题。我非常喜欢 MailKit 中的异步调用,但它不值得摆弄。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-31
    • 1970-01-01
    相关资源
    最近更新 更多