[VB.Net] SmtpClientException 回應 5.5.1
利用 SmtpClient 透過 Gmail 寄送電子郵件,卻引發 SmtpClientException(伺服器回應:5.5.1),怎麼回事?
圖 1 SmtpClientException
參考 Google 的 「Set up POP in mail clients」,SMPT 需要使用 TLS,而 Port 可使用 587。在知道操作方式後,來看一下程式碼:
Dim smtp As New Net.Mail.SmtpClient("smtp.gmail.com", 587) smtp.Credentials = New NetworkCredential(username, password) smtp.EnableSsl = True smtp.Send(from:=username, recipients:=username, subject:=msgSubject, body:=msgBody)
在確認程式碼沒問題卻發生「類型 'System.Net.Mail.SmtpException' 的未處理例外狀況發生於 System.dll」,為什麼?
測試隨後,Google 馬上寄了一封信到測試用電子信箱的備援電子信箱中:
圖 2 Google 登入嘗試遭拒
原來問題是出在 Google 的「安全性較低的應用程式存取權限」。根據 Google 描述:「由於部分應用程式和裝置採用安全性較低的登入技術,您的帳戶會因此出現安全漏洞。建議您取消這些應用程式的存取權限;如果您瞭解有風險,但還是要使用這些應用程式,則可以開放存取權限。」
解決辦法很簡單,只要到 Google 的低安全性應用程式將存取權限設為開啟即可。
留言
張貼留言