如何在 Flask 中执行电子邮件验证
如使用Flask构建网站(或 API),那么使用验证用户的电子邮件地址是非常明智的选择。验证过程通常涉及检索电子邮件地址信息,而且并不简单。
由于没有公共数据库可以映射电子邮件地址,所以很难确定该电子邮件提供商是否足够可信,也无法确认该用户是否存在于该服务上。大多数公司通过发送确认电子邮件来验证用户的电子邮件,但这种方法最明显的缺点是,经常会因为用户指定的电子邮件地址不存在而导致电子邮件被退回。
电子邮件地址信息通常包括:
- 给定电子邮件地址的格式验证;
- 一次性电子邮件的域名黑名单;
- 核查域名部分的 DNS 记录;
- 核查与服务器的 SMTP 连接;
- 核查该域名的邮箱是否空闲。
简而言之,用户需要执行许多步骤才能完全验证电子邮件地址。
今天,我们将引导用户使用我们所创建的极其简单的Flask-电子邮件验证器开发人员库,可将Flask中执行电子邮件验证变得轻而易举。
创建电子邮件验证 API 帐户
使用 Flask电子邮件验证库,第一件事是创建一个免费的电子邮件验证 API 帐户:https: //emailverification.whoisxmlapi.com/signup 。
电子邮件验证 API是最大且最便宜的电子邮件地址数据提供商之一。用户可以使用电子邮件验证 API 服务每月进行1,000 次免费电子邮件验证查询,或者花费49美元进行100,000 次查询。此处可了解其他的资费计划。
客户在创建并登录电子邮件验证 API 帐户后,可查看帐户的产品页面并复制 API 密钥 - 稍后将需要接收该密钥的电子邮件验证请求。
安装 Flask电子邮件验证套餐
现在帐户已设置完毕,接下来是安装 Flask电子邮件验证 PyPi 库。在命令行中,在项目的根目录中运行以下命令:
$ pip install Flask-EmailVerifier
将从 PyPi 下载并安装最新版本的Flask-电子邮件验证包。
使用 Flask邮件验证器执行电子邮件验证请求
用户注册完成帐户并安装了 Flask邮件验证软件包,可以运行查找各种电子邮件地址的一些代码。
这是一个简单的 Flask 应用程序,仅包含一个端点,'/email/<email>'
,可搜索得到一个带有 API 请求结果的简单响应:
from flask import Flask, make_response
from flask_email_verifier import EmailVerifier
from json import dumps, loads
app = Flask(__name__)
# Initialize the extension
verifier = EmailVerifier(app)
@app.route('/email/<email>')
def email(email):
# Retrieve an info for the given email address
email_address_info = verifier.verify(email)
if email_address_info is not None:
data = dumps(loads(email_address_info.json_string), indent=4)
resp = make_response(data, 200)
resp.headers['Content-Type'] = 'application/json'
else:
resp = make_response('None', 404)
return resp
在运行应用程序前需执行以下操作。
- Specify a
'FLASK_APP'
environment variable (export FLASK_APP=app.py
) - Specify a
'EMAIL_VERIFIER_KEY'
environment variable with the API key (export EMAIL_VERIFIER_KEY=’your-api-key’
)
Put this code into the 'app.py'
file and run it, and you should see a JSON response with the info
about [email protected] when you visit the '/test/[email protected]'
endpoint in your
browser.
If you run this new server and visit the '/email/[email protected]'
URL in your browser, you
should see a new response that looks something like this:
{
"emailAddress": "[email protected]",
"formatCheck": "true",
"smtpCheck": "false",
"dnsCheck": "true",
"freeCheck": "true",
"disposableCheck": "false",
"catchAllCheck": "false",
"mxRecords": [
"alt3.gmail-smtp-in.l.google.com",
"alt1.gmail-smtp-in.l.google.com",
"alt2.gmail-smtp-in.l.google.com",
"alt4.gmail-smtp-in.l.google.com",
"gmail-smtp-in.l.google.com"
],
"audit": {
"auditCreatedDate": "2018-11-14 13:05:09.000 UTC",
"auditUpdatedDate": "2018-11-14 13:05:09.000 UTC"
}
}
如您所见,响应数据对象包含所有电子邮件数据!非常整洁,不是吗?响应对象包含用户需要了解的有关给定电子邮件地址的所有信息。
Flask邮件验证器总结
运行电子邮件验证可能很棘手,可将电子邮件验证器与电子邮件验证 API服务相结合使其变得简单且便宜!使用新的 Flask电子邮件验证器库,轻松为最大的企业站点构建和管理电子邮件验证。
了解更多信息,请查看 GitHub 上的 Flask电子邮件验证器库,了解所有文档和更多信息: https://github.com/whois-api-llc/flask-email-verification
如果有任何疑问,请给我们发送电子邮件!