egulias / email-validator
一个用于根据多个RFC验证电子邮件的库
4.0.2
2023-10-06 06:47 UTC
Requires
- php: >=8.1
- doctrine/lexer: ^2.0 || ^3.0
- symfony/polyfill-intl-idn: ^1.26
Requires (Dev)
- phpunit/phpunit: ^10.2
- vimeo/psalm: ^5.12
Suggests
- ext-intl: PHP Internationalization Libraries are required to use the SpoofChecking validation
- 4.x-dev
- 4.0.2
- 4.0.1
- 4.0.0
- 3.x-dev
- 3.2.6
- 3.2.5
- 3.2.4
- 3.2.3
- 3.2.2
- 3.2.1
- 3.2
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.1
- 3.0.0
- 2.1.x-dev
- dev-master / 2.1.x-dev
- 2.1.25
- 2.1.24
- 2.1.23
- 2.1.22
- 2.1.21
- 2.1.20
- 2.1.19
- 2.1.18
- 2.1.17
- 2.1.16
- 2.1.15
- 2.1.14
- 2.1.13
- 2.1.12
- 2.1.11
- 2.1.10
- 2.1.9
- 2.1.8
- 2.1.7
- 2.1.6
- 2.1.5
- 2.1.4
- 2.1.3
- 2.1.2
- 2.1.1
- 2.1.0
- 2.0.1
- 2.0.0
- 1.2.x-dev
- 1.2.17
- 1.2.16
- 1.2.15
- 1.2.14
- 1.2.13
- 1.2.12
- 1.2.11
- 1.2.10
- 1.2.9
- 1.2.8
- 1.2.7
- 1.2.6
- 1.2.5
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.1
- 1.1.0
- 1.0.0
- dev-codacy-github-action
- dev-message-id-validator
This package is auto-updated.
Last update: 2024-09-15 20:03:04 UTC
README
一个用于根据多个RFC验证电子邮件的库。
支持的RFC
该库旨在支持以下RFC
支持的版本
当前完全支持的最新主要版本是v3
要求
- PHP 8.1
- 安装需要 Composer
- Spoofchecking 和 DNSCheckValidation 验证需要您的PHP系统有 PHP国际化库(也称为PHP Intl)
注意: 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
可用的验证
- RFCValidation: 标准RFC-like电子邮件验证。
- NoRFCWarningsValidation: 当发现警告*时将失败的RFC-like验证。
- DNSCheckValidation: 将检查是否存在表示服务器接受电子邮件的DNS记录。这并不表示电子邮件存在。
- MultipleValidationWithAnd: 这是一个对其他验证执行逻辑与(&&)每个验证结果的验证。
- MessageIDValidation: 遵循 RFC2822 for message-id 来验证该字段,该字段在域名部分有一些差异。
- 您的验证: 您可以通过实现自己的验证来扩展库的行为。
*警告:警告是对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中出现的验证
- SpoofCheckValidation: 将检查可能表示错误的电子邮件名称的多UTF-8字符。
如何扩展
很简单!您只需要实现 EmailValidation,然后您可以使用自己的验证。
贡献
请遵循贡献指南。它简短而直接,将非常有帮助。
其他贡献者
(您可以在这里找到当前贡献者)
由于这是从另一个库移植过来的,这里有一些与之前版本相关的人
- Ricard Clau @ricardclau:与PHP内置filter_var(v2及更早版本)的性能对比
- Josepf Bielawski @stloyd:对Dominic的库进行了首次重构
- Dominic Sayers @dominicsayers:原始的isemail函数
许可证
此代码附带的MIT许可证下发布。