rezozero / canonical-email
一个简单的PHP库,用于将gmail.com或其他允许多种电子邮件形式的电子邮件地址规范化。
1.0.2
2021-10-25 11:59 UTC
Requires
- php: >=7.2
- beberlei/assert: ^3.2
Requires (Dev)
- phpstan/phpstan: ^0.12.32
- phpunit/phpunit: ^8
- squizlabs/php_codesniffer: ^3.5
This package is auto-updated.
Last update: 2024-09-25 18:35:19 UTC
README
一个简单的PHP库,用于将gmail.com、outlook.com或其他允许多种电子邮件形式的电子邮件地址规范化。
请注意:不要将规范化电子邮件地址作为登录或发送电子邮件的主要电子邮件地址!
如果用户使用了与规范化地址不同的特定电子邮件语法,他们可能无法再次登录到您的网站。仅存储规范化电子邮件地址以测试重复项并防止新用户使用变体创建多个账户。
始终在数据库中存储 email
和 canonical_email
。
策略
LowercaseDomainStrategy
:对于每封电子邮件,域名不区分大小写,因此应该转换为小写。GmailStrategy
:针对@gmail.com
地址或任何MX服务器来自Google GSuite的域名(如果$checkMxRecords
为true
)。这将删除任何点,以及任何在+
符号之后的字符。然后所有电子邮件部分都将转换为小写。当检查MX时,您的应用程序将使用PHPgetmxrr
函数。OutlookStrategy
:针对@outlook.com
地址。这将删除任何在+
符号之后的字符。
用法
composer require rezozero/canonical-email
use RZ\CanonicalEmail\EmailCanonizer; use RZ\CanonicalEmail\Strategy\GmailStrategy; use RZ\CanonicalEmail\Strategy\GSuiteStrategy; use RZ\CanonicalEmail\Strategy\LowercaseDomainStrategy; use RZ\CanonicalEmail\Strategy\OutlookStrategy; $canonizer = new EmailCanonizer([ new LowercaseDomainStrategy(), new GmailStrategy(), new GSuiteStrategy(), new OutlookStrategy() ]); $canonizer->getCanonicalEmailAddress($email);
运行测试
composer install
make test