2015-10-31 172 views
1

我想從我的Windows窗體應用程序發出電子郵件。我看過很多類似的帖子,但似乎沒有任何作用。但是,當我在gmail中更改我的設置以允許不太安全的應用程序時,代碼就可以工作。但我不想讓這個應用程序易受我的帳戶影響。如果我不允許安全性較低的應用程序,則會出現代碼和錯誤。從C#應用程序發送郵件

MailMessage mail = new MailMessage("[email protected]", "[email protected]", "Test Automation", "Did you receive this?"); 
SmtpClient client = new SmtpClient("smtp.gmail.com"); 
client.Port = 587; 
client.Credentials = new NetworkCredential("[email protected]", "password"); 
client.EnableSsl = true; 
client.Send(mail); 
MessageBox.Show("Mail Sent", "success"); 

型「System.Net.Mail.SmtpException」 未處理的異常發生在System.dll中

附加信息:SMTP服務器要求安全連接 或客戶端沒有經過認證。服務器響應是:5.5.1 需要身份驗證。

請幫忙!

P.S. :我使用我的gmail創建了一個Outlook帳戶,當我將其放入帳戶服務器和證書時,代碼就可以工作。那麼新的gmail安全性變化是否也是問題?其他類似的問題已經解決了他們的問題,但是在嘗試幾乎所有的解決方案之後,我都會遇到同樣的錯誤

+0

[Gmail錯誤:SMTP服務器需要安全連接或客戶端未通過驗證。服務器響應是:5.5.1需要身份驗證](http://stackoverflow.com/questions/20906077/gmail-error-the-smtp-server-requires-a-secure-connection-or-the-client-was-不) – hrust

+0

[通過Gmail SMTP服務器用C#發送電子郵件]可能的重複(http://stackoverflow.com/questions/704636/sending-email-through-gmail-smtp-server-with-c-sharp) – MethodMan

+0

@Synaps不,它不一樣。我已經嘗試了兩個步驟,沒有工作 – Nil

回答

1

如果沒有2的因素

啓用「不夠安全的應用」

https://www.google.com/settings/security/lesssecureapps

如果你有2個因素認證

可以使一個「應用程序密碼」。去下面的ling並添加一個自定義的應用程序(只需要輸入你想要的任何名字,名字不重要只用於你自己的「簿記」),然後使用該密碼作爲密碼。

client.Credentials = new NetworkCredential("[email protected]", "Generated Password");

https://security.google.com/settings/u/1/security/apppasswords

注: 如果你「的您正在尋找的設置不適用於您的帳戶」然後使用「不夠安全的應用」

+0

它沒有..不起作用..也嘗試添加ServerCertificateValidationCallback。這也沒有幫助。 – Nil

+0

添加了更多的東西可能會做到這一點,即時通訊只是在這裏,你有沒有嘗試在web.config中的發件人信息? (只是一個想法) –

+0

它是一個winform應用程序。我沒有一個web.config文件。 – Nil

相關問題