检测可倾斜的(临时/丢弃/假)电子邮件地址的PHP软件包。它是框架不可静止的,没有依赖性,但包括对Laravel的支持。它验证了电子邮件地址以确保它们是真实的,这对于管理帐户注册和评估系统中合法的电子邮件地址的数量很有用。
此工具还有助于避免通信错误并阻止垃圾邮件地址。
查找是超级快速的O(1) ,因为使用本机PHP Hash Set在本地存储了一次性的电子邮件域。
?一次性电子邮件域列表会自动从受信任的外部来源自动更新。
笔记
在下面阅读有关Laravel的特定说明。
使用以下命令需要与作曲家一起使用此软件包:
composer require beeyev/disposable-email-filter-php简单检查电子邮件地址是否可容纳:
<?php
require __DIR__ . ' /vendor/autoload.php ' ;
use Beeyev DisposableEmailFilter DisposableEmailFilter ;
$ disposableEmailFilter = new DisposableEmailFilter ();
// Check if email address is disposable
$ disposableEmailFilter -> isDisposableEmailAddress ( ' [email protected] ' ); // false
$ disposableEmailFilter -> isDisposableEmailAddress ( ' [email protected] ' ); // true注意:白名单域比黑名单域具有更高的优先级。
<?php
require __DIR__ . ' /vendor/autoload.php ' ;
use Beeyev DisposableEmailFilter DisposableEmailFilter ;
$ disposableEmailFilter = new DisposableEmailFilter ();
// Add multiple custom domains to blacklist
$ disposableEmailFilter -> blacklistedDomains ()-> addMultiple ([ ' mailinator.com ' , ' 10minute-mail.org ' ]);
// Add one domain to whitelist
$ disposableEmailFilter -> whitelistedDomains ()-> add ( ' tempmailer.com ' );
$ disposableEmailFilter -> isDisposableEmailAddress ( ' [email protected] ' ); // false (because it's whitelisted now)
$ disposableEmailFilter -> isDisposableEmailAddress ( ' [email protected] ' ); // true
$ disposableEmailFilter -> isDisposableEmailAddress ( ' [email protected] ' ); // true
$ disposableEmailFilter -> isDisposableEmailAddress ( ' [email protected] ' ); // false还可以使用构造函数依赖性添加黑名单和白名单域:
use Beeyev DisposableEmailFilter CustomEmailDomainFilter CustomEmailDomainFilter ;
use Beeyev DisposableEmailFilter DisposableEmailFilter ;
$ blacklistedDomains = new CustomEmailDomainFilter ([ ' blacklisted1.com ' , ' blacklisted2.com ' , ' blacklisted3.com ' ]);
$ whitelistedDomains = new CustomEmailDomainFilter ([ ' abc2.com ' , ' whitelisted1.com ' ]);
$ disposableEmailFilter = new DisposableEmailFilter ( $ blacklistedDomains , $ whitelistedDomains );
$ disposableEmailFilter -> isDisposableEmailAddress ( ' [email protected] ' ); // false - whitelisted注意:您可以通过创建实现
CustomEmailDomainFilterInterface的自定义类来开发自己的过滤逻辑
如果您尝试以无效的电子邮件格式传递空字符串或字符串,则将引发异常。
use Beeyev DisposableEmailFilter DisposableEmailFilter ;
use Beeyev DisposableEmailFilter Exceptions InvalidEmailAddressException ;
$ disposableEmailFilter = new DisposableEmailFilter ();
try {
$ disposableEmailFilter -> isDisposableEmailAddress ( ' john:gmail.com ' ); // Exception will be thrown because of invalid email format
} catch ( InvalidEmailAddressException $ e ) {
echo $ e -> getMessage ();
}如果您期望该电子邮件地址可能无效,并且不想将代码包装到try/catch中,
您可以使用isDisposableEmailAddressSafe方法检查是否正确格式化了电子邮件地址,然后检查是否可以处理:
$ disposableEmailFilter = new DisposableEmailFilter ();
$ emailAddress = ' john:gmail.com ' ;
if ( $ disposableEmailFilter -> isEmailAddressValid ( $ emailAddress )) {
$ disposableEmailFilter -> isDisposableEmailAddress ( $ emailAddress );
}该软件包包括Laravel的服务提供商和表单验证规则。
composer require beeyev/disposable-email-filter-php该软件包将使用Laravel自动发现机制自动注册。
但是,如果需要手动执行此操作,则可以在config/app.php文件中的providers数组中添加以下行:
Beeyev DisposableEmailFilter Adapters Laravel DisposableEmailFilterServiceProvider::class,使用验证规则not_disposable_email或对象new NotDisposableEmail() ,以检查特定字段是否包含一次性电子邮件地址。
笔记
❗将其放置在电子邮件验证器之后,以确保仅处理有效的电子邮件。
例子:
// Using validation rule name:
' email_field ' => ' required|email|not_disposable_email ' ,
// Or using a validation rule object:
' email_field ' => [ ' email ' , new NotDisposableEmail ()],您可以使用DisposableEmail立面访问DisposableEmailFilter实例:
use Beeyev DisposableEmailFilter Adapters Laravel Facades DisposableEmail ;
DisposableEmail:: isEmailAddressValid ( ' [email protected] ' );可选地,您可以发布配置文件和翻译以自定义软件包行为:
php artisan vendor:publish --tag=disposable-email-filter此命令将在config目录中创建一个disposable-email-filter.php配置文件,并在lang/vendor/disposable-email-filter目录中创建一个translation文件。
由于定期更新一次性电子邮件域列表,因此保持包装最新很重要。
每当列表更新时,都会发布该软件包的新PATCH版本。
这些更新是安全且无关紧要的,使您可以通过此作曲家命令更新软件包:
composer update beeyev/disposable-email-filter-php您可以在部署项目之前每次在CI/CD管道中运行此命令。
如果您想添加新功能,改进现有功能或修复错误,请随时为该项目做出贡献。
要添加新的一次性域,您可以更新blacklist.txt文件并创建一个拉请求。
另外,您可以打开要添加到黑名单或白名单的域的问题。
7c/fakefilterFGRibreau/mailcheckerdisposable-email-domains本地黑名单和白名单存储在BlackList.txt和Whitelist.txt文件中。
错误报告和功能请求可以在GitHub Disears Tracker上提交。
麻省理工学院许可证(麻省理工学院)。请参阅许可证文件以获取更多信息。
如果您喜欢这个项目,请考虑给我一个