提问者:小点点

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


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

我在Web/堆栈溢出上发现了许多具有相同错误代码的解决方案,尝试将代码更改为建议的解决方案,但运气不好。

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

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

使用系统发送SMTP电子邮件。Net.Mail通过Exchange Online (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

由于这种情况似乎发生在许多人身上,我想知道他们正在做些什么来解决这个问题?


共2个答案

匿名用户

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

转到我的帐户

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

匿名用户

要启用app-password,您必须在帐户上进行双重身份验证,并且管理员(如果您的帐户在组织中)必须允许在帐户上(或在组织中)使用app-password。我不是365管理员,不了解所有设置。

  • 但是,我们遇到了类似的问题,发件人帐户没有为SMTP AUTH启用“现代身份验证”设置。
  • 请注意,这工作了很长时间,突然停止了(不确定微软是否在2021年2月下旬做了一些安全收紧)

为Outlook等(客户端?)启用了现代身份验证,但没有为“SMTP AUTH”,“IMAP”和“POP”启用(我假设这是“默认值”,建议不要启用新式身份验证,除非您需要它。

    < li >请参见下面的两篇文章。

https://learn.microsoft.com/en-us/exchange/clients-and-mobile-in-exchange-online/authenticated-client-smtp-submission几乎所有连接到Office 365或Microsoft 365中Exchange Online邮箱的现代电子邮件客户端(例如,Outlook、Outlook网页版、iOSMail、OutlookiOS和Android等)不使用SMTP AUTH发送电子邮件。

因此,我们强烈建议您在Exchange Online组织中禁用SMTP AUTH,并仅为仍然需要它的帐户(即邮箱)启用它。有两个设置可以帮助您做到这一点:一个组织范围的设置,用于禁用(或启用)SMTP AUTH
覆盖租户范围设置的每个邮箱设置。

也很高兴知道。将列出“smtp身份验证客户端”的数量。https://learn.microsoft.com/en-us/microsoft-365/security/office-365-security/mfi-smtp-auth-clients-report?view=o365-worldwide