gpt4 book ai didi

c# - SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为 : 5. 5.1 是否需要身份验证?

转载 作者:IT王子 更新时间:2023-10-29 03:40:39 26 4
gpt4 key购买 nike

我想从我的应用程序发送一封电子邮件,我已经编写了以下用于发送邮件的代码

    MailMessage msg = new MailMessage();

msg.From = new MailAddress("mymailid");
msg.To.Add("receipientid");
msg.Subject = "test";
msg.Body = "Test Content";
msg.Priority = MailPriority.High;

SmtpClient client = new SmtpClient();

client.Credentials = new NetworkCredential("mymailid", "mypassword", "smtp.gmail.com");
client.Host = "smtp.gmail.com";
client.Port = 587;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.EnableSsl = true;
client.UseDefaultCredentials = true;

client.Send(msg);

我在本地主机上运行它,所以我在发送它时犯了什么错误。

当我发送按钮时,它给出了类似这样的错误

The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required.

Web.config 文件中的代码

 <appSettings>
<add key="webpages:Version" value="2.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="smtpServer" value="smtp.gmail.com" />
<add key="EnableSsl" value = "true"/>
<add key="smtpPort" value="587" />
<add key="smtpUser" value="sender@gmail.com" />
<add key="smtpPass" value="mypassword" />
<add key="adminEmail" value="sender@gmail.com" />
</appSettings>
<system.net>
<mailSettings>
<smtp from="sender@gmail.com">
<network host="smtp.gmail.com" password="mypassword" port="587" userName="sender@gmail.com" enableSsl="true"/>
</smtp>
</mailSettings>
</system.net>

我应该怎么做才能解决这个错误并发送邮件??

最佳答案

我也有同样的问题。

我找到了这个解决方案:

Google 可能会阻止某些不使用现代安全标准的应用或设备的登录尝试。由于这些应用和设备更容易被侵入,阻止它们有助于确保您的帐户更安全。

一些不支持最新安全标准的应用示例包括:

  • 运行 iOS 6 或更低版本的 iPhone 或 iPad 上的“邮件”应用程序
  • 8.1 版本之前的 Windows 手机上的邮件应用程序
  • 一些桌面邮件客户端,例如 Microsoft Outlook 和 Mozilla Thunderbird

因此,您必须在您的 Google 帐户中启用安全性较低的登录(或安全性较低的应用访问)。

登录谷歌账户后,前往:

https://www.google.com/settings/security/lesssecureapps
或者
https://myaccount.google.com/lesssecureapps

在 C# 中,您可以使用以下代码:

using (MailMessage mail = new MailMessage())
{
mail.From = new MailAddress("email@gmail.com");
mail.To.Add("somebody@domain.com");
mail.Subject = "Hello World";
mail.Body = "<h1>Hello</h1>";
mail.IsBodyHtml = true;
mail.Attachments.Add(new Attachment("C:\\file.zip"));

using (SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587))
{
smtp.Credentials = new NetworkCredential("email@gmail.com", "password");
smtp.EnableSsl = true;
smtp.Send(mail);
}
}

关于c# - SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为 : 5. 5.1 是否需要身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18503333/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com