C# ASP.NET项目中的SMTP服务器错误
我正在开发Asp.net web应用程序。im添加电子邮件部分, 我有以下错误,无法发送电子邮件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
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=true代码>2。确认提供的用户名和密码正确无误。先生,Im已删除,但无法从ConfigurationManager获取值。请先尝试直接对值进行硬编码。看看是否有人发邮件。哦,我忘了再提一件事。要使用gmail服务器发送邮件,您必须首先设置对不太安全的应用程序的访问权限。你可以通过谷歌的设置来做到这一点。如果不这样做,您将收到“需要身份验证”错误。先生,在尝试登录google时,会发生什么情况,此设置不适用于启用了两步验证的帐户。这类帐户需要特定于应用程序的密码才能访问不太安全的应用程序
。请查看。非常感谢,先生,终于可以使用了,谢谢您宝贵的时间