需要 Smtp 身份验证

Smtp authentification required

我有一个 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); 

我得到这个异常:

La réponse du serveur était : 5.5.1 Authentication Required.

最后一行代码。

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

您需要告诉 SMTP 客户端您将不会使用您的 windows 凭据访问 SMTP,因此添加

smtpClient.UseDefaultCredentials = false;

上面这行代码

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

此外,gmail 不允许模拟,因此

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

不会有任何影响 - 电子邮件仍将显示为从您正在访问的电子邮件帐户发送。

此外,请确保在您的 gmail 帐户上设置 "allow less-secure applications",并且未启用双因素身份验证。

您的帐户启用了 SSL 吗?

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