无法使用 SMTP 服务器通过 Office 365 发送电子邮件(MFA 已关闭)

时间:2021-04-08 17:01:22

标签: c# email smtp office365 microsoft365

我的一位客户最近更换了 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 安全默认值。

我不知道还能看什么。该错误似乎没有指向任何明显的内容。有人可以帮忙吗。

(另外,为了记录,我知道还有其他类似的问题,但没有人解决了这个问题,所以我们来了)。

0 个答案:

没有答案