2015-04-12 113 views
0

我正在windows azure上運行一個ASP.Net應用程序,我需要從它發送一封電子郵件。我想使用我的Gmail帳戶如下發送它,但是當我試圖把它,我得到以下錯誤:SMTP服務器需要一個安全連接-gmail

The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required. Learn more at

代碼:

 private static readonly string EMAIL_ADDRESS = "[email protected]"; 
     private static readonly string EMAIL_FROM = "MY FROM NAME"; 
     private static readonly string EMAIL_PASS = "my Password"; 
     private static readonly string EMAIL_HOST = "smtp.gmail.com"; 
     private static readonly int EMAIL_PORT = 587; 
     private static readonly bool EMAIL_SSL = true; 
     private static readonly SmtpDeliveryMethod EMAIL_DELIVERY_METHOD = SmtpDeliveryMethod.Network; 
     private static readonly bool EMAIL_DEFAULT_CREDENTIALS = false; 


     public static void SendEmail(string recipientEmail, string subject, string body) { 
      var fromAddress = new MailAddress(EMAIL_ADDRESS, EMAIL_FROM); 
      var toAddress = new MailAddress(recipientEmail, "MY CLIENT NAME"); 

      var smtp = new SmtpClient { 
       Host = EMAIL_HOST, 
       Port = EMAIL_PORT, 
       EnableSsl = EMAIL_SSL, 
       DeliveryMethod = EMAIL_DELIVERY_METHOD, 
       UseDefaultCredentials = EMAIL_DEFAULT_CREDENTIALS, 
       Credentials = new NetworkCredential(fromAddress.Address, EMAIL_PASS,EMAIL_HOST) 
      }; 
      using (var message = new MailMessage(fromAddress, toAddress) { 
       Subject = subject, 
       Body = body, 
       Priority = MailPriority.High 
      }) { 
       smtp.Send(message); 
      } 
     } 

我已經啓用安全性較低的登錄在,配置似乎很好。問題是什麼?

+0

嘗試將第三個參數留給networkcredentials爲空,也許看看sendgrid或類似的天藍色使用 – jakobandersen

+0

我試過沒有第三個參數,結果相同。如果可能,我寧願保持這一點。這應該從我看到的。 – mangusbrother

+0

也許這是一個副本:http://stackoverflow.com/questions/20906077/gmail-error-the-smtp-server-requires-a-secure-connection-or-the-client-was-not如果你在與Azure數據中心不同的時區 – jakobandersen

回答

0

您的代碼看起來不錯。你有沒有檢查電子郵件地址沒有被鎖定?即實際上在您的瀏覽器上登錄該電子郵件帳戶。它發生在我使用的Gmail帳戶被鎖定之前。

+0

我登錄正常。它沒有鎖定 – mangusbrother

0

我知道這個答案有點晚,但是您使用的是不安全的方式登錄到您的Gmail。 Gmail實際上會拋出一個錯誤,但這不會發送給您。您可能會收到一封電子郵件,內容如下:

Someone tried to connect to you gmail account from an unsecure application

還是有些類似。在這種情況下,你必須訪問

https://www.google.com/settings/security/lesssecureapps

(前提是你需要先登錄)

,並設置該選項將允許不安全的應用程序。比你被允許發送郵件(即使以這種不安全的方式)。

有同樣的問題atm,但我不想讓不安全的應用程序,我想改變我的代碼是安全的。但找不到解決這個問題的任何事情。

相關問題