C# ASP.NET项目中的SMTP服务器错误

C# ASP.NET项目中的SMTP服务器错误,c#,asp.net,email,smtp,C#,Asp.net,Email,Smtp,我正在开发Asp.net web应用程序。im添加电子邮件部分, 我有以下错误,无法发送电子邮件 The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required. Learn more at 我试图修复它超过5个小时,但我不能修复这个,我是指所有的堆栈溢出问题 课程 public st

我正在开发Asp.net web应用程序。im添加电子邮件部分, 我有以下错误,无法发送电子邮件

The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required. Learn more at
我试图修复它超过5个小时,但我不能修复这个,我是指所有的堆栈溢出问题 课程

 public static void SendEmail(string receientEmail, string subject, string body) {
            //Email
            using (MailMessage mailMessage = new MailMessage()) {

                mailMessage.From = new MailAddress(ConfigurationManager.AppSettings["UserName"]);

                mailMessage.Subject = subject;
                mailMessage.Body = body;
                mailMessage.IsBodyHtml = true;
                mailMessage.To.Add(new MailAddress(receientEmail));
                SmtpClient smtp = new SmtpClient();
                smtp.Host = ConfigurationManager.AppSettings["Host"];
                smtp.EnableSsl = Convert.ToBoolean(ConfigurationManager.AppSettings["EnableSsl"]);
                System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential();
                NetworkCred.UserName = ConfigurationManager.AppSettings["UserName"];
                NetworkCred.Password = ConfigurationManager.AppSettings["Password"];
                smtp.UseDefaultCredentials = true;
                smtp.Credentials = NetworkCred;
                smtp.Port = int.Parse(ConfigurationManager.AppSettings["Port"]);
                smtp.Send(mailMessage);
 }

网络配置

 <appSettings>
    <add key="AdminLoginID" value="admin"/>
    <add key="AdminPassword" value="123"/>
<!--Email Setting-->
    <add key ="Host" value="smtp.gmail.com"/>
       <add key ="EnableSsl" value="true"/>
    <add key ="UserName" value="cafe****@gmail.com"/>
      <add key ="Password" value="****"/>
    <add key ="Port" value="587"/>     
  </appSettings>

您提供
网络凭据
,然后用设置为true的
UseDefaultCredentials
覆盖它们

smtp.UseDefaultCredentials = false;

有关使用gmail smtp服务器发送邮件的更多详细信息,请参见

,您必须先设置对不太安全的应用程序的访问权限。你可以通过谷歌的设置来做到这一点。如果不这样做,您将得到“SMTP服务器需要安全连接,或者客户端未经过身份验证。服务器响应为:需要5.5.1身份验证。”错误

如果启用了google两步验证,则无法打开对不太安全的应用程序的访问。为了代码的简单性(容易产生风险),我建议您应该关闭对您的google帐户的两步验证,然后打开对不太安全的应用程序的访问

请参阅了解更多信息。

代码的唯一问题是
smtp.UseDefaultCredentials=true
如果删除该行,则代码应与未启用两步验证的其他smtp服务器一起使用。

尝试以下操作:1。删除行
smtp.UseDefaultCredentials=true2。确认提供的用户名和密码正确无误。先生,Im已删除,但无法从ConfigurationManager获取值。请先尝试直接对值进行硬编码。看看是否有人发邮件。哦,我忘了再提一件事。要使用gmail服务器发送邮件,您必须首先设置对不太安全的应用程序的访问权限。你可以通过谷歌的设置来做到这一点。如果不这样做,您将收到“需要身份验证”错误。先生,在尝试登录google时,会发生什么情况,
此设置不适用于启用了两步验证的帐户。这类帐户需要特定于应用程序的密码才能访问不太安全的应用程序
。请查看。非常感谢,先生,终于可以使用了,谢谢您宝贵的时间