错误消息:“ SMTP服务器需要安全的连接或客户端未通过身份验证。”

时间:2018-08-09 19:59:21

标签: smtpclient system.net.mail

我搜索了其他帖子,并在我的gmail帐户(https://myaccount.google.com/lesssecureapps)中设置了必填项

,但仍会以某种方式引发异常,并显示消息“ SMTP服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.5.1需要身份验证。有关详细信息,请参见”

[HttpPost]
        public ActionResult SaveAppointment(Appointment mdl)
        {
            try
            {
                SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", 587);

                smtpClient.Credentials = new System.Net.NetworkCredential("username", "mypass");
                smtpClient.UseDefaultCredentials = false;
                smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
                smtpClient.EnableSsl = true;
                MailMessage mail = new MailMessage();

                //Setting From , To and CC
                mail.From = new MailAddress("username@gmail.com", "MyWeb Site");
                mail.To.Add(new MailAddress("username@gmail.com"));

                smtpClient.Send(mail);

                return View();
            }
            catch(Exception ex)
            {
                return null;
            }

        }

我应该丢失什么?

1 个答案:

答案 0 :(得分:0)

检查您的web.config,msdn和代码(因为配置文件中可能没有匹配的EnableSsl。 您可能还需要在gmail设置页面中启用对“安全性较低的应用”的访问权限。 here 如果您收到异常消息“`,则服务器响应是:5.5.1需要身份验证。那么下面的代码应该可以工作。”

        var client = new SmtpClient("smtp.gmail.com", 587)
        {
            Credentials = new NetworkCredential("username", "password"),
            EnableSsl = true
        };
        client.Send("username@gmail.com", "username@gmail.com", "subject", "body");