使用 VB.NET 检查 SMTP 服务器可用性的最佳方法

Best way to check the availability of a SMTP server with VB.NET

我工作的地方有很多邮件流量,几乎所有邮件都是通过 Web 应用程序发送的,我必须检查是否存在电子邮件地址。我已经阅读了很多关于它的 post,它们都将我发送到相同的进程。

  1. 首先检查语法
  2. 然后检查域 DNS 和 MX 记录
  3. 最后检查 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