我正在尝试使用带有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,但它仍然给我同样的错误。
感谢您的进步。
答案 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)。