2015-04-22 246 views
0

我已經在codebehind aspx頁面中寫下面的代碼發送email.I想使用谷歌smtp服務器。但一些如何我無法接收的電子郵件使用asp.net和谷歌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(); 
       } 

錯了我在做什麼?請幫助

+0

我認爲港gmail是587而不是465,請嘗試將其更改爲: client.Port = 587; –

回答

0

Gmail中使用OAuth 2.0,你可能必須提供某種形式的API密鑰來訪問自己的郵件功能。

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

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

「庫和示例」頁面使用帶有IMAP或SMTP的SASL XOAUTH2機制提供各種流行語言的代碼示例。 (source

0

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

它適用於Port = 25。

還記得gmail是一個IMAP服務器。

try 
    { 
      MailMessage msg = new MailMessage(); 
      MailAddress fromAdd = new MailAddress("[email protected]"); 
      msg.[To].Add("[email protected]"); 
      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("[email protected]", "password"); 
      smtpClient .DeliveryMethod = SmtpDeliveryMethod.Network; 
      smtpClient.Send(msg); 
      smtpClient.Dispose(); 
     } 
0

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

其他的事情,

「SmtpClient類不支持隱式SSL。它支持顯式SSL,這需要到SMTP服務器通過端口25,以協商傳輸層安全(TLS)不安全的連接。 「

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

來源:

How can I send emails through SSL SMTP with the .NET Framework?

問候

1

以下是你需要與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("[email protected]", "xxxx"); 
相關問題