albertcolom / assert-email
PHP 库用于检查电子邮件(RFC 2822、DNS、临时邮件、允许的域名)
1.0
2017-12-04 12:01 UTC
Requires
- php: ^5.4 || ^7.0
Requires (Dev)
- phpunit/phpunit: ^4.6
This package is not auto-updated.
Last update: 2024-09-22 09:03:16 UTC
README
PHP >= 5.4
受 webmozart/assert 启发的 PHP 库,用于检查电子邮件
安装
composer require albertcolom/assert-email
示例用法
use albertcolom\Assert\AssertEmail; class User { //... public function setEmail(string $email) { AssertEmail::valid($email); } }
$user = new User; $user->setEmail('foo@domain.com'); // true $user->setEmail('foo@domain'); // InvalidArgumentException: Invalid email "foo@domain"
断言
有效
检查电子邮件是否符合 RFC 2822 标准
valid($email, $message = '') AssertEmail::valid('foo@domain.com'); // true AssertEmail::valid('foo@domain'); // InvalidArgumentException: Invalid email "foo@domain" AssertEmail::valid('foo@domain', 'Custom message %s'); // InvalidArgumentException: Custom message "foo@domain"
临时邮件
检查临时电子邮件,它提供了一个包含 2000+ 个域名 的内置数据库
temporalMail($email, $message = '')` AssertEmail::temporalMail('foo@domain.com'); // true AssertEmail::temporalMail('foo@yopmail.com'); // InvalidArgumentException: Temporal email is not allowed "foo@yopmail.com" AssertEmail::temporalMail('foo@yopmail.com', 'Custom message %s'); // InvalidArgumentException: Custom message "foo@yopmail.com"
DNS
检查 DNS MX 注册信息
dns($email, $message = '') AssertEmail::dns('foo@domain.com'); // true AssertEmail::dns('foo@domain.000'); // InvalidArgumentException: Incorrect domain name "domain.000" AssertEmail::dns('foo@domain.000', 'Custom message %s'); // InvalidArgumentException: Custom message "domain.000"
允许的域名
检查是否在允许的域名列表中
domainsAllowed($email, array $domains, $message = '') $allowed = ['mysite.com', 'somedomain.xy', 'test.dev']; AssertEmail::domainsAllowed('foo@test.dev', $allowed); // true AssertEmail::domainsAllowed('foo@gmail.com', $allowed); // InvalidArgumentException: Domain is not allowed "foo@gmail.com" AssertEmail::domainsAllowed('foo@gmail.com', $allowed, 'Custom message %s'); // InvalidArgumentException: Custom message "foo@gmail.com"