我有一个巨大的电子邮件ID列表,我必须过滤掉所有有效的电子邮件ID,有效的手段真的存在或不存在。你知道吗
我正在尝试为此实现smtplib
,但我不确定正确的方法。它给相同的电子邮件id随机结果,这是不存在的(我已经手动检查),但它显示有时存在,有时不退出。你知道吗
有没有更好的方法或工作方法?你知道吗
import socket
import smtplib
import dns.resolver
def get_connection_handler():
try:
# Get local server hostname
# host = socket.gethostname()
host = socket.getfqdn()
username = 'myemilid@gmail.com' #used with working email_id
password = 'password' #password
# SMTP lib setup (use debug level for full output)
server = smtplib.SMTP('smtp.gmail.com', 587, timeout=30)
server.set_debuglevel(1)
server.ehlo()
server.starttls()
server.login(username, password)
return host, server
except Exception as e:
return None, None
def validate_email_id(server, host, email_list):
for each_email_id in email_list:
records = dns.resolver.query(each_email_id.split('@')[-1], 'MX')
mxRecord = records[0].exchange
mxRecord = str(mxRecord)
# SMTP Conversation
server.connect(mxRecord)
server.helo(host)
server.mail('myemailid@gmail.com')
addressToVerify = 'ramanzzzzzooo@somedomain.com'
code, message = server.rcpt(str(addressToVerify))
email_list = ['email_id1@somedomain1.com','email_id1@somedomain2.com','email_id1@somedomain5.com','email_id1@somedomain4.com','email_id1@somedomain3.com',]
server,host = get_connection_handler()
validate_email_id(server,host,email_list)
它给出了相同email_id
的随机结果,有时存在,有时不存在。
还有其他更好的方法吗?你知道吗
您可以检查语法是否正确,只需查找RFC,阅读它并运行!唯一正常的检查是随便什么。随便什么。所以vaildate建议使用@Nick Predey这样的软件包,或者只检查@and。。你知道吗
你问题的第二部分很有趣。再也没有方法检查电子邮件地址是否真的存在了。在早期,有手指测试用户是否存在于主机上。如今,该协议不再用于对付垃圾邮件(https://en.wikipedia.org/wiki/Finger_protocol)
validate emailpython包可以在这种情况下帮助您。根据文件,它是用来检查电子邮件是否“有效,格式正确,确实存在。”
在使用
pip install validate_email
安装之后,您可以这样使用它:如果电子邮件有效,则返回
true
;如果无效,则返回false
。你知道吗相关问题 更多 >
编程相关推荐