python判断邮箱格式是否正确_ValidEmail:邮箱真实性检测工具

很多系统的设计是由用户通过邮箱进行账户注册,且在注册时对邮箱格式进行了必要的判断,以避免无效邮箱的注册,除非是需要接收邮箱验证码,否则随意填写个正确格式的邮箱这种事,就像学生欺骗老师作业做完了一样常见。特别是问卷调查中需要参与者填写自己邮箱时,避免垃圾邮件骚扰用个假邮箱。

在另外一些时候,当需要批量群发邮件时,除了基于邮箱格式的过滤,也需要过滤不存在的邮箱地址。

还有一些特殊的时候,针对某一个域名或系统,需要尝试探测下该域名下有哪些邮箱,从而获得必要的邮箱列表。

以上这些情况下,都不太适合通过直接向邮箱中投递邮件的方式来判断,所以本人做了这么个小工具,在不投递邮件的情况下检测邮箱地址是否真实。该程序是基于validate_email的python模块的优化、修改。

邮箱存在返回True,不存在则返回False。

功能就是这么的单调,原理却也没那么华丽,甚至可以手动完成检测操作。总共四步:

1、通过nslookup获取邮箱地址中主域名的MX记录;

2、用SMTP扩展协议的ehlo与MX服务器建立亲切而不失友好的连接;

3、使用mail FROM:<''>向MX服务器指定发件人的身份是空;

4、通过rcpt TO:<'email address'>命令查看服务器的返回结果,如果邮箱地址存在,则返回代码是250,如果不存在,则通常情况下返回550,也有个别邮件服务商返回554。

同一个邮件服务商的MX记录有多个,部分邮件服务商的MX服务器会出现对同一个邮箱地址返回结果不同的情况,实际上,倘若其中一个MX服务器返回邮箱不存在,则该邮箱不存在。这是唯一一个需要说明的点。

工具源码可点击原文链接获取,使用Python 3.6.4编写,限于DNS模块的安装,因此只能在Linux环境中执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值