我有一个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("[email protected]", "password");
smtpClient.Timeout = 20000;
}
mailMessage.To.Add(model.Email);
mailMessage.From = new MailAddress("[email protected]");
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);
我得到这个例外:
服务器响应为:5.5.1需要身份验证。
在代码的最后一行。
我需要知道这个问题的原因是什么?我该如何解决?
您需要告诉SMTP客户端,您将不会使用Windows凭据来访问SMTP,因此请添加
smtpClient.UseDefaultCredentials = false;
在这行代码之上
smtpClient.Credentials = new NetworkCredential("[email protected]", "password");
此外,gmail不允许假冒,因此
mailMessage.From = new MailAddress("[email protected]");
无效-电子邮件仍然看起来是从您正在访问的电子邮件帐户发送的。
另外,请确保在您的gmail帐户上设置了“允许安全性较低的应用程序”设置,并且未启用两因素身份验证。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句