目前我们有一个网页表单用于发送电子邮件,在公司迁移至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(Office 365)发送SMTP电子邮件
我的代码如下所示。
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
看起来很多人都遇到了这个问题,我想知道他们是如何解决的?