2013-03-02 265 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

相關問題