如何快速鉴别邮箱是否存在(可用)
如题,即验证邮箱的真实性
8 回复
第一,发一封邮件,明显是不靠谱的方式。
那么倒是可以去检查邮箱域名的 mx
txt
cname
等记录。
以下是 Mac OSX 下的测试
$ dig mx gmail.com
$ dig txt gmail.com
$ nslookup -query=mx github.com
...
但上面也只是从侧面检查该域名是有 mail server
接下来使用 telnet
命令链接 上面的 mx
地址
$ telnet ALT3.ASPMX.L.GOOGLE.com 25
HELO
...
从这方面入手或许对你有帮助。
BTW,还是从业务出发,纯粹为了检查一个地址的有效性,开销有些大。
感谢,参考一下
发邮件成本我个人觉得并不是特别高,而判断一个邮箱是不是有效地址成本很高! 我觉得只要对地址正则验证就好了. RFC822 正则判断.
function isEmail(email){
return /^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*$/.test( email );
}
@backsapce 这个正则能确定是否是有效的么, 比如 123@qq.com 能过么
验证用户邮箱有效性不就是发邮箱验证码吗?
来自酷炫的 CNodeMD
同意楼上 等有个正反馈才能确认
@klesh 其实是想校验邮箱是不是乱写的,如果用户乱写,发送验证码也没有意义,更不用说激活了,我用了个折中的方法来处理:
验证用户邮箱有效性不就是发邮箱验证码吗?