簡體   English   中英

MONO / .NET 4-ASP.NET使用Google SMTP從頁面發送電子郵件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM