Asp.net

在 Asp.Net 中使用 Office365 SMTP 時出錯

  • May 22, 2018

我正在使用 Office365 Web 應用程序 SMTP 從 Asp.Net 發送電子郵件,但它總是拋出以下錯誤!

System.Net.Mail.SmtpException:SMTP 伺服器需要安全連接或客戶端未通過身份驗證。伺服器響應為:5.7.1 客戶端未在 System.Net.Mail.MailCommand.CheckResponse 進行身份驗證

下面給出了 web.config - 更改了使用者名和密碼

<network enableSsl="true"  host="pod51007.outlook.com" userName="XXXX" password="XXXXX" port="587" defaultCredentials="false" />

我認為錯誤消息具有誤導性(與大多數 Microsoft 錯誤一樣!) - 錯誤程式碼看起來非常類似於 SMTP 錯誤,而 5.7.1 是中繼錯誤。您可能需要使用 Microsoft 提供的管理門戶指定您的開發/生產公共IP 地址。

我有同樣的問題並解決了:

Dim client As SmtpClient = New SmtpClient()
client.Credentials = New System.Net.NetworkCredential("your user", "your password")
client.Port = 587 
client.Host = "smtp.office365.com"

這條指令很重要,沒有它們是行不通的:

client.UseDefaultCredentials = False
client.DeliveryMethod = SmtpDeliveryMethod.Network
client.EnableSsl = True

引用自:https://stackoverflow.com/questions/13803839