Pacote PHP que detecta endereços de email descartáveis (temporários/descartáveis/falsos). É estrutura-estrutura e não possui dependências, mas inclui suporte para Laravel. Ele valida endereços de email para garantir que eles sejam genuínos, o que é útil para gerenciar inscrições de conta e avaliar o número de endereços de email legítimos em seu sistema.
Essa ferramenta também ajuda a evitar erros de comunicação e bloqueia endereços de spam.
A pesquisa é super rápida O(1) porque os domínios de email descartáveis são armazenados localmente usando um conjunto de hash php nativo ..
? A lista de domínios de email descartáveis é atualizada regularmente automaticamente de fontes externas confiáveis.
Observação
Leia abaixo para instruções específicas do Laravel.
Requer este pacote com o compositor usando o seguinte comando:
composer require beeyev/disposable-email-filter-phpVerifique simples se o endereço de e -mail é descartável:
<?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] ' ); // trueNOTA: Os domínios da lista de permissões têm maior prioridade do que os domínios na lista negra.
<?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] ' ); // falseTambém é possível adicionar domínios na lista negra e na lista de permissões usando a dependência do construtor:
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 - whitelistedNOTA: Você pode desenvolver sua própria lógica de filtragem criando uma classe personalizada que implementa o
CustomEmailDomainFilterInterface
Se você tentar passar string ou string vazio com formato de email inválido, uma exceção será lançada.
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 ();
} Se você espera que esse endereço de e -mail possa ser inválido e não quiser envolver o código para tentar/capturar,
Você pode usar o método isDisposableEmailAddressSafe para verificar se o endereço de email é formatado corretamente antes de verificar se for descartável:
$ disposableEmailFilter = new DisposableEmailFilter ();
$ emailAddress = ' john:gmail.com ' ;
if ( $ disposableEmailFilter -> isEmailAddressValid ( $ emailAddress )) {
$ disposableEmailFilter -> isDisposableEmailAddress ( $ emailAddress );
}Este pacote inclui um provedor de serviços e uma regra de validação de formulário para Laravel.
composer require beeyev/disposable-email-filter-php O pacote será registrado automaticamente usando o mecanismo de descoberta automática do Laravel.
Mas se você precisar fazer isso manualmente, poderá adicionar a seguinte linha à matriz providers no arquivo config/app.php :
Beeyev DisposableEmailFilter Adapters Laravel DisposableEmailFilterServiceProvider::class, Use a regra de validação not_disposable_email ou objeto new NotDisposableEmail() , para verificar se o campo específico não contém um endereço de email descartável.
Observação
❗ Coloque -o após o validador de email para garantir que apenas emails válidos sejam processados.
Exemplo:
// Using validation rule name:
' email_field ' => ' required|email|not_disposable_email ' ,
// Or using a validation rule object:
' email_field ' => [ ' email ' , new NotDisposableEmail ()], Você pode usar a fachada DisposableEmail para acessar a instância DisposableEmailFilter :
use Beeyev DisposableEmailFilter Adapters Laravel Facades DisposableEmail ;
DisposableEmail:: isEmailAddressValid ( ' [email protected] ' );Opcionalmente, você pode publicar o arquivo de configuração e as traduções para personalizar o comportamento do pacote:
php artisan vendor:publish --tag=disposable-email-filter Este comando criará um arquivo de configuração disposable-email-filter.php no diretório config e arquivos de tradução no diretório lang/vendor/disposable-email-filter .
Como a lista de domínios de email descartáveis é atualizada regularmente, é importante manter o pacote atualizado.
Uma nova versão de PATCH do pacote é lançada sempre que a lista é atualizada.
Essas atualizações são seguras e sem quebra, permitindo que você atualize o pacote por meio deste comando compositor:
composer update beeyev/disposable-email-filter-phpVocê pode executar esse comando sempre em pipelines CI/CD antes que o projeto seja implantado.
Sinta -se à vontade para contribuir com este projeto, se desejar adicionar novos recursos, melhorar os existentes ou corrigir bugs.
Para adicionar novos domínios descartáveis, você pode atualizar o arquivo blacklist.txt e criar uma solicitação de tração.
Como alternativa, você pode abrir um problema com os domínios que deseja ser adicionado à lista negra ou à lista de permissões.
7c/fakefilterFGRibreau/mailcheckerdisposable-email-domainsLista negra local e Whitelist são armazenadas nos arquivos Blacklist.txt e Whitelist.txt.
Relatórios de bugs e solicitações de recursos podem ser enviados no rastreador de problemas do GitHub.
A licença do MIT (MIT). Consulte o arquivo de licença para obter mais informações.
Se você ama este projeto, considere me dar um