【发布时间】:2019-09-02 14:35:41
【问题描述】:
目前,我们有一个用于发送电子邮件的 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] 期间未通过身份验证发送匿名邮件”在下面链接的文章中。
Send SMTP email using System.Net.Mail via 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
这似乎发生在很多人身上,我想知道他们正在做什么来解决它?
【问题讨论】: