【问题标题】:Unable to send email from web application无法从 Web 应用程序发送电子邮件
【发布时间】:2015-03-26 08:30:11
【问题描述】:

我查了一下,似乎其他人也遇到了同样的问题,主要是因为 Gmail 阻止了应用程序的访问,但是我打开了“允许连接不太安全的应用程序”选项,问题仍然存在。

这是我尝试连接时从 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 进行连接,但出现超时(我认为这是显式/隐式 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,但没有成功。

【问题讨论】:

标签: asp.net vb.net email smtp


【解决方案1】:

可能会有一些问题。

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

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

【讨论】:

    【解决方案2】:

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

    设置

    SmtpClient.Credentials = SmtpCredentials
    

    还要确保您使用 System.Net.Mail

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      猜你喜欢
      • 2016-02-01
      • 2012-09-17
      • 2014-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-28
      • 2013-04-13
      • 2010-12-27
      相关资源
      最近更新 更多