首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >域和电子邮件验证

域和电子邮件验证
EN

Stack Overflow用户
提问于 2019-11-14 00:19:07
回答 2查看 405关注 0票数 0

我需要一个域名验证器和电子邮件验证器,即验证,如果两者都存在。我服务的公司有一个网站为他们验证这一点,确保他们不会向一个不存在的邮箱发送电子邮件。无论如何,这将是一次电子邮件营销行动。他们有一些关于excel的基础知识,但他们希望服务直接运行,获得信息列表或事务,以便按批次进行检查,从而加快过程。这是一个非常类似的工作是什么使这个site

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-14 17:45:06

对于验证电子邮件,这取决于您想要验证它们的具体程度。如果你只是想检查电子邮件是否遵循基本的x@y.tld格式,那么你可以使用正则表达式-如果你想同时检查域以确保邮箱可以存在,那么使用模块可能是最好的选择。

pyIsEmail是一个很好的选择-它也有设施来检查电子邮件地址来自的域是否真实,以及是否还附加了有效的MX记录。

代码语言:javascript
复制
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语法,它可以获取电子邮件记录的列表,并返回包含有效和无效电子邮件列表的元组。

代码语言:javascript
复制
>>> 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
EN

Stack Overflow用户

发布于 2019-11-21 16:46:29

如果您想检查电子邮件是否存在,最好使用在线电子邮件验证服务,因为这些服务能够让您联系到相应的邮件服务器,并验证电子邮件地址是否存在。在这里,我将向您推荐一个名为MailboxValidator的电子邮件验证服务。它有免费的启动计划,并且很容易使用。他们已经开发了自己的Python包,因此您可以从该包开始。示例代码:

代码语言:javascript
复制
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上找到更多信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58841308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档