需要Smtp认证

时间:2015-10-12 08:51:13

标签: c# .net asp.net-mvc smtp gmail

我有一个asp.net mvc应用程序,我想发送一封电子邮件:

 MailMessage mailMessage = new MailMessage();
            var smtpClient = new  SmtpClient();
            {
                smtpClient.Host = "smtp.gmail.com";
                smtpClient.Port = 587;
                smtpClient.EnableSsl = true;
                smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
                smtpClient.Credentials = new NetworkCredential("myemail@gmail.com", "password");
                smtpClient.Timeout = 20000;
            }
            mailMessage.To.Add(model.Email);
            mailMessage.From = new MailAddress("support@team.com");
            mailMessage.Subject = "Modification de mot de passe";
            mailMessage.Body = "Vous avez modifié votre mot de passe de votre Compte ";
            mailMessage.Body += Environment.NewLine;
            mailMessage.Body += "le nouveau mot de passe est : ";
            mailMessage.Body += newPassword; 
            smtpClient.Send(mailMessage); 

我得到了这个例外:

  

Lareéponseduserveurétait:5.5.1需要验证。

在最后一行代码中。

我需要知道这个问题的原因是什么?我该如何解决?

2 个答案:

答案 0 :(得分:2)

您需要告诉SMTP客户端您不会使用Windows凭据来访问SMTP,因此请添加

smtpClient.UseDefaultCredentials = false;

上面这行代码

smtpClient.Credentials = new NetworkCredential("myemail@gmail.com", "password");

另外,gmail不允许模拟,所以

mailMessage.From = new MailAddress("support@team.com");

无效 - 电子邮件仍会显示为您正在访问的电子邮件帐户。

此外,请确保在您的Gmail帐户上设置了“允许安全性较低的应用程序”设置,并且未启用双因素身份验证。

答案 1 :(得分:0)

您的帐户是否启用了SSL?

根据您的Gmail帐户设置,您的应用可能会收到身份验证错误。如果您的Gmail帐户使用两步验证,则应生成用于mailer_password参数的应用密码。您还应确保允许安全性较低的应用访问您的Gmail帐户。