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:clearREMARQUE : 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
Permissionset 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 testVeuillez 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.