我的一位客户最近更换了 IT 提供商,并在此过程中重新创建了他们的 Office 365 设置(包括 Sharepoint 和 Outlook)。
当他们这样做时,他们默认启用了 MFA(多重身份验证)。在这样做时,他们似乎以某种方式阻止了我的应用程序通过其用户下的 SMTP 服务器发送电子邮件。
这是我的代码的基本示例
using (SmtpClient client = new SmtpClient("Smtp.office365.com", 587))
{
client.EnableSsl = true;
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential("user@domain.com", "password");
MailMessage mail = new MailMessage()
{
From = new MailAddress("user@domain.com"),
IsBodyHtml = false,
Subject = "Test message",
Body = "Test content",
};
mail.To.Add(new MailAddress("receiver@domain.com"));
client.Send(mail);
};
当我发送电子邮件时收到以下错误 -
System.Net.Mail.SmtpException: 'SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.7.57 客户端未通过身份验证以发送邮件。
所以一开始我是因为 MFA 开启而无法发送,但现在我认为这不再是问题了,我们已经尝试了很多东西,但我仍然无法收到要发送的电子邮件.
我可以使用获得的用户名/密码登录该帐户,因此我认为这不是真正的身份验证问题。
这是我们尝试过的:
启用 SMTP 身份验证
应用密码而不是用户密码来规避应用中的 MFA。
对这个特定用户禁用 MFA。
将此帐户从共享邮箱切换到常规邮箱。
禁用 Azure 安全默认值。
我不知道还能看什么。该错误似乎没有指向任何明显的内容。有人可以帮忙吗。
(另外,为了记录,我知道还有其他类似的问题,但没有人解决了这个问题,所以我们来了)。