Un package Laravel puissant conçu pour valider sans effort les adresses e-mail par rapport à divers fournisseurs de courrier indésirable à l'aide d'une gamme diversifiée de pilotes. Parfaitement intégré au système de validation de Laravel, ce package offre une prise en charge complète pour valider les entrées de courrier électronique dans les formulaires et les API RESTful.
Service | Descriptions | Conducteur | Documentation | Soutenu |
---|---|---|---|---|
Locale | Une liste de textes locaux de domaines de courrier indésirable. | locale | En savoir plus | ✅ Oui |
Télécommande | Utilisation des fonctions PHP intégrées getmxrr() , checkdnsrr() . fsockopen() pour valider le domaine de messagerie | télécommande | En savoir plus | ✅ Oui |
RésuméApi | Utilisation de la suite d'API d'Abstract pour valider les domaines de messagerie | API abstraite | En savoir plus | ✅ Oui |
Vérification rapide des e-mails | Un service de vérification des e-mails fiable, précis, abordable et avancé | vérification rapide des e-mails | En savoir plus | ✅ Oui |
Verifalia | Un service de validation d'e-mails basé sur le Web qui permet de télécharger et de valider facilement des listes d'adresses e-mail | vérification | En savoir plus | ✅ Oui |
EnvoyerGrille | Un fournisseur SMTP basé sur le cloud qui vous permet de valider les adresses e-mail avant d'envoyer. | envoyer la grille | En savoir plus | ✅ Oui |
REMARQUE : Plus de services seront bientôt ajoutés. (Vous pouvez également contribuer à ce projet en ajoutant plus de services - ZeroBounce, Mailboxlayer, EmailListVerify, Emailable, etc.)
Vous pouvez installer le package via composer :
composer require martian/spammailchecker
Martian SpamMailChecker SpamMailCheckerServiceProvider::class,
config/app.php
et ajoutez la ligne suivante au tableau aliases
: ' SpamMailChecker ' => Martian SpamMailChecker Facades SpamMailChecker::class,
Publiez le fichier de configuration à l'aide de la commande suivante :
php artisan vendor:publish --provider= " MartianSpamMailCheckerProvidersSpamMailCheckerServiceProvider "
Le fichier de configuration se trouve dans config/laravel-spammail-checker.php
. Vous pouvez configurer le package pour utiliser l'un des pilotes pris en charge. Le pilote par défaut est local
et utilise une liste de textes locaux de domaines de courrier indésirable.
Afin d'utiliser local
comme pilote de choix, vous devez définir la clé default
dans le fichier de configuration config/laravel-spammail-checker.php
sur local
:
' default ' => ' local ' ,
Ou vous pouvez définir la variable d'environnement SPAM_MAIL_CHECKER_DEFAULT_DRIVER
sur local
dans votre fichier .env
.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = local
Le pilote local utilise une liste de textes locaux de domaines de courrier indésirable. Le fichier se trouve dans resources/config/emails.txt
. Vous pouvez inclure davantage de domaines en les ajoutant au tableau blacklist
ou exclure des domaines en les ajoutant au tableau 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 ' ,
],
]
]
Effacez la configuration et le cache à l'aide des commandes suivantes après avoir modifié le fichier de configuration :
php artisan optimize:clear
REMARQUE : Le pilote local ne respecte pas la casse. Vous n’avez donc pas à vous soucier du cas du domaine de messagerie.
Afin d'utiliser remote
comme pilote de votre choix, vous devez définir la clé default
dans le fichier de configuration config/laravel-spammail-checker.php
sur remote
:
' driver ' => ' remote ' ,
Ou vous pouvez définir la variable d'environnement SPAM_MAIL_CHECKER_DEFAULT_DRIVER
sur remote
dans votre fichier .env
.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = remote
Le pilote distant utilise les fonctions PHP intégrées getmxrr()
, checkdnsrr()
. fsockopen()
pour valider le domaine de messagerie. Vous pouvez configurer le pilote distant pour vérifier MX - getmxrr()
, DNS - checkdnsrr()
et SMTP - fsockopen
ou valider le domaine de messagerie. Vous pouvez également configurer la valeur du délai d'attente en secondes.
' 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
]
]
Afin d'utiliser abstractapi
comme pilote de choix, vous devez définir la clé default
dans le fichier de configuration config/laravel-spammail-checker.php
sur abstractapi
:
'default' => 'abstractapi',
Ou vous pouvez définir la variable d'environnement SPAM_MAIL_CHECKER_DEFAULT_DRIVER
sur abstractapi
dans votre fichier .env
.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = abstractapi
Ajoutez votre clé ABSTRACTAPI_API_KEY
AbstractAPI que vous avez obtenue ici à votre fichier env
.
ABSTRACTAPI_API_KEY=abstractapi_api_key
Vous pouvez configurer le score
pour déterminer le seuil d'une adresse e-mail valide. Le score varie de 0 à 1. Plus le score est élevé, plus l’adresse e-mail a de chances d’être valide. Vous pouvez également accepter les adresses e-mail jetables en définissant accept_disposable
sur 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
]
]
Afin d'utiliser quickemailverification
comme pilote de choix, vous devez définir la clé default
dans le fichier de configuration config/laravel-spammail-checker.php
sur quickemailverification
:
'default' => 'quickemailverification',
Ou vous pouvez définir la variable d'environnement SPAM_MAIL_CHECKER_DEFAULT_DRIVER
sur quickemailverification
dans votre fichier .env
.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = quickemailverification
Ajoutez votre clé QUICKEMAILVERIFICATION_API_KEY
QuickEmailVerification que vous avez obtenue ici à votre fichier env
.
QUICKEMAILVERIFICATION_API_KEY = quickemailverification_api_key
Vous pouvez configurer le pilote pour accepter les adresses e-mail jetables en définissant accept_disposable
sur true
.
' drivers ' => [
...
' quickemailverification ' => [
...
' accept_disposable ' => true, // When set to true, it will accept disposable email addresses
]
]
Afin d'utiliser verifalia
comme pilote de choix, vous devez définir la clé default
dans le fichier de configuration config/laravel-spammail-checker.php
sur verifalia
:
'default' => 'verifalia',
Ou vous pouvez définir la variable d'environnement SPAM_MAIL_CHECKER_DEFAULT_DRIVER
sur verifalia
dans votre fichier .env
.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = verifalia
Pour utiliser le service Verifalia, vous devez définir les informations de connexion dans votre fichier env
. Vous pouvez obtenir vos informations d'identification après avoir créé un utilisateur ici.
VERIFALIA_USERNAME = verifalia_username
VERIFALIA_PASSWORD = verifalia_password
Vous pouvez configurer le pilote pour accepter les adresses e-mail jetables en définissant accept_disposable
sur true
.
' drivers ' => [
...
' verifalia ' => [
...
' accept_disposable ' => true, // When set to true, it will accept disposable email addresses
]
]
REMARQUE : Un utilisateur sur Verifalia doit avoir l'autorisation d'utiliser l'API. Vous pouvez le faire en allant ici et en cliquant sur l'utilisateur de modification auquel vous souhaitez accorder l'autorisation. Cliquez ensuite sur l'onglet
Permissions
et vérifiez les autorisations appropriées dans la sectionEmail validations
.
Afin d'utiliser sendgrid
comme pilote de choix, vous devez définir la clé default
dans le fichier de configuration config/laravel-spammail-checker.php
sur sendgrid
:
'default' => 'sendgrid',
Ou vous pouvez définir la variable d'environnement SPAM_MAIL_CHECKER_DEFAULT_DRIVER
sur sendgrid
dans votre fichier .env
.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = sendgrid
Ajoutez votre clé Sendgrid SENDGRID_API_KEY
que vous avez obtenue ici à votre fichier env
.
SENDGRID_API_KEY = sendgrid_api_key
Vous pouvez configurer le pilote pour accepter les adresses e-mail jetables en définissant accept_disposable
sur true
. Le score peut également être configuré pour déterminer le seuil d'une adresse e-mail valide. Le score varie de 0 à 1. Plus le score est élevé, plus l’adresse e-mail a de chances d’être valide. La source peut également être configurée pour déterminer la source de l'adresse e-mail. La source peut être signup
ou 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
]
]
Pour utiliser le package, vous devez appeler la règle de validation spammail
dans vos règles de validation. Vous pouvez également modifier le nom de la règle comme vous le souhaitez dans le fichier de configuration config/laravel-spammail-checker.php
sous la clé rule
, de même que le message d'erreur sous la clé 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 ' ,
]);
}
Ou utilisez le spammail
dans votre fichier de requêtes comme ceci :
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules ()
{
return [
' email ' => ' required|spammail|max:255 ' ,
];
}
Un message d'erreur personnalisé peut être ajouté à la règle de validation spammail
.
' email.spammail ' => ' This email address is invalid. ' , // Custom error message
Ou vous pouvez modifier le message d'erreur dans le fichier de configuration config/laravel-spammail-checker.php
sous la clé error_message
.
' error_message ' => ' This email address is invalid. ' , // Custom error message
Vous pouvez également utiliser les classes directement sans utiliser la règle de validation spammail
. Ceci est utile lorsque vous souhaitez utiliser le package dans votre propre règle de validation personnalisée ou votre propre classe personnalisée.
use Martian SpamMailChecker SpamMailChecker ;
public function checkEmail ( $ email )
{
$ spamMailChecker = new SpamMailChecker ();
$ spamMailChecker -> validate ( $ email );
}
Vous pouvez également utiliser la classe SpamMailChecker
directement sans l'instancier.
use Martian SpamMailChecker Facades SpamMailChecker ;
public function checkEmail ( $ email )
{
SpamMailChecker:: validate ( $ email );
}
Vous pouvez également utiliser chaque pilote individuellement sans utiliser la règle de validation spammail
. Ceci est utile lorsqu'un certain pilote est nécessaire dans une situation particulière.
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
Veuillez consulter CHANGELOG pour plus d'informations sur ce qui a changé récemment.
N'hésitez pas à lancer ce projet et à faire une pull request. Pour plus d’informations, consultez CONTRIBUTION pour plus de détails.
Si vous découvrez des problèmes liés à la sécurité, veuillez envoyer un e-mail à [email protected] au lieu d'utiliser le suivi des problèmes.
La licence MIT (MIT). Veuillez consulter le fichier de licence pour plus d'informations.