2015-04-12 91 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,但我不想让不安全的应用程序,我想改变我的代码是安全的。但找不到解决这个问题的任何事情。

相关问题