通过命令查询一个邮箱地址是否存在
最近在做 ASP.NET / VB.NET 中邮件发送的功能。
我们虽然通常把检验邮箱地址是否存在的问题交给 SMTP 服务器来做,但是这个项目组长希望我能做出来在发邮件之前便判断出来邮箱地址是否存在的功能。
方法自然是有的,SMTP 服务器是怎么检验的,我们也怎么检验就行了。
查了下资料,大概了解了一下,可以用的命令如下:
(以下以我的和丁小浪的域名为例,我来当发件人,丁小浪来当收件人)
1 | nslookup -type=MX mtiner.com |
这样,我就可以知道丁小浪的邮箱服务器是
mxn.mxhichina.com
然后,我们来连接到这台服务器上。一般的邮箱服务器收信端口都是 25,如果不是的话……那就让它去屎吧~
1 | telnet mxn.mxhichina.com 25 |
获得了正常的响应之后,我们首先表明身份
1 | HELO smtp.ym.163.com |
然后表明发件人
1 | MAIL FROM:<[email protected] > |
最后来查询相应的邮箱地址是否存在
1 | RCPT TO:<[email protected] > |
嗯,原来 sb@mtiner.com 不存在,那……就退出吧~
1 | QUIT |
这样就完成了一个完整的操作。最后只需把所写的这些命令 Object 化即可。