我需要一个域名验证器和电子邮件验证器,即验证,如果两者都存在。我服务的公司有一个网站为他们验证这一点,确保他们不会向一个不存在的邮箱发送电子邮件。无论如何,这将是一次电子邮件营销行动。他们有一些关于excel的基础知识,但他们希望服务直接运行,获得信息列表或事务,以便按批次进行检查,从而加快过程。这是一个非常类似的工作是什么使这个site。
我想在python中开发一些类似的东西。我想知道这样的工作是否可行,如果可行,是否有人可以给我一些参考。
发布于 2019-11-14 17:45:06
对于验证电子邮件,这取决于您想要验证它们的具体程度。如果你只是想检查电子邮件是否遵循基本的x@y.tld格式,那么你可以使用正则表达式-如果你想同时检查域以确保邮箱可以存在,那么使用模块可能是最好的选择。
pyIsEmail是一个很好的选择-它也有设施来检查电子邮件地址来自的域是否真实,以及是否还附加了有效的MX记录。
from pyisemail import is_email
address = "test@example.com"
bool_result = isemail(address)
bool_result_with_dns = is_email(address, check_dns=True)Flanker也可以用于此目的-以及检查每个电子邮件的DNS、MX记录和ESP语法,它可以获取电子邮件记录的列表,并返回包含有效和无效电子邮件列表的元组。
>>> from flanker.addresslib import address
>>>
>>> address.validate_list(['foo@mailgun.com, bar@mailgun.com, @mailgun.com'], as_tuple=True)
([foo@mailgun.com, bar@mailgun.com], ['@mailgun.com'])发布于 2019-11-21 16:46:29
如果您想检查电子邮件是否存在,最好使用在线电子邮件验证服务,因为这些服务能够让您联系到相应的邮件服务器,并验证电子邮件地址是否存在。在这里,我将向您推荐一个名为MailboxValidator的电子邮件验证服务。它有免费的启动计划,并且很容易使用。他们已经开发了自己的Python包,因此您可以从该包开始。示例代码:
import MailboxValidator
mbv = MailboxValidator.SingleValidation('PASTE_API_KEY_HERE')
results = mbv.ValidateEmail('example@example.com')
if results is None:
print("Error connecting to API.\n")
elif results['error_code'] == '':
print('email_address = ' + results['email_address'] + "\n")
print('domain = ' + results['domain'] + "\n")
print('is_free = ' + results['is_free'] + "\n")
print('is_syntax = ' + results['is_syntax'] + "\n")
print('is_domain = ' + results['is_domain'] + "\n")
print('is_smtp = ' + results['is_smtp'] + "\n")
print('is_verified = ' + results['is_verified'] + "\n")
print('is_server_down = ' + results['is_server_down'] + "\n")
print('is_greylisted = ' + results['is_greylisted'] + "\n")
print('is_disposable = ' + results['is_disposable'] + "\n")
print('is_suppressed = ' + results['is_suppressed'] + "\n")
print('is_role = ' + results['is_role'] + "\n")
print('is_high_risk = ' + results['is_high_risk'] + "\n")
print('is_catchall = ' + results['is_catchall'] + "\n")
print('mailboxvalidator_score = ' + str(results['mailboxvalidator_score']) + "\n")
print('time_taken = ' + str(results['time_taken']) + "\n")
print('status = ' + results['status'] + "\n")
print('credits_available = ' + str(results['credits_available']) + "\n")
else:
print('error_code = ' + results['error_code'] + "\n")
print('error_message = ' + results['error_message'] + "\n")你可以在here上找到更多信息。
https://stackoverflow.com/questions/58841308
复制相似问题