[英]MONO / .NET 4 - ASP.NET sending email from page using Google SMTP
我不知道為什么,當我運行在按鈕onlick事件處理程序中調用的這段代碼時,頁面凍結,並且再也沒有返回交互式狀態。
當然,我不接收電子郵件。
public virtual void button1Clicked (object sender, EventArgs args)
{
SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", 465);
smtpClient.Credentials = new System.Net.NetworkCredential("my correct gmail adress", "my correct gmail account password");
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.EnableSsl = true;
smtpClient.Timeout = 5;
MailMessage mail = new MailMessage();
mail.From = new MailAddress("my correct gmail adress", "My Site");
mail.To.Add(new MailAddress("other correct email adress"));
mail.Body = "Hello";
smtpClient.Send(mail);
}
我找不到答案-所以我開始這個問題。
也許我不夠具體,但是也許某人有這樣的問題並解決了。
謝謝JS
如果您正在使用System.Net.Mail.SmtpClient :
1)您正在使用“ smtp.gmail.com”,端口應為587,而不是465
SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", 587);
2)如果您尚未導入根證書和gmail ssl證書,請執行以下操作:
sudo mozroots --import --ask-remove
sudo certmgr -ssl smtps://smtp.gmail.com:465
3)將安全性丟到窗外以允許較早的TLS連接
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", 587 );
smtpClient.UseDefaultCredentials = false;
3)再次運行該程序,除非將Google / Gmail設置為接受“ 安全性較低的應用 ”,否則該程序可能會失敗
Unhandled Exception:
System.Net.Mail.SmtpException: 534-5.7.14 <https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbvKF
534-5.7.14 m8ujrQCJbYSBmupvILyro-ffZjZHJHDm8Jy6SXO3OJpnw5Nx4lZlLG5aKPC9N8SvdFuOeZ
534-5.7.14 A4u5qmZkkLiWbTNjE99QrFM5WEz7yK8rcATt2eg35G77W7Z8lVvlwqbRBzVMftUl_Iq9tP
534-5.7.14 vwAs_TsNaViXxiSiPFf36j5SiyaN_ZigDciAgv9VWcASrr1BAJ0qRXtEI9blHl5iFuAwjz
534-5.7.14 mI9FPcb9kCjIuX1wxsZcDYGr2i7I> Please log in via your web browser and
534-5.7.14 then try again.
534-5.7.14 Learn more at
534 5.7.14 https://support.google.com/mail/answer/78754 w9sm5345037pbs.82 - gsmtp
at System.Net.Mail.SmtpClient.CheckStatus (SmtpResponse status, Int32 i) [0x00000] in <filename unknown>:0
at System.Net.Mail.SmtpClient.Authenticate (System.String user, System.String password) [0x00000] in <filename unknown>:0
at System.Net.Mail.SmtpClient.Authenticate () [0x00000] in <filename unknown>:0
at System.Net.Mail.SmtpClient.SendCore (System.Net.Mail.MailMessage message) [0x00000] in <filename unknown>:0
at System.Net.Mail.SmtpClient.SendInternal (System.Net.Mail.MailMessage message) [0x00000] in <filename unknown>:0
at System.Net.Mail.SmtpClient.Send (System.Net.Mail.MailMessage message) [0x00000] in <filename unknown>:0
4)登錄Gmail,查找他們發送給您的有關外部帳戶訪問權限的電子郵件。 點擊鏈接以啟用安全性較低的應用。
5)再試一次您的應用程序。
注意:我通過Source或Nuget將MailKit用於gmail和其他服務。 恕我直言,更清潔和支持。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.