【发布时间】:2020-03-21 15:07:21
【问题描述】:
我有以下 VB.NET 代码用于从我的 Office 365 帐户发送电子邮件,在 Microsoft 强制在 Office 365 帐户上启用 MFA 之前,它一直运行良好:
Imports System.Net.Mail
Sub main()
Dim message As MailMessage = New MailMessage()
message.From = New MailAddress("MyEmail@MyOffice365Account.com")
message.To.Add(New MailAddress("Receiver@AnyEmail.com"))
message.Subject = "My subject"
message.Body = "My body message"
message.IsBodyHtml = True
message.BodyEncoding = System.Text.Encoding.UTF8
message.SubjectEncoding = System.Text.Encoding.UTF8
Dim smtp As New SmtpClient("smtp.office365.com", 587)
smtp.EnableSsl = True
smtp.Credentials = New Net.NetworkCredential("MyEmail@MyOffice365Email.com", "my password")
smtp.Send(message)
End sub
当我运行上述代码时,我收到以下错误:
“System.Net.Mail.SmtpException”类型的未处理异常 发生在 System.dll 中
附加信息:SMTP 服务器需要安全连接 或客户端未通过身份验证。服务器响应为:5.7.57 SMTP;在 MAIL 期间,客户端未通过身份验证发送匿名邮件 FROM [DB6PR0501CA0038.eurprd05.prod.outlook.com]
我确定错误是在我为我的帐户启用多重身份验证后发生的,我无法禁用此功能,因为 Microsoft 已强制 Office 365 用户使用此功能。
有什么办法可以解决这个问题吗?
【问题讨论】:
-
Create an app password for Office 365。正如您在文档中看到的那样,SmtpClient 类的备注部分已被弃用。建议的替代电子邮件客户端类是MailKit。
标签: c# vb.net office365 smtpclient multi-factor-authentication