egulias/email-validator

一个用于根据多个RFC验证电子邮件的库

资助包维护!
egulias

安装次数: 482 953 849

依赖项: 283

建议者: 13

安全: 0

星标: 11 411

关注者: 35

分支: 206

开放问题: 29

4.0.2 2023-10-06 06:47 UTC

README

Build Status Quality Badge Test Coverage

一个用于根据多个RFC验证电子邮件的库。

支持的RFC

该库旨在支持以下RFC

支持的版本

当前完全支持的最新主要版本是v3

要求

注意: PHP版本升级将根据主要框架的进度进行。小版本号的更新将通过本库的小版本号进行(即:PHP7.3 -> v3.x+1)。主要版本将与库的主要版本一起进行

安装

运行以下命令通过Composer安装

composer require egulias/email-validator

入门指南

EmailValidator 需要您决定对于每个 验证,您想遵循哪种(或它们的组合)验证/策略/策略。

使用RFC验证的基本示例

<?php

use Egulias\EmailValidator\EmailValidator;
use Egulias\EmailValidator\Validation\RFCValidation;

$validator = new EmailValidator();
$validator->isValid("[email protected]", new RFCValidation()); //true

可用的验证

  1. RFCValidation: 标准RFC-like电子邮件验证。
  2. NoRFCWarningsValidation: 当发现警告*时将失败的RFC-like验证。
  3. DNSCheckValidation: 将检查是否存在表示服务器接受电子邮件的DNS记录。这并不表示电子邮件存在。
  4. MultipleValidationWithAnd: 这是一个对其他验证执行逻辑与(&&)每个验证结果的验证。
  5. MessageIDValidation: 遵循 RFC2822 for message-id 来验证该字段,该字段在域名部分有一些差异。
  6. 您的验证: 您可以通过实现自己的验证来扩展库的行为。

*警告:警告是对RFC的偏差,在更广泛的理解中是可接受的。

<?php

use Egulias\EmailValidator\EmailValidator;
use Egulias\EmailValidator\Validation\DNSCheckValidation;
use Egulias\EmailValidator\Validation\MultipleValidationWithAnd;
use Egulias\EmailValidator\Validation\RFCValidation;

$validator = new EmailValidator();
$multipleValidations = new MultipleValidationWithAnd([
    new RFCValidation(),
    new DNSCheckValidation()
]);
//ietf.org has MX records signaling a server with email capabilities
$validator->isValid("[email protected]", $multipleValidations); //true

附加验证

不在RFC中出现的验证

  1. SpoofCheckValidation: 将检查可能表示错误的电子邮件名称的多UTF-8字符。

如何扩展

很简单!您只需要实现 EmailValidation,然后您可以使用自己的验证。

贡献

请遵循贡献指南。它简短而直接,将非常有帮助。

其他贡献者

(您可以在这里找到当前贡献者)

由于这是从另一个库移植过来的,这里有一些与之前版本相关的人

  • Ricard Clau @ricardclau:与PHP内置filter_var(v2及更早版本)的性能对比
  • Josepf Bielawski @stloyd:对Dominic的库进行了首次重构
  • Dominic Sayers @dominicsayers:原始的isemail函数

许可证

此代码附带的MIT许可证下发布。