lukeyouell / craft-emailvalidator
用于用户注册、自定义表单等电子邮件地址验证。
Requires
- craftcms/cms: ^3.0.0
This package is not auto-updated.
Last update: 2019-11-16 17:15:34 UTC
README
Craft CMS 3 电子邮件验证插件
用于用户注册、自定义表单等电子邮件地址验证。
安装
要求
此插件需要 Craft CMS 3.0.0 或更高版本。
插件商店
登录您的控制面板并点击“插件商店”。搜索“Email Validator”。
Composer
- 打开您的终端并进入您的 Craft 项目
cd /path/to/project
- 然后让 Composer 加载插件
composer require lukeyouell/craft-emailvalidator
- 在控制面板中,转到设置→插件,然后点击“安装”按钮以安装 Email Validator。
配置
您可以通过更新插件设置来切换哪些检查被强制执行。
以下选项可用
名称 | 默认 | 描述 |
---|---|---|
错别字检查及建议 | 启用 |
如果检测到电子邮件地址的域名部分存在错别字,则提供替代电子邮件建议。 |
MX 记录 | 禁用 |
允许未配置接收电子邮件的域。 |
通配符 | 启用 |
允许配置为捕获所有传入邮件流量的域。 |
角色 | 启用 |
允许基于角色的电子邮件地址。 |
免费提供商 | 启用 |
允许使用免费电子邮件提供商(如Gmail和Yahoo!)的电子邮件地址。 |
一次性提供商 | 禁用 |
允许使用一次性电子邮件提供商的电子邮件地址。 |
覆盖插件设置
如果您在 config
文件夹中创建一个名为 email-validator.php
的配置文件,您可以在控制面板中覆盖插件设置。由于该配置文件完全支持多环境,这是一种在不同的环境中使用不同设置的便捷方法。
以下是一个可能的配置文件示例,以及您可以覆盖的所有可能值的列表。
<?php return [ 'typoCheck' => true, 'allowNoMX' => false, 'allowCatchAll' => true, 'allowRoles' => true, 'allowFree' => true, 'allowDisposable' => false, // Contact Form plugin settings 'cfValidation' => true, 'cf_allowNoMX' => false, 'cf_allowCatchAll' => true, 'cf_allowRoles' => true, 'cf_allowFree' => true, 'cf_allowDisposable' => false, ];
验证电子邮件地址
用户管理
如果用户设置中勾选了“验证电子邮件地址?”,则插件将自动强制执行其验证检查。
这些设置可以在 设置 > 用户 > 设置
中找到
模板
您可以通过以下函数在模板内验证电子邮件地址
{% set validation = validateEmail('joe.bloggs@email.co.uk') %} <pre>{{ validation|json_encode(constant('JSON_PRETTY_PRINT')) }}</pre>
此响应将被返回。
联系表单插件
如果您已安装 Contact Form 插件,您可以使用 Email Validator 验证提交。
邮箱验证器会自动检测此插件是否已安装,您只需前往
设置 → 邮箱验证器 → 联系表单
插件/模块
您也可以在您自己的插件/模块内验证电子邮件地址
use lukeyouell\emailvalidator\EmailValidator; EmailValidator::getInstance()->validationService->validateEmail('joe.bloggs@email.co.uk');
此响应将被返回。
响应
属性
email
正在验证的电子邮件地址。
user
电子邮件地址的本地部分。
domain
电子邮件地址的域名。
did_you_mean
如果检测到潜在的域名错误,将包含“您是否想指”建议。
format_valid
根据电子邮件地址格式是否有效返回true
或false
。
mx_found
根据是否为请求的域名找到MX记录返回true
或false
。
catch_all
根据请求的电子邮件地址是否为catch-all邮箱的一部分返回true
或false
。
role
根据请求的电子邮件地址是否基于角色返回true
或false
。(例如 'admin@email.co.uk', 'support@email.co.uk')
free
根据请求的电子邮件地址是否使用免费电子邮件提供商返回true
或false
。(例如 Gmail,Yahoo!)
disposable
根据请求的电子邮件地址是否使用一次性电子邮件提供商返回true
或false
。
邮箱验证器路线图
一些要执行的事情和潜在功能的想法
- 切换到使用作业来更新提供商列表
- 控制台命令
- 自定义规则验证器
- SMTP验证
- 商业集成
- 验证分数
由 Luke Youell 提供