发送邮件时出错错误

时间:2014-06-02 02:27:57

标签: asp.net vb.net smtp

我正在尝试使用带有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,但它仍然给我同样的错误。

感谢您的进步。

1 个答案:

答案 0 :(得分:0)

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

> telnet my.servername.com 25 [ENTER]

您应该从服务器收到欢迎消息。然后键入以下命令,一次一个,并在每行后按[ENTER]。相应地替换你的地址和地址。不要输入'&gt;'字符,它代表提示符:

> 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)。