我有一个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需要验证。
在最后一行代码中。
我需要知道这个问题的原因是什么?我该如何解决?
答案 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帐户。