MailKit.Security.AuthenticationException:'535:5.7.139 身份验证失败,用户被组织的安全默认策略锁定

问题描述 投票:0回答:2

我正在尝试使用以下配置从我的 Office365 电子邮件帐户的 .Net 6 应用程序发送电子邮件:this

"EmailConfiguration": {
   "From": "XXXXXXXXXXX",
   "SmtpServer": "smtp.office365.com",
   "Port": 25, // tried port 587 also
   "Username": "XXXXXXXXX",
   "Password": "XXXXXXXX"
}

这是我发送电子邮件的代码:

using var client = new SmtpClient();
try
{
    client.Connect(_emailConfig.SmtpServer, _emailConfig.Port, MailKit.Security.SecureSocketOptions.StartTls);
    //client.AuthenticationMechanisms.Remove("XOAUTH2");
    client.Authenticate(_emailConfig.UserName, _emailConfig.Password);

    client.Send(mailMessage);
}
catch
{
    //log an error message or throw an exception or both.
    throw;
}
finally
{
    client.Disconnect(true);
    client. Dispose();
}

但是我在

client.Authenticate
通话中遇到此错误

MailKit.Security.AuthenticationException:'535:5.7.139 身份验证 不成功,用户被组织的安全默认设置锁定 政策。请联系您的管理员。 [PN2PR01CA0027.INDPRD01.PROD.OUTLOOK.COM 2023-12-10T12:33:11.474Z 08DBF8259ECF3F85]'

我们尝试检查管理面板中的所有内容,以查看特定电子邮件帐户或用户是否被锁定,但我们没有发现类似情况。

我已使用

以下
为该特定电子邮件帐户启用了 Authenticated SMTP

设置

我也尝试禁用该设置,但随后我开始收到身份验证失败的错误。

任何人都可以指导我可能出了什么问题吗?

smtp .net-6.0 smtpclient
2个回答
0
投票

3天前我也遇到了同样的问题。我写信表示支持,但尚未回复。以前一切都对我有用,但后来就停止了。

还没解决吗?


0
投票

我遇到了同样的问题,发现你必须在 Entra 中启用条件访问。 Microsoft 不推荐这样做,但这是我能够使其正常工作的唯一方法。

要执行此操作:

  • 至少以安全管理员身份登录 Microsoft Entra 管理中心。
  • 浏览至“身份”>“概述”>“属性”。
  • 选择管理安全默认值。 (在页面底部)
  • 将安全性默认设置为启用。
  • 选择保存。

执行此操作的 Microsoft 官方说明如下:https://learn.microsoft.com/en-us/entra/fundamentals/security-defaults

您还必须关闭您想要发送电子邮件的用户的多重身份验证。可能还有其他方法可以通过应用程序密钥或其他方式来解决此部分,但我对此不是 100% 确定。我确信有人会在这里提出并提及它。

© www.soinside.com 2019 - 2024. All rights reserved.