簡體   English   中英

使用asp.net和谷歌SMTP服務器發送電子郵件

[英]Send email using asp.net and google smtp server

我在aspx頁面的代碼背后寫了以下代碼來發送電子郵件。我想使用谷歌SMTP服務器。 但是有些我沒有收到郵件

                protected void btnSubmit_Click(object sender, EventArgs e)
                {              
                // Sender e-mail address.
                MailAddress From = new MailAddress(txtFrom.Text);
                // Recipient e-mail address.
                MailAddress To = new MailAddress(txtTo.Text);
                MailMessage Msg = new MailMessage(From,To);
                Msg.Subject = txtSubject.Text;
                Msg.Body = txtBody.Text;
                // your remote SMTP server IP.
                SmtpClient client = new SmtpClient("smtp.gmail.com");
                client.Credentials = new System.Net.NetworkCredential
                 ("*******@gmail.com", "**********");
                client.EnableSsl = true;
                client.Port = 465;
                client.Send(Msg);
                client.Dispose();
                }

我在做什么錯?請幫忙

這是您需要對SmtpClient對象執行的操作:

     SmtpClient client = new SmtpClient();
     client.DeliveryMethod = SmtpDeliveryMethod.Network;
     client.EnableSsl = true;
     client.Host = "smtp.gmail.com";
     client.Port = 587;
     client.Credentials = new System.Net.NetworkCredential("xxxx@gmail.com", "xxxx");

Gmail使用OAuth 2.0,您可能必須提供某種API密鑰才能訪問其郵件功能。

為了方便起見,通常使用現有的IMAP和SMTP庫完成使用IMAP訪問郵件和使用SMTP發送郵件的過程。 只要這些庫支持簡單身份驗證和安全層(SASL),它們就應該與Gmail支持的SASL XOAUTH2機制兼容。

除了SASL XOAUTH2協議文檔之外,您可能還需要閱讀使用OAuth 2.0訪問Google API,以獲取有關實現OAuth 2.0客戶端的更多信息。

“庫和樣本”頁面使用SASL XOAUTH2機制和IMAP或SMTP提供了各種流行語言的代碼樣本。 來源

這是一個通用的電子郵件程序。

它適用於端口= 25。

記住gmail是IMAP服務器。

  try 
  { 
           MailMessage msg = new MailMessage ();
           MailAddress fromAdd = new MailAddress("fromemail@email.com");
           msg.[To].Add("toemail@email.com");
           msg.Subject = "Choose Session Members";
           msg.From = fromAdd;
           msg .IsBodyHtml = true;
           msg.Priority = MailPriority.Normal;
           msg .BodyEncoding = Encoding.Default;
           msg.Body = "<center><table><tr><td><h1>Your Message</h1><br/><br/></td></tr>";
           msg.Body = msg.Body + "</table></center>";
           SmtpClient smtpClient = new SmtpClient ("smtp.yourserver.com", "25");
           smtpClient.EnableSsl = true;
           smtpClient.UseDefaultCredentials = false;
           smtpClient.Credentials = new System.Net.NetworkCredential("yourname@yourserver.com", "password");
           smtpClient .DeliveryMethod = SmtpDeliveryMethod.Network;
           smtpClient.Send(msg);
           smtpClient.Dispose();
        }

首先,您是否檢查過網絡郵件? 在發送的文件夾中? 很多年前,我遇到了同樣的問題,但是我意識到我的防火牆阻止了我。

另一件事

“ SmtpClient類不支持隱式SSL。它支持顯式SSL,后者需要通過端口25與SMTP服務器建立不安全的連接才能協商傳輸級安全性(TLS)。”

http://blog.ramsoftsolutions.com/2015/04/sending-mail-via-smtp-over-implicit-ssl.html

資源:

如何使用.NET Framework通過SSL SMTP發送電子郵件?

問候

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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