通过 SMTP 来检测邮箱的有效性

如何来检测一个 email 地址?一般就需要从邮件地址的 smtp 服务器来获取一些信息来判断。

假设我要检测 testmail@douban.com 这个地址是不是真存在:

首先需要取得 douban.com 这个域的 MX 记录:
dig douban.com MX

然后根据得到的 MX 地址来检测,用 telnet MX记录 端口号 来连接,然后输入命令:
verify

从结果中基本可以看到 testmail@douban.com 这个地址返回的是 250 状态,是存在的;而下面的 jfksdjglfdgld@douban.com 则返回了 550 状态,同时也可以从下面的描述语句中得到这个地址则是不存在的。

下在的类就是根据上面的脚本写的一个 php 类,用来检测邮件地址是否真实存在。