Ein leistungsstarkes Laravel-Paket zur mühelosen Validierung von E-Mail-Adressen bei verschiedenen Spam-Mail-Anbietern mithilfe einer Vielzahl von Treibern. Dieses Paket ist nahtlos in das Validierungssystem von Laravel integriert und bietet umfassende Unterstützung für die Validierung von E-Mail-Eingaben in Formularen und RESTful-APIs
| Service | Beschreibungen | Treiber | Dokumentation | Unterstützt |
|---|---|---|---|---|
| Lokal | Eine lokale Textliste von Spam-E-Mail-Domänen. | lokal | Mehr lesen | ✅ Ja |
| Fernbedienung | Verwendung der in PHP integrierten Funktionen getmxrr() , checkdnsrr() . fsockopen() zur Validierung der E-Mail-Domäne | Fernbedienung | Mehr lesen | ✅ Ja |
| AbstractApi | Verwendung der API-Suite von Abstract zur Validierung von E-Mail-Domänen | abstractapi | Mehr lesen | ✅ Ja |
| QuickEmailVerification | Ein zuverlässiger, genauer, erschwinglicher und fortschrittlicher E-Mail-Verifizierungsdienst | schnelle E-Mail-Verifizierung | Mehr lesen | ✅ Ja |
| Verifalia | Ein webbasierter E-Mail-Validierungsdienst, der das einfache Hochladen und Validieren von E-Mail-Adresslisten ermöglicht | Verifalia | Mehr lesen | ✅ Ja |
| SendGrid | Ein cloudbasierter SMTP-Anbieter, der es Ihnen ermöglicht, E-Mail-Adressen vor dem Senden zu validieren. | sendgrid | Mehr lesen | ✅ Ja |
HINWEIS: Weitere Dienste werden in Kürze hinzugefügt. (Sie können auch zu diesem Projekt beitragen, indem Sie weitere Dienste hinzufügen – ZeroBounce, Mailboxlayer, EmailListVerify, Emailable usw.)
Sie können das Paket über Composer installieren:
composer require martian/spammailchecker Martian SpamMailChecker SpamMailCheckerServiceProvider::class,config/app.php und fügen Sie die folgende Zeile zum aliases Array hinzu: ' SpamMailChecker ' => Martian SpamMailChecker Facades SpamMailChecker::class,Veröffentlichen Sie die Konfigurationsdatei mit dem folgenden Befehl:
php artisan vendor:publish --provider= " MartianSpamMailCheckerProvidersSpamMailCheckerServiceProvider " Die Konfigurationsdatei befindet sich unter config/laravel-spammail-checker.php . Sie können das Paket so konfigurieren, dass es einen der unterstützten Treiber verwendet. Der Standardtreiber ist local und verwendet eine lokale Textliste von Spam-E-Mail-Domänen.
Um local als Treiber Ihrer Wahl zu verwenden, müssen Sie den default in der Konfigurationsdatei config/laravel-spammail-checker.php auf local setzen:
' default ' => ' local ' , Oder Sie können die Umgebungsvariable SPAM_MAIL_CHECKER_DEFAULT_DRIVER in Ihrer .env Datei auf local setzen.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = local Der lokale Treiber verwendet eine lokale Textliste von Spam-E-Mail-Domänen. Die Datei befindet sich unter resources/config/emails.txt . Sie können weitere Domänen einschließen, indem Sie sie dem blacklist -Array hinzufügen, oder Domänen ausschließen, indem Sie sie dem whitelist -Array hinzufügen.
' 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 ' ,
],
]
]Löschen Sie die Konfiguration und den Cache mit den folgenden Befehlen, nachdem Sie Änderungen an der Konfigurationsdatei vorgenommen haben:
php artisan optimize:clearHINWEIS: Beim lokalen Treiber wird die Groß-/Kleinschreibung nicht beachtet. Sie müssen sich also keine Gedanken über die Groß- und Kleinschreibung der E-Mail-Domäne machen.
Um remote als Treiber Ihrer Wahl zu verwenden, müssen Sie den default in der Konfigurationsdatei config/laravel-spammail-checker.php auf remote setzen:
' driver ' => ' remote ' , Oder Sie können die Umgebungsvariable SPAM_MAIL_CHECKER_DEFAULT_DRIVER in Ihrer .env Datei auf remote setzen.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = remote Der Remote-Treiber verwendet die in PHP integrierten Funktionen getmxrr() und checkdnsrr() . fsockopen() zur Validierung der E-Mail-Domäne. Sie können den Remote-Treiber so konfigurieren, dass er nach MX – getmxrr() , DNS – checkdnsrr() und SMTP – fsockopen sucht oder die E-Mail-Domäne validiert. Sie können den Timeout-Wert auch in Sekunden konfigurieren.
' 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
]
] Um abstractapi als Treiber Ihrer Wahl zu verwenden, müssen Sie den default in der Konfigurationsdatei config/laravel-spammail-checker.php auf abstractapi setzen:
'default' => 'abstractapi', Oder Sie können die Umgebungsvariable SPAM_MAIL_CHECKER_DEFAULT_DRIVER in Ihrer .env Datei auf abstractapi setzen.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = abstractapi Fügen Sie Ihren ABSTRACTAPI_API_KEY AbstractAPI-Schlüssel, den Sie hier erhalten haben, zu Ihrer env -Datei hinzu.
ABSTRACTAPI_API_KEY=abstractapi_api_key
Sie können den score konfigurieren, um den Schwellenwert für eine gültige E-Mail-Adresse zu bestimmen. Der Wert reicht von 0 bis 1. Je höher der Wert, desto wahrscheinlicher ist die E-Mail-Adresse gültig. Sie können auch Wegwerf-E-Mail-Adressen akzeptieren, indem Sie accept_disposable auf true setzen.
' 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
]
] Um quickemailverification als Treiber Ihrer Wahl zu verwenden, müssen Sie den default in der Konfigurationsdatei config/laravel-spammail-checker.php auf quickemailverification setzen:
'default' => 'quickemailverification', Oder Sie können die Umgebungsvariable SPAM_MAIL_CHECKER_DEFAULT_DRIVER in Ihrer .env Datei auf quickemailverification setzen.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = quickemailverification Fügen Sie Ihren QUICKEMAILVERIFICATION_API_KEY QuickEmailVerification-Schlüssel, den Sie hier erhalten haben, zu Ihrer env -Datei hinzu.
QUICKEMAILVERIFICATION_API_KEY = quickemailverification_api_key Sie können den Treiber so konfigurieren, dass er Einweg-E-Mail-Adressen akzeptiert, indem Sie accept_disposable auf true setzen.
' drivers ' => [
...
' quickemailverification ' => [
...
' accept_disposable ' => true, // When set to true, it will accept disposable email addresses
]
] Um verifalia als Treiber Ihrer Wahl zu verwenden, müssen Sie den default in der Konfigurationsdatei config/laravel-spammail-checker.php auf verifalia setzen:
'default' => 'verifalia', Oder Sie können die Umgebungsvariable SPAM_MAIL_CHECKER_DEFAULT_DRIVER in Ihrer .env Datei auf verifalia setzen.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = verifalia Um den Verifalia-Dienst nutzen zu können, müssen Sie Anmeldeinformationen in Ihrer env Datei festlegen. Sie können Ihre Anmeldeinformationen erhalten, nachdem Sie hier einen Benutzer erstellt haben.
VERIFALIA_USERNAME = verifalia_username
VERIFALIA_PASSWORD = verifalia_password Sie können den Treiber so konfigurieren, dass er Einweg-E-Mail-Adressen akzeptiert, indem Sie accept_disposable auf true setzen.
' drivers ' => [
...
' verifalia ' => [
...
' accept_disposable ' => true, // When set to true, it will accept disposable email addresses
]
]HINWEIS: Einem Verifalia-Benutzer muss die Berechtigung zur Nutzung der API erteilt werden. Sie können dies tun, indem Sie hierher gehen und auf den Bearbeitungsbenutzer klicken, dem Sie die Berechtigung erteilen möchten. Klicken Sie dann auf die Registerkarte
Permissionsund überprüfen Sie die entsprechenden Berechtigungen im AbschnittEmail validations.
Um sendgrid als Treiber Ihrer Wahl zu verwenden, müssen Sie den default in der Konfigurationsdatei config/laravel-spammail-checker.php auf sendgrid festlegen:
'default' => 'sendgrid', Oder Sie können die Umgebungsvariable SPAM_MAIL_CHECKER_DEFAULT_DRIVER in Ihrer .env Datei auf sendgrid setzen.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = sendgrid Fügen Sie Ihren SENDGRID_API_KEY Sendgrid-Schlüssel, den Sie hier erhalten haben, zu Ihrer env -Datei hinzu.
SENDGRID_API_KEY = sendgrid_api_key Sie können den Treiber so konfigurieren, dass er Einweg-E-Mail-Adressen akzeptiert, indem Sie accept_disposable auf true setzen. Der Score kann auch konfiguriert werden, um den Schwellenwert für eine gültige E-Mail-Adresse zu bestimmen. Der Wert reicht von 0 bis 1. Je höher der Wert, desto wahrscheinlicher ist die E-Mail-Adresse gültig. Die Quelle kann auch konfiguriert werden, um die Quelle der E-Mail-Adresse zu bestimmen. Die Quelle kann signup oder contact sein.
' 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
]
] Um das Paket nutzen zu können, müssen Sie in Ihren Validierungsregeln die spammail Validierungsregel aufrufen. Sie können den Regelnamen auch in der Konfigurationsdatei config/laravel-spammail-checker.php unter dem Schlüssel rule beliebig ändern, ebenso die Fehlermeldung unter dem Schlüssel 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 ' ,
]);
} Oder nutzen Sie spammail in Ihrer Anfragedatei wie folgt:
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules ()
{
return [
' email ' => ' required|spammail|max:255 ' ,
];
} Der spammail Validierungsregel kann eine benutzerdefinierte Fehlermeldung hinzugefügt werden.
' email.spammail ' => ' This email address is invalid. ' , // Custom error message Oder Sie können die Fehlermeldung in der Konfigurationsdatei config/laravel-spammail-checker.php unter dem Schlüssel error_message ändern.
' error_message ' => ' This email address is invalid. ' , // Custom error message Sie können die Klassen auch direkt verwenden, ohne die spammail Validierungsregel zu verwenden. Dies ist nützlich, wenn Sie das Paket in Ihrer eigenen benutzerdefinierten Validierungsregel oder Ihrer eigenen benutzerdefinierten Klasse verwenden möchten.
use Martian SpamMailChecker SpamMailChecker ;
public function checkEmail ( $ email )
{
$ spamMailChecker = new SpamMailChecker ();
$ spamMailChecker -> validate ( $ email );
} Sie können die SpamMailChecker -Klasse auch direkt verwenden, ohne sie zu instanziieren.
use Martian SpamMailChecker Facades SpamMailChecker ;
public function checkEmail ( $ email )
{
SpamMailChecker:: validate ( $ email );
} Sie können jeden Treiber auch einzeln verwenden, ohne die spammail Validierungsregel zu verwenden. Dies ist nützlich, wenn in einer bestimmten Situation ein bestimmter Fahrer benötigt wird.
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 testWeitere Informationen zu den letzten Änderungen finden Sie im CHANGELOG.
Bitte zögern Sie nicht, dieses Projekt zu forken und eine Pull-Anfrage zu stellen. Weitere Informationen finden Sie unter BEITRAG.
Wenn Sie sicherheitsrelevante Probleme entdecken, senden Sie bitte eine E-Mail an [email protected], anstatt den Issue-Tracker zu verwenden.
Die MIT-Lizenz (MIT). Weitere Informationen finden Sie in der Lizenzdatei.