使用nslookup和nc验证email地址的有效性
从 https://utf9k.net/blog/email-lookup 上学来的小技巧。 其实思路就是先通过DNS的MX记录查出邮件服务器地址,然后用nc遵照SMTP协议模拟发送邮件到邮件服务器。
使用nslookup探查邮件服务器地址
nslookup -q=MX sina.com.cn
Server: 127.0.0.53 Address: 127.0.0.53#53 Non-authoritative answer: sina.com.cn mail exchanger = 10 freemx3.sinamail.sina.com.cn. sina.com.cn mail exchanger = 10 freemx1.sinamail.sina.com.cn. sina.com.cn mail exchanger = 10 freemx2.sinamail.sina.com.cn. Authoritative answers can be found from:
使用nc访问邮件服务器的SMTP服务端口
lujun9972@orangepipc2:~$ nc freemx1.sinamail.sina.com.cn 25 220 mx-14-107.mxsmail.fmail.dbl.sinanode.com ESMTP
按照SMTP协议规范,我们先好打个招呼
HELO 250 mx-14-107.mxsmail.fmail.dbl.sinanode.com
这里我们受到了250的回应码
告诉服务器邮件来自哪里
由于我们只是想探测邮件的有效性,因此邮件来源可以随便输一个邮件地址
mail from :<test@example.com> 250 ok
然后告诉服务器邮件想要发送给谁
这一步就能验证邮件地址的有效性了,先试试一个有效的邮箱:
rcpt to: <lujun9972@sina.com.cn> 250 ok
我们可以试试一个无效的邮箱:
rcpt to: <notanexistuser@.sina.com.cn> 554 User no found.