使用 VB.NET 检查 SMTP 服务器可用性的最佳方法
Best way to check the availability of a SMTP server with VB.NET
我工作的地方有很多邮件流量,几乎所有邮件都是通过 Web 应用程序发送的,我必须检查是否存在电子邮件地址。我已经阅读了很多关于它的 post,它们都将我发送到相同的进程。
- 首先检查语法
- 然后检查域 DNS 和 MX 记录
- 最后检查 SMTP 服务器响应。
(我省略了灰名单检查和邮箱检查)
好吧,我已经为前两步找到了很好的资源,但我在最后一步遇到了麻烦。我尝试了一些服务,例如 EmailArchitect but with no results, I think thats because of firewalls of my company servers. So I tried some service that provide an alternative through HTTP methods like verify-mail but it just provided DNS check. Finally, I'm now thinking about using MS SMTP-Diag 提供的服务,并从我的代码或其他东西执行该过程,但我认为必须有其他解决方案。
所以,我的问题是,是否还有其他方法我还没有尝试过,我只想检查 SMTP 可用性,而不用担心服务器宕机之类的异常。我会感谢你的帮助
如果 MX 记录是 URL,请检查 DNS 记录以确保它存在。然后尝试连接到端口 25 上的 smtp 服务器,如下所示:
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
我工作的地方有很多邮件流量,几乎所有邮件都是通过 Web 应用程序发送的,我必须检查是否存在电子邮件地址。我已经阅读了很多关于它的 post,它们都将我发送到相同的进程。
- 首先检查语法
- 然后检查域 DNS 和 MX 记录
- 最后检查 SMTP 服务器响应。
(我省略了灰名单检查和邮箱检查)
好吧,我已经为前两步找到了很好的资源,但我在最后一步遇到了麻烦。我尝试了一些服务,例如 EmailArchitect but with no results, I think thats because of firewalls of my company servers. So I tried some service that provide an alternative through HTTP methods like verify-mail but it just provided DNS check. Finally, I'm now thinking about using MS SMTP-Diag 提供的服务,并从我的代码或其他东西执行该过程,但我认为必须有其他解决方案。
所以,我的问题是,是否还有其他方法我还没有尝试过,我只想检查 SMTP 可用性,而不用担心服务器宕机之类的异常。我会感谢你的帮助
如果 MX 记录是 URL,请检查 DNS 记录以确保它存在。然后尝试连接到端口 25 上的 smtp 服务器,如下所示:
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