我编写了几个使用 SmtpClient 的 C# 应用程序。他们已经运行多年了。这周他们都停止工作并抛出以下异常:
System.Net.Mail.SmtpException
HResult=0x80131500
Message=The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.57 Client not authenticated to send mail. Error: 535 5.7.139 Authentication unsuccessful, the request did not meet the criteria to be authenticated successfully. Contact your administrator. Source=System.Net.Mail
我不是一个系统人员,只是一个底层的程序员。我管理自己的 Microsoft 365 帐户和 Azure 帐户。
在 C# 应用程序中,我没有使用默认凭据:
using System.Net.Mail;
...
client.Credentials = new System.Net.NetworkCredential(FROM, PW, DOMAIN);
在 MS 365 管理中心中,当我选择“经过身份验证的 SMTP”时,出现以下错误:
Cannot process argument transformation on parameter 'Identity'. Cannot convert value "" to type "Microsoft.Exchange.Configuration.Tasks.RecipientIdParameter". Error: "Parameter values of type Microsoft.Exchange.Configuration.Tasks.RecipientIdParameter can't be empty. Specify a value, and try again. Parameter name: identity"
当我退出活动用户并再次输入时,所有“管理电子邮件应用程序”都会被选中。但我仍然收到上述错误,并且无法在我的应用程序中发送电子邮件。
我需要做什么来纠正这个问题?
现在在所有 Office365 租户中禁用基本身份验证。在 2022 年 12 月 31 日之前,如果租户中的用户和应用无法连接,您可以重新启用受影响的协议。现在,没有人(您或 Microsoft 支持人员)可以在您的租户中重新启用基本身份验证。有关详细信息,请参阅在 Exchange Online 中弃用基本身份验证。
System.Net.Mail
不支持modern authentication
。相反,您可以考虑使用第三方 SMTP 客户端实现,例如 MailKit。