檢測可傾斜的(臨時/丟棄/假)電子郵件地址的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上提交。
麻省理工學院許可證(麻省理工學院)。請參閱許可證文件以獲取更多信息。
如果您喜歡這個項目,請考慮給我一個