【问题标题】:Error Failure Sending Mail错误发送邮件失败
【发布时间】:2014-07-22 02:24:14
【问题描述】:

我正在尝试使用带有 VB 的 asp.net 发送电子邮件。电子邮件通过公司服务器发送。我有很多来自互联网的建议,但错误总是一样的。 '发送邮件失败'

到目前为止,这是我的代码:

Protected Sub btnSend_Click(sender As Object, e As EventArgs) Handles btnSend.Click
    Try
        Dim message As New MailMessage()
        Dim client As New SmtpClient("blablabla@myHost.com")
        message.From = New MailAddress(txtFrom.Text)
        message.To.Add(New MailAddress(txtTo.Text))
        message.Subject = txtSubject.Text
        message.Body = txtMessage.Text
        message.IsBodyHtml = True
        message.Priority = MailPriority.High
        client.Port = 25
        client.EnableSsl = True
        client.Send(message)
        lblInfo.Visible = True
        lblInfo.Text = "Your message has been sent"

    Catch ex As Exception
        lblInfo.Visible = True
        lblInfo.Text = ex.Message

    End Try
End Sub

这是我的 web.config

<system.net>
<mailSettings>
  <smtp deliveryMethod ="Network" from="MyEmailAddress.com">
   <network host="localhost" port="25" defaultCredentials ="true" />
  </smtp>
</mailSettings>

我已经尝试更改 enableSSL = False,但它仍然给我同样的错误。

提前致谢。

【问题讨论】:

  • AFAIK SmtpClient 应该使用服务器名称或 IP 进行初始化,而不是电子邮件地址。另外,请确保 web.config 中的 from 属性是有效的电子邮件地址格式。
  • 您能否检查您的堆栈跟踪并提供更多堆栈信息。你可以通过 ex.StackTrace 获得它。发生这种情况的原因有多种,请参阅以下链接。stackoverflow.com/questions/2209617/…
  • @JensEhrich 假设 smtpclient 是服务器名称。这是我输入的错误。
  • @JalpeshVadgama 我尝试了您的建议并得到以下信息:在 System.Net.Mail.SmtpClient.Send(MailMessage message) at ForEmail.Email.btnSend_Click(Object sender, EventArgs e) in H:\项目 3\ForEmail\ForEmail\Email.aspx.vb:第 36 行
  • @JalpeshVadgama 你知道这是什么意思吗?我认为错误是在 client.send(message)... 我是对的吗?

标签: asp.net vb.net smtp


【解决方案1】:

要找到 SMTP 错误的确切原因,您应该使用 telnet 手动测试 SMTP 服务器。首先,确保安装了 telnet 客户端(提示:“打开和关闭 Windows 功能”)然后启动命令提示符并键入以下内容:

> telnet my.servername.com 25 [ENTER]

您应该会收到来自服务器的欢迎消息。然后键入以下命令,一次一个,每行后按 [ENTER]。相应地替换您的 from 和 to 地址。不要输入'>'字符,它代表提示:

> helo
> mail from: user@sending-domain.com
> rcpt to: user@recipient-domain.com
> data
> Subject: test
> Some test text that goes in the body
> . 

您将收到一条消息,指出邮件已排队等待投递,在这种情况下,错误出现在您的程序的其他地方,或者您将收到一条可以排除故障的错误消息。可能的原因是中继被拒绝、服务器不可用、邮箱已满、用户不存在等。

PS,您不需要使用内置的 telnet 客户端,如果您愿意,可以使用任何其他 telnet 客户端(例如:PuTTY)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-03
    • 1970-01-01
    • 2013-09-01
    • 2018-01-18
    • 1970-01-01
    • 1970-01-01
    • 2016-04-11
    • 2014-02-17
    相关资源
    最近更新 更多