2013-03-02 203 views
0

电子邮件不是从C#代码使用Gmail邮件设置发送的。它发出错误“服务器需要安全连接或客户端未通过身份验证”。电子邮件没有从C#使用Gmail发送电子邮件地址

电子邮件和密码的用于登录同一..

下面是完整的代码。

MailMessage mail = new MailMessage("<from>","<to>"); 

      SmtpClient client = new SmtpClient("smtp.gmail.com", 587); 
      client.Credentials = new NetworkCredential("<email>", "<password>"); 
      client.EnableSsl = true; 
      client.DeliveryMethod = SmtpDeliveryMethod.Network; 
      client.Timeout = 20000; 
      client.UseDefaultCredentials = false; 

      mail.Body = "Test email from C# Code"; 
      mail.Subject = "Test Email"; 

      Console.WriteLine("Attempting to Send Email"); 

      try { 
       client.Send(mail); 
       Console.WriteLine("Email sent... "); 
      } 
      catch (System.Net.Mail.SmtpFailedRecipientException ex) { 
       Console.WriteLine("Could not send email to the mentioned recipient" + ex.Message); 
      } 
      catch (System.Net.Mail.SmtpException ex) { 
       Console.WriteLine("Could not send Email..\n" + ex.Message + "\n" + ex.StackTrace);     
      } 
      Console.ReadLine(); 

任何帮助表示赞赏:) - 亲切的问候,

+0

您是否在使用Google的两步验证?如果是的话,你有没有尝试去激活它(仅用于测试目的)? – netblognet 2013-03-02 06:36:46

+0

不知道这个:) ..什么是2步验证..但也尝试使用Live(hotmail)smtp服务器与他们的A/C,但也给出了另一个错误。 – 2013-03-02 06:40:33

+0

你得到的错误是什么 – NetStarter 2013-03-02 06:43:14

回答

2

你必须换以下行。

client.Credentials = new NetworkCredential("<email>", "<password>"); 
client.UseDefaultCredentials = false; 

您必须先设置UseDedaultCredentials属性。

client.UseDefaultCredentials = false;  
client.Credentials = new NetworkCredential("<email>", "<password>"); 

就是这样,它应该工作。

+0

谢谢你,似乎工作.. :) – 2013-03-02 06:44:12