さまざまなドライバーを使用して、さまざまなスパムメールプロバイダーに対して電子メールアドレスを簡単に検証できるように設計された強力な Laravel パッケージ。 Laravel の検証システムとシームレスに統合されたこのパッケージは、フォームおよび RESTful API での電子メール入力を検証するための包括的なサポートを提供します。
サービス | 説明 | ドライバ | ドキュメント | サポートされています |
---|---|---|---|---|
地元 | スパムメールドメインのローカルテキストリスト。 | 地元 | 続きを読む | ✅ はい |
リモート | PHP 組み込み関数getmxrr() 、 checkdnsrr() の使用。 fsockopen() で電子メール ドメインを検証する | リモート | 続きを読む | ✅ はい |
抽象API | Abstract の API スイートを使用して電子メール ドメインを検証する | 抽象API | 続きを読む | ✅ はい |
クイックメール検証 | 信頼性が高く、正確で、手頃な価格の高度な電子メール検証サービス | クイックメール検証 | 続きを読む | ✅ はい |
ベリファリア | 電子メール アドレスのリストを簡単にアップロードして検証できる Web ベースの電子メール検証サービス | ベリファリア | 続きを読む | ✅ はい |
送信グリッド | 送信前に電子メール アドレスを検証できるクラウドベースの SMTP プロバイダー。 | センドグリッド | 続きを読む | ✅ はい |
注:さらに多くのサービスが間もなく追加される予定です。 (ZeroBounce、Mailboxlayer、EmailListVerify、Emailable などのサービスを追加して、このプロジェクトに貢献することもできます)
パッケージは、composer 経由でインストールできます。
composer require martian/spammailchecker
Martian SpamMailChecker SpamMailCheckerServiceProvider::class,
config/app.php
を開き、次の行をaliases
配列に追加します。 ' SpamMailChecker ' => Martian SpamMailChecker Facades SpamMailChecker::class,
次のコマンドを使用して構成ファイルを公開します。
php artisan vendor:publish --provider= " MartianSpamMailCheckerProvidersSpamMailCheckerServiceProvider "
設定ファイルはconfig/laravel-spammail-checker.php
にあります。サポートされているドライバーのいずれかを使用するようにパッケージを構成できます。デフォルトのドライバーはlocal
であり、スパム電子メール ドメインのローカル テキスト リストを使用します。
local
ドライバーの選択として使用するには、 config/laravel-spammail-checker.php
構成ファイルのdefault
キーをlocal
に設定する必要があります。
' default ' => ' local ' ,
または、 .env
ファイルでSPAM_MAIL_CHECKER_DEFAULT_DRIVER
環境変数をlocal
に設定することもできます。
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = local
ローカル ドライバーは、スパム電子メール ドメインのローカル テキスト リストを使用します。このファイルはresources/config/emails.txt
にあります。 blacklist
配列にドメインを追加してさらにドメインを含めたり、 whitelist
配列にドメインを追加して除外したりできます。
' drivers ' => [
' local ' => [
...
' whitelist ' => [
// Add domains you want the local driver to ignore here
' gmail.com ' ,
' yahoo.com ' ,
],
' blacklist ' => [
// Add domains you want the local driver to validate against here
' mailinator.com ' ,
' spam.com ' ,
],
]
]
構成ファイルに変更を加えた後、次のコマンドを使用して構成とキャッシュをクリアします。
php artisan optimize:clear
注:ローカル ドライバーでは大文字と小文字が区別されません。したがって、電子メール ドメインの大文字と小文字を気にする必要はありません。
選択したドライバーとしてremote
を使用するには、 config/laravel-spammail-checker.php
設定ファイルのdefault
キーをremote
に設定する必要があります。
' driver ' => ' remote ' ,
または、 .env
ファイルでSPAM_MAIL_CHECKER_DEFAULT_DRIVER
環境変数をremote
に設定することもできます。
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = remote
リモートドライバーは、PHP 組み込み関数getmxrr()
、 checkdnsrr()
を使用します。 fsockopen()
使用して電子メール ドメインを検証します。 MX - getmxrr()
、DNS - checkdnsrr()
、および SMTP - fsockopen
をチェックするか、電子メール ドメインを検証するかについて、リモート ドライバーを構成できます。タイムアウト値を秒単位で構成することもできます。
' drivers ' => [
...
' remote ' => [
...
' check_dns ' => true, // When set to true, it will check for DNS
' check_smtp ' => false , // When set to true, it will check for SMTP
' check_mx ' => false , // When set to true, it will check for MX record
' timeout ' => 60 * 5 , // 5 minutes
]
]
abstractapi
ドライバーの選択として使用するには、 config/laravel-spammail-checker.php
設定ファイルのdefault
キーをabstractapi
に設定する必要があります。
'default' => 'abstractapi',
または、 .env
ファイルでSPAM_MAIL_CHECKER_DEFAULT_DRIVER
環境変数をabstractapi
に設定することもできます。
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = abstractapi
ここから取得したABSTRACTAPI_API_KEY
AbstractAPI キーをenv
ファイルに追加します。
ABSTRACTAPI_API_KEY=abstractapi_api_key
score
を構成して、有効な電子メール アドレスのしきい値を決定できます。スコアの範囲は 0 ~ 1 です。スコアが高いほど、電子メール アドレスが有効である可能性が高くなります。 accept_disposable
true
に設定することで、使い捨て電子メール アドレスを受け入れることもできます。
' drivers ' => [
...
' abstractapi ' => [
...
' score ' => 0.5 , // 0.5 is the default score
' accept_disposable_email ' => true // When set to true, it will accept disposable email addresses
]
]
quickemailverification
ドライバーの選択として使用するには、 config/laravel-spammail-checker.php
構成ファイルのdefault
キーをquickemailverification
に設定する必要があります。
'default' => 'quickemailverification',
または、 .env
ファイルでSPAM_MAIL_CHECKER_DEFAULT_DRIVER
環境変数をquickemailverification
に設定することもできます。
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = quickemailverification
ここから取得したQUICKEMAILVERIFICATION_API_KEY
QuickEmailVerification キーをenv
ファイルに追加します。
QUICKEMAILVERIFICATION_API_KEY = quickemailverification_api_key
accept_disposable
true
に設定することで、使い捨て電子メール アドレスを受け入れるようにドライバーを構成できます。
' drivers ' => [
...
' quickemailverification ' => [
...
' accept_disposable ' => true, // When set to true, it will accept disposable email addresses
]
]
verifalia
ドライバーの選択として使用するには、 config/laravel-spammail-checker.php
構成ファイルのdefault
キーをverifalia
に設定する必要があります。
'default' => 'verifalia',
または、 .env
ファイルでSPAM_MAIL_CHECKER_DEFAULT_DRIVER
環境変数をverifalia
に設定することもできます。
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = verifalia
verifalia サービスを使用するには、 env
ファイルにログイン資格情報を設定する必要があります。ここでユーザーを作成した後、資格情報を取得できます。
VERIFALIA_USERNAME = verifalia_username
VERIFALIA_PASSWORD = verifalia_password
accept_disposable
true
に設定することで、使い捨て電子メール アドレスを受け入れるようにドライバーを構成できます。
' drivers ' => [
...
' verifalia ' => [
...
' accept_disposable ' => true, // When set to true, it will accept disposable email addresses
]
]
注: verifalia のユーザーには API を使用する権限が付与される必要があります。これを行うには、ここに移動し、権限を付与したい編集ユーザーをクリックします。次に、「
Permissions
タブをクリックし、Email validations
セクションで適切な権限を確認します。
sendgrid
ドライバーとして使用するには、 config/laravel-spammail-checker.php
構成ファイルのdefault
キーをsendgrid
に設定する必要があります。
'default' => 'sendgrid',
または、 .env
ファイルでSPAM_MAIL_CHECKER_DEFAULT_DRIVER
環境変数をsendgrid
に設定することもできます。
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = sendgrid
ここから取得したSENDGRID_API_KEY
Sendgrid キーをenv
ファイルに追加します。
SENDGRID_API_KEY = sendgrid_api_key
accept_disposable
true
に設定することで、使い捨て電子メール アドレスを受け入れるようにドライバーを構成できます。有効な電子メール アドレスのしきい値を決定するためにスコアを構成することもできます。スコアの範囲は 0 ~ 1 です。スコアが高いほど、電子メール アドレスが有効である可能性が高くなります。送信元は、電子メール アドレスの送信元を特定するように構成することもできます。ソースは、 signup
またはcontact
です。
' drivers ' => [
...
' sendgrid ' => [
...
' score ' => 0.5 , // 0.5 is the default score
' accept_disposable ' => true , // When set to true, it will accept disposable email addresses
' source ' => ' signup ' // The source is signup by default
]
]
パッケージを使用するには、検証ルールでspammail
検証ルールを呼び出す必要があります。 config/laravel-spammail-checker.php
設定ファイルのrule
キーの下でルール名を任意に変更することもできます。同様に、 error_message
キーの下のエラー メッセージも変更できます。
/**
* Get a validator for an incoming registration request.
*
* @param array $data
* @return IlluminateContractsValidationValidator
*/
protected function validator ( array $ data )
{
return Validator:: make ( $ data , [
' email ' => ' required|spammail|max:255 ' ,
]);
}
または、次のようにリクエスト ファイルでspammail
を使用します。
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules ()
{
return [
' email ' => ' required|spammail|max:255 ' ,
];
}
カスタム エラー メッセージをspammail
検証ルールに追加できます。
' email.spammail ' => ' This email address is invalid. ' , // Custom error message
または、 config/laravel-spammail-checker.php
設定ファイルのerror_message
キーの下にあるエラー メッセージを変更することもできます。
' error_message ' => ' This email address is invalid. ' , // Custom error message
spammail
検証ルールを使用せずに、クラスを直接使用することもできます。これは、独自のカスタム検証ルールまたは独自のカスタム クラスでパッケージを使用する場合に便利です。
use Martian SpamMailChecker SpamMailChecker ;
public function checkEmail ( $ email )
{
$ spamMailChecker = new SpamMailChecker ();
$ spamMailChecker -> validate ( $ email );
}
SpamMailChecker
クラスをインスタンス化せずに直接使用することもできます。
use Martian SpamMailChecker Facades SpamMailChecker ;
public function checkEmail ( $ email )
{
SpamMailChecker:: validate ( $ email );
}
spammail
検証ルールを使用せずに、各ドライバーを個別に使用することもできます。これは、特定の状況で特定のドライバーが必要な場合に便利です。
use Martian SpamMailChecker Drivers VerifaliaDriver ;
public function checkEmail ( $ email )
{
$ verifaliaDriver = new VerifaliaDriver ();
$ verifaliaDriver -> validate ( $ email );
}
use Martian SpamMailChecker Drivers SendGridDriver ;
public function checkEmail ( $ email )
{
$ sendGridDriver = new SendGridDriver ();
$ sendGridDriver -> validate ( $ email );
}
use Martian SpamMailChecker Drivers AbstractApiDriver ;
public function checkEmail ( $ email )
{
$ abstractApiDriver = new AbstractApiDriver ();
$ abstractApiDriver -> validate ( $ email );
}
use Martian SpamMailChecker Drivers RemoteDriver ;
public function checkEmail ( $ email )
{
$ remoteDriver = new RemoteDriver ();
$ remoteDriver -> validate ( $ email );
}
use Martian SpamMailChecker Drivers LocalDriver ;
public function checkEmail ( $ email )
{
$ localDriver = new LocalDriver ();
$ localDriver -> validate ( $ email );
}
use Martian SpamMailChecker Drivers QuickEmailVerificationDriver ;
public function checkEmail ( $ email )
{
$ quickEmailVerificationDriver = new QuickEmailVerificationDriver ();
$ quickEmailVerificationDriver -> validate ( $ email );
}
composer test
最近の変更点の詳細については、CHANGELOG を参照してください。
ご自由にこのプロジェクトをフォークしてプルリクエストを行ってください。詳細については、「貢献」を参照してください。
セキュリティ関連の問題を発見した場合は、問題トラッカーを使用する代わりに、[email protected] に電子メールを送信してください。
MIT ライセンス (MIT)。詳細については、ライセンス ファイルを参照してください。