SMTP服务器需要安全连接--gmail

时间:2015-04-12 19:03:35

标签: c# asp.net azure gmail

我正在windows azure上运行ASP.Net应用程序,我需要发送一封电子邮件。我试图使用我的Gmail帐户发送它,如下所示,但是当我尝试发送它时,我收到以下错误:

  

SMTP服务器需要安全连接,否则客户端不需要   认证。服务器响应为:5.5.1需要身份验证。   

了解更多信息

代码:

        private static readonly string EMAIL_ADDRESS = "mymail@gmail.com";
        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);
            }
        }

我已启用Less Secure Sign-in,配置似乎没问题。有什么问题?

3 个答案:

答案 0 :(得分:1)

尝试删除UseDefaultCredentials属性。

如果这不起作用,请单独设置属性(不使用对象初始化程序),并确保在UseDefaultCredentials

之后设置凭据

请参阅c# SmtpClient class not able to send email using gmail

答案 1 :(得分:0)

您的代码看起来很好。您是否检查过电子邮件地址是否已被锁定?即实际上是在浏览器上登录该电子邮件帐户。在我使用的Gmail帐户被锁定之前,它发生在我身上。

答案 2 :(得分:0)

我知道这个问题有点迟了,但您使用的是一种不安全的方式来登录您的Gmail。 Gmail实际上会抛出错误,但这不会发送给您。您可能会收到一封类似以下内容的电子邮件:

  

有人试图从不安全的方式连接到你的Gmail帐户   应用

或者类似的。在这种情况下,您必须访问

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

(如果您已登录)

并设置此选项以允许不安全的应用。比你被允许发送邮件(即使是以这种不安全的方式)。

遇到同样的问题atm但我不想允许不安全的应用程序,我想改变我的代码是安全的。但是找不到任何可以解决这个问题的东西。