2015-04-22 202 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"); 
相关问题