域和电子邮件验证

时间:2019-11-13 16:19:07

标签: python validation

我需要一个域验证器和电子邮件验证器,即验证是否同时存在。我所服务的公司有一个网站可以对其进行验证,以确保他们不会将电子邮件发送到不存在的邮箱。无论如何,这将是电子邮件营销活动。他们有一些关于excel的基本知识,但他们希望服务直接运行以获取信息列表和/或事务性列表,以便按批检查,从而加快了流程。这与制作site的过程非常相似。

我想用python开发类似的东西。我想知道这样的工作是否可行,如果有人可以给我一些参考。

2 个答案:

答案 0 :(得分:1)

对于验证电子邮件,这取决于您要验证电子邮件的具体程度。如果您只想检查电子邮件是否遵循基本的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'])

答案 1 :(得分:1)

如果要检查电子邮件是否存在,最好使用在线电子邮件验证服务,因为这些服务使您能够访问相应的邮件服务器并验证电子邮件地址是否存在或不。在这里,我将向您推荐一个电子邮件验证服务电话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上找到更多信息。