无法从 Web 应用程序发送电子邮件

Unable to send email from web application

我查了一下,似乎其他人也有同样的问题,主要是因为 Gmail 阻止了应用程序的访问,但是我打开了 "allow less secure apps to connect" 选项,问题仍然存在。

这是我在尝试连接时从 ASP.net 收到的完整错误消息。

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

我已尝试使用端口 465 进行连接,但出现超时(我认为这是 Explicit/Implicit SSL 问题)

这是我用来发送电子邮件的代码。

Dim Mail As New MailMessage
    Dim EmailToMail As New MailAddress(EmailTo, EmailToName)
    Mail.To.Add(EmailToMail)
    Dim FromE As New MailAddress(EmailFrom, "Something")
    Mail.From = FromE
    Mail.Body = Body
    Mail.Subject = Title

    Dim SmtpClient As New SmtpClient("smtp.gmail.com", 587)

    SmtpClient.UseDefaultCredentials = False
    Dim SmtpCredentials As New System.Net.NetworkCredential("MyEmail", "MyPassword")
    SmtpClient.DeliveryMethod = SmtpDeliveryMethod.Network
    SmtpClient.EnableSsl = True

    SmtpClient.Send(Mail)

我也试过将 UseDefaultCredentials 设置为 True,但没有用。

如果您的密码不再符合 Gmail 的复杂性标准,就会发生这种情况。尝试登录并更改它。

您的凭据仅存储在变量中,而不存储在 smtp 实例中。

设置

SmtpClient.Credentials = SmtpCredentials

还要确保使用 System.Net.Mail

可能存在一些问题。

  1. 您的防火墙可能会阻止它...(绕过它)
  2. 端口被封锁...(您需要允许)
  3. 如果您的电子邮件帐户启用了两步验证...
  4. 您正在创建的凭据永远不会应用于服务器凭据。

我已经在 here 之前回答过同样的问题,并且会回答您的所有问题。它还包括一个 link 用于发送我已回复的电子邮件。