服务器响应为:5.7.57 SMTP - Office 365

kwi*_*ith 7 asp.net smtp office365

目前,我们有一个发送电子邮件的 Web 表单,该表单在几个月前随着我们公司 Office 365 的迁移而停止工作。我在排除故障时消除了所有其他代码,只运行电子邮件部分以获取以下错误:“System.Net.Mail.SmtpException:SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.7.57 SMTP;在 MAIL FROM "期间,客户端未经过身份验证以发送匿名邮件。

我在网络/堆栈溢出上找到了许多具有相同错误代码的解决方案,尝试将代码更改为建议的解决方案,但没有成功。

尝试了我们的全局地址列表中列出的许多不同的电子邮件别名,但我的帐户、不同的端口 (25,587)、不同的 smtp 地址都没有成功,到目前为止还没有成功。

多个用户表示“不幸的是,此代码对 Office 365 不再有效。出现的错误消息是 SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.7.57 SMTP;客户端未通过身份验证在 MAIL FROM [HE1PR05CA0133.eurprd05.prod.outlook.com] 期间发送匿名邮件”在下面链接的文章中。

使用 System.Net.Mail 通过 Exchange Online 发送 SMTP 电子邮件 (Office 365)

我的代码如下所示。

    Dim mail As MailMessage = New MailMessage
    mail.From = New MailAddress("email12345@company.com")
    mail.To.Add("email12345@company.com")
    mail.Subject = "Test"
    mail.IsBodyHtml = False
    mail.Body = "Test"

    Dim SmtpServer As SmtpClient = New SmtpClient

    SmtpServer.Host = "smtp.office365.com"
    SmtpServer.Port = 587
    SmtpServer.UseDefaultCredentials = False
    SmtpServer.Credentials = New System.Net.NetworkCredential("MyEmail", "MyPass")
    SmtpServer.DeliveryMethod = SmtpDeliveryMethod.Network
    SmtpServer.EnableSsl = True
    SmtpServer.TargetName = "STARTTLS/smtp.office365.com"
    Try
        SmtpServer.Send(mail)
    Catch ex As Exception
        Response.Write(ex.ToString)
    End Try
Run Code Online (Sandbox Code Playgroud)

似乎很多人都遇到了这种情况,我想知道他们正在做什么来解决它?

小智 2

我通过为我的 Outlook365 帐户创建应用程序密码解决了这个问题。您可以按如下方式创建/管理应用程序密码。

转到我的帐户>>安全和隐私>>附加安全验证>>创建和管理应用程序密码

创建应用程序密码并在代码中使用它。希望这能解决您的问题