如何快速鉴别邮箱是否存在(可用)
发布于 5 年前 作者 doramart 6015 次浏览 最后一次编辑是 4 年前 来自 问答

如题,即验证邮箱的真实性

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 其实是想校验邮箱是不是乱写的,如果用户乱写,发送验证码也没有意义,更不用说激活了,我用了个折中的方法来处理:

DoraCMS email校验问题

验证用户邮箱有效性不就是发邮箱验证码吗?

回到顶部