使用谷歌smtp服务器发送电子邮件将返回此错误“服务器响应为:5.7.0需要身份验证”

时间:2020-06-24 12:34:31

标签: iis smtp asp.net-core-mvc gmail

我在asp.net核心MVC Web应用程序中包含以下代码,以便使用Google smtp服务器发送电子邮件:-

MailMessage mail = new MailMessage();
mail.From = new MailAddress("info@***.com");
mail.To.Add(new MailAddress("info@**.com"));
mail.Subject = "New Submission from Web Site";
mail.IsBodyHtml = true;
System.Text.StringBuilder mailBody = new System.Text.StringBuilder();
mailBody.AppendLine("<b>Dear Sirs, </b><br/><br/>");
mailBody.AppendLine(
"New Submission has been submitted from Web site. To view the new submission please click on the link <a href'https://*****/Submissions/details/" + sc.Submission.Id.ToString()
 + " <br/> <span style='font-weight:bold'>Regards</span> <br/> <span style='font-weight:bold'>Web Site</span>"
);
                
mail.Body = mailBody.ToString();
// Create a new Smpt Client using Google's servers
var smtpClient = new SmtpClient();
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.EnableSsl = true;
smtpClient.Host = "smtp.gmail.com";
smtpClient.Port = 587;


string smtpConn = configuration.GetSection("SMTP").GetSection("pass").Value;

smtpClient.Credentials = new System.Net.NetworkCredential
("info@****.com", smtpConn); // ***use valid credentials***

smtpClient.Send(mail);

但我收到此错误:-

SmtpException:SMTP服务器需要安全连接,或者客户端未通过身份验证。服务器响应为:5.7.0需要身份验证。了解更多信息

有什么主意吗?尽管我正在从可以从中登录gmail帐户的计算机上运行该应用程序...

1 个答案:

答案 0 :(得分:0)

SmtpException:SMTP服务器需要安全连接,或者 客户端未通过身份验证。服务器响应为:5.7.0 需要验证。了解更多信息

遇到此错误时,可能是由于以下情况引起的

  1. 密码错误,解决方案:只需输入正确的密码即可。

  2. 当您尝试从某个应用登录时

    解决方案:转到this link的安全设置,并启用安全性较低的应用。

  3. 通常在您尝试从其他时区或IP地址计算机登录时发生。生产服务器和您使用的电子邮件ID在不同的时区。

    针对这种情况,有两种解决方案

    • 通过远程访问登录生产服务器,然后登录
      gmail用您的凭据一次。他们会要求确认, 确认并注销。

    • 或登录gmail到您的本地计算机,按照this Link
      选择review this activity并采取适当的措施。

如果您无权访问生产服务器,请尝试:

您必须为您的Google帐户启用从其他时区/ ip登录。

要执行此操作,请点击链接https://g.co/allowaccess,然后单击继续按钮以允许访问。

更多详细信息,您可以参考this discussion