从C#代码发送邮件时出现电子邮件错误

时间:2017-08-08 18:46:45

标签: asp.net asp.net-mvc

我收到以下错误

  

SMTP服务器需要安全连接,或者客户端未经过身份验证。服务器响应为:5.5.1需要身份验证

如何解决这个问题?我的代码:

MailMessage mail = new MailMessage();
mail.From = new MailAddress(FromAddress);
mail.To.Add(email);
mail.Subject = "Forgot Password";
mail.Body = SendMessage;
mail.IsBodyHtml = true;
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
SmtpServer.Port = 587;
SmtpServer.DeliveryMethod = SmtpDeliveryMethod.Network;
NetworkCredential myCreds = new NetworkCredential(EmailUsername, EmailPassword);
SmtpServer.Credentials = myCreds;
SmtpServer.EnableSsl = true;
SmtpServer.UseDefaultCredentials = true;
SmtpServer.Send(mail);

Webconfig如下

<add key="FromAddress" value="xxxxxxx@gmail.com"/>
<add key="EmailUsername" value="xxxxxxx@gmail.com"/>
<add key="EmailPassword" value="Josco@321"/>

更改了我的电子邮件设置,如下所示。

enter image description here

FromAddress和EmailUsername是相同的电子邮件。

1 个答案:

答案 0 :(得分:4)

确保您设置SmtpClient.Credentials AFTER后调用SmtpClient.UseDefaultCredentials = false

订单非常重要,因为设置SmtpClient.UseDefaultCredentials = false会将SmtpClient.Credentials重置为空。