2017-08-08 47 views
2

發送郵件我收到以下錯誤電子郵件錯誤,而從C#代碼

SMTP服務器要求安全連接或客戶端未通過身份驗證。服務器響應是:5.5.1需要身份驗證

如何解決此問題?我的代碼:

MailMessage mail = new MailMessage(); 
mail.From = new MailAddress(FromAddress); 
mail.To.Add(email); 
mail.Subject = "Forgot Password"; 
mail.Body = SendMessage; 
mail.IsBodyHtml = true; 
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com"); 
SmtpServer.Port = 587; 
SmtpServer.DeliveryMethod = SmtpDeliveryMethod.Network; 
NetworkCredential myCreds = new NetworkCredential(EmailUsername, EmailPassword); 
SmtpServer.Credentials = myCreds; 
SmtpServer.EnableSsl = true; 
SmtpServer.UseDefaultCredentials = true; 
SmtpServer.Send(mail); 

Webconfig如下

<add key="FromAddress" value="[email protected]"/> 
<add key="EmailUsername" value="[email protected]"/> 
<add key="EmailPassword" value="[email protected]"/> 

如下改變我的電子郵件設置。

enter image description here

FROMADDRESS和EmailUsername是相同的電子郵件。

+0

與您的問題沒有直接關係,但MailMessage和SmtpClient都實現了IDisposable,並且特別是在SmtpClient的情況下,如果不處理,實際上可能會耗盡資源。 – hatchet

+0

請務必更改密碼,因爲它在問題中顯示;-) – IrishChieftain

回答

4

確保您設置SmtpClient.CredentialsAFTER調用SmtpClient.UseDefaultCredentials = false

訂單很重要,因爲設置SmtpClient.UseDefaultCredentials = false會將SmtpClient.Credentials重置爲空。