使用域进行电子邮件验证

大家好,导入
msg = raw_input('输入电子邮件:')
DEF VELATYEMAIL(电子邮件):
#if re.match("^.+\\@(\\ [?)[a-za-z0-9 \\ - \\.]+\\.([a-za-z] {2,3 } | [0-9]
{1,3})(\\]?)$",电子邮件)!=无:
如果是re.match("^([^@\ s]+)@((?:[ - a-Z0-9]+\.)+[a-z] {2,})$
电子邮件)!=无:
打印"瓦利斯"
别的:
打印"不"
veratureemail(msg)我在上面写了一个脚本,它的工作正常,但确实如此
不检查有效域,例如.com .org .in
如何用域验证

# 回答1


在7月2日,12:41*下午,sallu 不要尝试检查tld(.com .org等)是否有效
正则表达式.
只是不要.
特别是现在有关域名的规则现在正在放松
而且您没有可能的方法来指导所有新的TLD
将会.
验证电子邮件地址是有效的形式,并且
验证域是有效的是两个单独的事情.
如果要验证域,请在域或
一些.我认为没有标准模块可以提供此功能
Python包含的功能.您可以尝试使用插座
模块,阅读相关协议,或拨打电话
外部程序.
# 回答2


我同意.我为此做了快速的代码.
#电子邮件地址验证器
#
#这个模块在公共领域
#
#该模块是为回复的
#http://groups.google.com/group/compdy7d31bebc09190
# *需要DNSpython(http://www.dnspython.org/).
# *这是一个简单的原型.
# *如果查询大量电子邮件地址,有缓存会很慢
机制
#将非常有帮助.
# *仅检查电子邮件地址的主机名.
#
#作者:Yu-Jie Lin
#创建日期:2008-07-02T20:09:07+0800
导入DNS.Resolver
Def Checkemail(电子邮件):
"""此函数直接提取主机名并查询IT""".
email_parts = email.split('@')
如果Len(email_parts)!= 2:
返回false
#开始查询
尝试:
答案= dns.resolver.query(email_parts [1],'mx')
除了DNS.Resolver.noanswer:
#该主机没有MX记录
返回false
除了DNS.Resolver.nxdomain:
#没有这样的主机名
返回false
#可能有效的主机名
返回true
我还为这篇文章和代码写了一篇简短的博客文章,如果您是
有兴趣,您可以在http://thetinybit.com/blog/2008-07-0...lhostnamecheck(_@@_)上阅读它.
sallu 实际上,不.它拒绝了许多有效的电子邮件地址.
要验证发送电子邮件的域,请与DNS联系
请求该域的A或MX记录.
要验证电子邮件地址,请向邮件服务器检查一下
通过向地址发送消息来域.
它们都不应通过正则表达式"验证".
请参阅RFC 3696
被描述为"用于检查或
操纵域和其他互联网名称".
- -
\ pinky,你在思考我在思考什么吗?
`\ s o,大脑,但不会在床柱上失去其风味|
_o__)一夜之间?
本·芬尼
# 回答3


在7月2日,6:25*PM,Ben Finney
写道:
实际上,不.它拒绝了许多有效的电子邮件地址.
要验证发送电子邮件的域,请与DNS联系
请求该域的A或MX记录.
要验证电子邮件地址,请向邮件服务器检查一下
通过向地址发送消息来域.
它们都不应通过正则表达式"验证".
请参阅RFC 3696
被描述为"用于检查或
操纵域和其他互联网名称".
- -
* \ * * * * PINGY,您在思考我在思考什么吗?哇,我想|
*`\ *所以,大脑,但不会在床柱上失去其风味|
_o__) * * * * * * * * * * * * * * * * * * * * * * * * * _pinky and the Brain_ |
本·芬尼
谢谢大家并清除我的想法.

标签: python

添加新评论