Package PHP qui détecte les adresses e-mail jetables (temporaire / jetable / fausse). Il est agnostique du cadre et n'a pas de dépendances, mais comprend le support pour Laravel. Il valide les adresses e-mail pour s'assurer qu'elles sont authentiques, ce qui est utile pour gérer les inscriptions du compte et évaluer le nombre d'adresses e-mail légitimes dans votre système.
Cet outil aide également à éviter les erreurs de communication et bloque les adresses de spam.
La recherche est super rapide O(1) car les domaines de messagerie jetable sont stockés localement à l'aide d'un ensemble de hachage PHP natif.
? La liste des domaines de messagerie jetable est régulièrement mise à jour automatiquement à partir de sources externes de confiance.
Note
Lisez ci-dessous pour les instructions spécifiques de Laravel.
Exiger ce package avec Composer en utilisant la commande suivante:
composer require beeyev/disposable-email-filter-phpVérifiez simple si l'adresse e-mail est jetable:
<?php
require __DIR__ . ' /vendor/autoload.php ' ;
use Beeyev DisposableEmailFilter DisposableEmailFilter ;
$ disposableEmailFilter = new DisposableEmailFilter ();
// Check if email address is disposable
$ disposableEmailFilter -> isDisposableEmailAddress ( ' [email protected] ' ); // false
$ disposableEmailFilter -> isDisposableEmailAddress ( ' [email protected] ' ); // trueRemarque: Les domaines de liste blanche ont une priorité plus élevée que les domaines sur liste noire.
<?php
require __DIR__ . ' /vendor/autoload.php ' ;
use Beeyev DisposableEmailFilter DisposableEmailFilter ;
$ disposableEmailFilter = new DisposableEmailFilter ();
// Add multiple custom domains to blacklist
$ disposableEmailFilter -> blacklistedDomains ()-> addMultiple ([ ' mailinator.com ' , ' 10minute-mail.org ' ]);
// Add one domain to whitelist
$ disposableEmailFilter -> whitelistedDomains ()-> add ( ' tempmailer.com ' );
$ disposableEmailFilter -> isDisposableEmailAddress ( ' [email protected] ' ); // false (because it's whitelisted now)
$ disposableEmailFilter -> isDisposableEmailAddress ( ' [email protected] ' ); // true
$ disposableEmailFilter -> isDisposableEmailAddress ( ' [email protected] ' ); // true
$ disposableEmailFilter -> isDisposableEmailAddress ( ' [email protected] ' ); // falseIl est également possible d'ajouter des domaines noirs et listés à la liste blanche en utilisant la dépendance du constructeur:
use Beeyev DisposableEmailFilter CustomEmailDomainFilter CustomEmailDomainFilter ;
use Beeyev DisposableEmailFilter DisposableEmailFilter ;
$ blacklistedDomains = new CustomEmailDomainFilter ([ ' blacklisted1.com ' , ' blacklisted2.com ' , ' blacklisted3.com ' ]);
$ whitelistedDomains = new CustomEmailDomainFilter ([ ' abc2.com ' , ' whitelisted1.com ' ]);
$ disposableEmailFilter = new DisposableEmailFilter ( $ blacklistedDomains , $ whitelistedDomains );
$ disposableEmailFilter -> isDisposableEmailAddress ( ' [email protected] ' ); // false - whitelistedRemarque: Vous pouvez développer votre propre logique de filtration en créant une classe personnalisée qui implémente le
CustomEmailDomainFilterInterface
Si vous essayez de passer une chaîne vide ou une chaîne avec un format de messagerie non valide, une exception sera lancée.
use Beeyev DisposableEmailFilter DisposableEmailFilter ;
use Beeyev DisposableEmailFilter Exceptions InvalidEmailAddressException ;
$ disposableEmailFilter = new DisposableEmailFilter ();
try {
$ disposableEmailFilter -> isDisposableEmailAddress ( ' john:gmail.com ' ); // Exception will be thrown because of invalid email format
} catch ( InvalidEmailAddressException $ e ) {
echo $ e -> getMessage ();
} Si vous vous attendez à ce que l'adresse e-mail puisse être invalide et que vous ne souhaitez pas envelopper le code dans Try / Catch,
Vous pouvez utiliser la méthode isDisposableEmailAddressSafe pour vérifier si l'adresse e-mail est correctement formatée avant de vérifier si elle est disponible:
$ disposableEmailFilter = new DisposableEmailFilter ();
$ emailAddress = ' john:gmail.com ' ;
if ( $ disposableEmailFilter -> isEmailAddressValid ( $ emailAddress )) {
$ disposableEmailFilter -> isDisposableEmailAddress ( $ emailAddress );
}Ce package comprend un fournisseur de services et une règle de validation de formulaire pour Laravel.
composer require beeyev/disposable-email-filter-php Le package sera automatiquement enregistré à l'aide du mécanisme de découverte automatique Laravel.
Mais si vous devez le faire manuellement, vous pouvez ajouter la ligne suivante au tableau providers dans le fichier config/app.php :
Beeyev DisposableEmailFilter Adapters Laravel DisposableEmailFilterServiceProvider::class, Utilisez la règle de validation not_disposable_email ou objet new NotDisposableEmail() , pour vérifier que le champ spécifique ne contient pas d'adresse e-mail jetable.
Note
❗ Placez-le après le validateur des e-mails pour s'assurer que seuls les e-mails valides sont traités.
Exemple:
// Using validation rule name:
' email_field ' => ' required|email|not_disposable_email ' ,
// Or using a validation rule object:
' email_field ' => [ ' email ' , new NotDisposableEmail ()], Vous pouvez utiliser la façade DisposableEmail pour accéder à l'instance DisposableEmailFilter :
use Beeyev DisposableEmailFilter Adapters Laravel Facades DisposableEmail ;
DisposableEmail:: isEmailAddressValid ( ' [email protected] ' );Facultativement, vous pouvez publier le fichier de configuration et les traductions pour personnaliser le comportement du package:
php artisan vendor:publish --tag=disposable-email-filter Cette commande créera un fichier de configuration disposable-email-filter.php dans le répertoire config et les fichiers de traduction dans le répertoire lang/vendor/disposable-email-filter .
Étant donné que la liste des domaines de messagerie jetable est régulièrement mise à jour, il est important de maintenir le package à jour.
Une nouvelle version de PATCH du package est publiée chaque fois que la liste est mise à jour.
Ces mises à jour sont sûres et non révolutionnaires, vous permettant de mettre à jour le package via cette commande de compositeur:
composer update beeyev/disposable-email-filter-phpVous pouvez exécuter cette commande à chaque fois dans les pipelines CI / CD avant le déploiement du projet.
N'hésitez pas à contribuer à ce projet si vous souhaitez ajouter de nouvelles fonctionnalités, améliorer celles existantes ou corriger les bogues.
Pour ajouter de nouveaux domaines jetables, vous pouvez mettre à jour le fichier blacklist.txt et créer une demande de traction.
Alternativement, vous pouvez ouvrir un problème avec les domaines que vous souhaitez ajouter à la liste noire ou à la liste blanche.
7c/fakefilterFGRibreau/mailcheckerdisposable-email-domainsLa liste noire locale et la liste blanche sont stockées dans les fichiers noireList.txt et WhiteList.txt.
Les rapports de bogues et les demandes de fonctionnalités peuvent être soumis sur le suivi du problème GitHub.
La licence MIT (MIT). Veuillez consulter le fichier de licence pour plus d'informations.
Si vous aimez ce projet, envisagez de me donner un