SMTP 例外.请求身份验证

本文关键字:身份验证 请求 例外 SMTP | 更新日期: 2023-09-27 17:56:15

protected void Button1_Click(object sender, EventArgs e)
{
    MailMessage message = new MailMessage()
    {
        Subject = "Subject",
        Body = "Body"
    };
    message.To.Add(new MailAddress("demo@example.com", "Some name"));
    SmtpClient client = new SmtpClient();
    client.EnableSsl = true;
    client.Send(message);
}

配置

<configuration>
  <system.net>
    <mailSettings>
      <smtp from="demo@example.com">
        <network host="****" defaultCredentials="false"  port="587" userName="****" password="****" />
      </smtp>
    </mailSettings>
  </system.net>
 <system.web>

更正。它现在有效。谢谢马雷克

SMTP 例外.请求身份验证

您的问题可能在于defaultCredentials设置为 true。 请尝试将其设置为 false,然后重试。 另外,为什么要在代码中再次设置凭据? Gmail还要求通过端口587上的SSL(如果我没记错的话)发送电子邮件。

就在今天,我在我的代码中实现了gmail smtp。 我的设置和代码:

<system.net>
    <mailSettings>
      <smtp deliveryMethod="Network" from="MY_GMAIL_EMAIL">
        <network defaultCredentials="false" host="smtp.gmail.com" port="587" userName="MY_GMAIL_USERNAME" password="MY_GMAIL_PASSWORD" />
      </smtp>
    </mailSettings>
  </system.net>

MailMessage message = new MailMessage() {
                              Subject = "Subject",
                              Body = "Body"
                          };
message.To.Add(new MailAddress("someemail@domain.com", "Some name"));
SmtpClient smtpClient = new SmtpClient();
smtpClient.EnableSsl = true;
smtpClient.Send(message);