lukeyouell/craft-emailvalidator

此包已废弃,不再维护。未建议替代包。

用于用户注册、自定义表单等电子邮件地址验证。

1.2.2 2018-11-22 14:15 UTC

This package is not auto-updated.

Last update: 2019-11-16 17:15:34 UTC


README

icon

Craft CMS 3 电子邮件验证插件

用于用户注册、自定义表单等电子邮件地址验证。

settings

cp

frontend

安装

要求

此插件需要 Craft CMS 3.0.0 或更高版本。

插件商店

登录您的控制面板并点击“插件商店”。搜索“Email Validator”。

Composer

  1. 打开您的终端并进入您的 Craft 项目
cd /path/to/project
  1. 然后让 Composer 加载插件
composer require lukeyouell/craft-emailvalidator
  1. 在控制面板中,转到设置→插件,然后点击“安装”按钮以安装 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

根据电子邮件地址格式是否有效返回truefalse

mx_found

根据是否为请求的域名找到MX记录返回truefalse

catch_all

根据请求的电子邮件地址是否为catch-all邮箱的一部分返回truefalse

role

根据请求的电子邮件地址是否基于角色返回truefalse。(例如 'admin@email.co.uk', 'support@email.co.uk')

free

根据请求的电子邮件地址是否使用免费电子邮件提供商返回truefalse。(例如 Gmail,Yahoo!)

disposable

根据请求的电子邮件地址是否使用一次性电子邮件提供商返回truefalse

邮箱验证器路线图

一些要执行的事情和潜在功能的想法

  • 切换到使用作业来更新提供商列表
  • 控制台命令
  • 自定义规则验证器
  • SMTP验证
  • 商业集成
  • 验证分数

Luke Youell 提供