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:clear
HINWEIS: 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
Permissions
und ü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 test
Weitere 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.