如何在SMTPClient之前测试SMTP连接.发送[VB.NET]



这里的编程非常新鲜。

我目前正在处理的程序需要发送一封带有日志的电子邮件。如果我使用正确的服务器主机,效果会很好,但当我尝试使用"错误"的服务器主机时,我的程序肯定无法连接,但它会立即崩溃,我不能引发任何异常,不能告诉用户他做错了什么,什么都没有。

所以我想我必须在SMTPClient之前测试连接。发送,但我似乎找不到如何。。。

如何在VB.NET中测试SMTP服务器连接?

这就是我使用的:

Try
Dim SmtpServer As New SmtpClient()
With SmtpServer
.EnableSsl = False
.UseDefaultCredentials = False
.Credentials = New Net.NetworkCredential(MailUser, MailPassword)
.Port = 25
.Host = ServerAdress
End With
Dim mail As New MailMessage()
With mail
.From = New MailAddress(MailSender)
.To.Add(MailReceiver)
.CC.Add(MailCC)
.Subject = MailObject
.Body = MailBody
End With
SmtpServer.Send(mail)
Catch ex As Exception
MsgBox(ex.ToString)
End Try

1-我认为你应该试试这样的东西:

Using tcp As New TcpClient
Try
tcp.Connect(ip, 25)
' server found
Catch ex As Exception
' server not found
End Try
tcp.Close()
End Using ' tcpclient

2-为了测试你的smtp服务器,这篇文章可以很有用:https://www.port25.com/how-to-check-an-smtp-connection-with-a-manual-telnet-session-2/

3-在这个问题的答案中还有一个smtp测试课.Net TcpClient和SmtpClient赢得了';t连接到我的Smtp服务器

最新更新