如何使用 Node.js 验证电子邮件地址
本文将引导用户了解验证电子邮件地址并改进 Node 网站的用户注册流程的最佳方法。
电子邮件验证非常重要。保证注册网站的用户拥有有效的电子邮件地址具有十分重要的意义,原因如下:
- 可在用户输入电子邮件地址时发现其拼写错误,并提醒他们在注册前修复这些错误。
- 与用户保持联系:可在用户信用卡过期、新功能推出时向他们发送电子邮件。
- 可用户在忘记密码时安全地重置密码:如果没有电子邮件地址,则无法在手动、人工验证之外验证某人的身份。
- 预防用户使用一次性电子邮件地址(例如Mailinator的电子邮件地址)注册网站。注册这些服务的用户通常出于特定原因试图绕过提供他们的真实电子邮件:也许是想滥用网站的免费增值功能等。只允许拥有真实个人或企业电子邮件地址的用户进行注册,降低网站被滥用的风险。
然而,电子邮件验证变得复杂的地方在于如何验证网站的电子邮件地址。每个网站都有不同的要求,根据用户网站的用途,可能只想通过一种或两种特定方式验证用户的电子邮件地址。
为解决这个问题,我们近期发布了电子邮件验证器NPM 库。
该节点库可以用多种不同的方式轻松验证电子邮件地址,并提供灵活的验证(稍后所示)。
所以,话不多说,让我们来看看它是如何操作!
创建电子邮件验证帐户
使用电子邮件验证程序库验证电子邮件地址,第一件事是在此处为电子邮件验证 API 服务创建一个免费帐户:https: //emailverification.whoisxmlapi.com/signup
创建免费帐户后,用户将可使用 API 服务免费核验 1,000 个电子邮件地址。如果您还想核验更多,可随时支付少量的费用。
安装包
帐户已设置完毕后,安装 Node 包。从命令行运行以下命令:
$ npm install email-verifier
将从 NPM 下载并安装最新版本的电子邮件验证程序包。
验证电子邮件地址
在注册帐户和安装了软件包后,可立即运行验证电子邮件地址的一些代码。
这是一个小脚本“verify.js”,它将使用所有可能的验证方法来验证电子邮件地址:
const Verifier = require("email-verifier");
let verifier = new Verifier("your_email_verification_api_key");
verifier.verify("[email protected]", (err, data) => {
if (err) throw err;
console.log(data);
});
如所示,使用该资料库只需三个步骤:
- 导入数据库。
- 提供API 密钥来创建“验证程序”对象。
- 运行“验证”方法,导入要验证的电子邮件地址和回调函数。验证完成后将运行此回调函数。
回调中返回的数据将如下所示:
{
"catchAll": "false",
"disposable": "false",
"dns": "OK",
"emailAddress": "[email protected]",
"free": "false",
"mxs": [ "mail.protonmail.ch" ],
"smtp": "OK",
"validFormat": "OK"
}
每个返回的 JSON 值对应不同类型的验证:
- “catchAll”将核验此电子邮件地址是否是“catch-all”地址。这是指一种特殊类型的地址,可以接收任意数量的其他地址的电子邮件。这在企业中很常见,如果向[email protected]发送一封电子邮件,并向[email protected]发送另一封电子邮件,那么这两封电子邮件都会进入同一个收件箱。
- “一次性电子邮件”将核验地址是否是一次性的(通过 Mailinator 等服务创建),可检查是否存在滥用行为。如果电子邮件不是一次性的,则该值将为“false”,否则为“true”。
- “dns”核验将确保电子邮件地址中的域名(例如:gmail.com)是有效的。如果域名良好,则该值将为“OK”。
- “免费”选项将核验电子邮件地址是否来自 Gmail 等免费电子邮件提供商。如果电子邮件地址不是免费的,则该值将为“false”,否则为“true”。
- “validFormat”核验电子邮件地址中是否存在语法错误。这是一项基本检查,旨在发现任何简单的拼写错误或重大错误。如果没有错误,该值将为“false”,否则为“true”。
API 服务在幕后以多种有趣的方式处理所有类型的验证检查。我将在以后的文章中进行介绍。
自定义电子邮件验证
正如之前所提到的,上面的代码示例展示了如何使用所有可能的验证方法来验证电子邮件地址,但这可能并不是用户所想要的。
电子邮件验证可能会很慢。每种类型的验证都需要少量时间(几分之一秒),但是当执行所有检查时,该时间将会累加。
例如,如果用户的网站只需要验证电子邮件地址以确保其可以接收电子邮件,那么验证程序包仅执行该检查。电子邮件验证程序库非常灵活:用户可以启用或禁用所需的各种类型的检查。
工作原理如下:
const Verifier = require("email-verifier");
let verifier = new Verifier("your_email_verification_api_key", {
checkCatchAll: false,
checkDisposable: false,
checkFree: false,
validateDNS: false,
validateSMTP: false
});
创建“验证程序”对象时,可以传入其他选项(如上所示),这些选项直接影响执行的检查类型。请根据需要使用。
- 注意:创建“验证程序”对象后,无论何时调用“验证”方法来验证电子邮件地址,创建“验证程序”时指定的选项都将保持有效。
改善用户的注册流程
现在已了解如何使用电子邮件验证器库来验证电子邮件地址,下一步则需要修改网站注册过程实现更便捷的使用。
方法相当简单。当用户填写并提交注册表时:
- 在网络服务器上接收表单数据
- 解析用户的注册数据,包括其电子邮件地址
- 使用电子邮件验证库立即验证用户的电子邮件地址
- 如果用户的电子邮件无效,则显示错误,提示用户重试
- 如果一切顺利,可创建用户的新帐户并登录
通过执行这些步骤,可在注册过程中及早发现用户的拼写错误和错误,以免为时已晚,从而大大改善网站的注册流程。
总结
总而言之:验证用户的电子邮件地址可能是改善网站用户体验的简单方法。
如用户需要验证电子邮件地址,新的电子邮件验证器是完美的工具,因为它可以灵活处理许多不同类型的验证。
如果有任何疑问,请给我们发送电子邮件!