需要 SMTP 身份验证 [重复]

Posted

技术标签:

【中文标题】需要 SMTP 身份验证 [重复]【英文标题】:Smtp authentification required [duplicate] 【发布时间】:2016-01-09 16:23:33 【问题描述】:

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

我得到了这个例外:

服务器响应:5.5.1 需要身份验证。

在最后一行代码中。

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

【问题讨论】:

因为这只是一个身份验证问题。 @Coulton 这也是一个代码问题,因为他没有将 UseDefaultCredentials 设置为 false。 @user1666620 确实,如重复问题中所述 这是一个简单的问题,如果他会使用搜索功能就不会存在 【参考方案1】:

你需要告诉 SMTP 客户端你不会使用你的 windows 凭据来访问 SMTP,所以添加

smtpClient.UseDefaultCredentials = false;

以上这行代码

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

另外,gmail 不允许冒充,所以

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

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

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

【讨论】:

【参考方案2】:

您的帐户是否启用了 SSL?

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

【讨论】:

以上是关于需要 SMTP 身份验证 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.5.1 需要身份验证。 [复制]

asp.net SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应是:5.5.1 Authentication Required [重复]

Python - smtp 需要身份验证 [关闭]

SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应是:5.5.1 需要身份验证?

Outlook 自动发现 SMTP 身份验证

SMTP 服务器需要安全连接或客户端未通过身份验证。