Um poderoso pacote Laravel projetado para validar facilmente endereços de e-mail contra vários provedores de e-mail de spam usando uma ampla gama de drivers. Perfeitamente integrado ao sistema de validação do Laravel, este pacote oferece suporte abrangente para validação de entradas de email em formulários e APIs RESTful
Serviço | Descrições | Motorista | Documentação | Suportado |
---|---|---|---|---|
Local | Uma lista de texto local de domínios de email de spam. | local | Leia mais | ✅ Sim |
Remoto | Usando funções integradas do PHP getmxrr() , checkdnsrr() . fsockopen() para validar o domínio de email | remoto | Leia mais | ✅ Sim |
API abstrata | Usando o conjunto de API do Abstract para validar domínios de e-mail | API abstrata | Leia mais | ✅ Sim |
Verificação rápida de e-mail | Um serviço de verificação de e-mail confiável, preciso, acessível e avançado | verificação rápida de e-mail | Leia mais | ✅ Sim |
Verifália | Um serviço de validação de e-mail baseado na web que permite carregar e validar listas de endereços de e-mail com facilidade | verifália | Leia mais | ✅ Sim |
SendGrid | Um provedor SMTP baseado em nuvem que permite validar endereços de e-mail antes de enviar. | enviar grade | Leia mais | ✅ Sim |
NOTA: Mais serviços serão adicionados em breve. (Você também pode contribuir para este projeto adicionando mais serviços - ZeroBounce, Mailboxlayer, EmailListVerify, Emailable, etc)
Você pode instalar o pacote via compositor:
composer require martian/spammailchecker
Martian SpamMailChecker SpamMailCheckerServiceProvider::class,
config/app.php
e adicione a seguinte linha ao array aliases
: ' SpamMailChecker ' => Martian SpamMailChecker Facades SpamMailChecker::class,
Publique o arquivo de configuração usando o seguinte comando:
php artisan vendor:publish --provider= " MartianSpamMailCheckerProvidersSpamMailCheckerServiceProvider "
O arquivo de configuração está localizado em config/laravel-spammail-checker.php
. Você pode configurar o pacote para usar qualquer um dos drivers suportados. O driver padrão é local
, que usa uma lista de texto local de domínios de email de spam.
Para usar local
como seu driver preferido, você precisa definir a chave default
no arquivo de configuração config/laravel-spammail-checker.php
para local
:
' default ' => ' local ' ,
Ou você pode definir a variável de ambiente SPAM_MAIL_CHECKER_DEFAULT_DRIVER
como local
em seu arquivo .env
.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = local
O driver local usa uma lista de texto local de domínios de email de spam. O arquivo está localizado em resources/config/emails.txt
. Você pode incluir mais domínios adicionando-os à matriz blacklist
ou excluir domínios adicionando-os à matriz 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 ' ,
],
]
]
Limpe a configuração e o cache usando os seguintes comandos após fazer alterações no arquivo de configuração:
php artisan optimize:clear
NOTA: O driver local não diferencia maiúsculas de minúsculas. Assim, você não precisa se preocupar com o caso do domínio de email.
Para usar remote
como seu driver preferido, você precisa definir a chave default
no arquivo de configuração config/laravel-spammail-checker.php
como remote
:
' driver ' => ' remote ' ,
Ou você pode definir a variável de ambiente SPAM_MAIL_CHECKER_DEFAULT_DRIVER
como remote
em seu arquivo .env
.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = remote
O driver remoto usa funções integradas do PHP getmxrr()
, checkdnsrr()
. fsockopen()
para validar o domínio de email. Você pode configurar o driver remoto para verificar MX - getmxrr()
, DNS - checkdnsrr()
e SMTP - fsockopen
ou validar o domínio de email. Você também pode configurar o valor do tempo limite em segundos.
' 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
]
]
Para usar abstractapi
como seu driver preferido, você precisa definir a chave default
no arquivo de configuração config/laravel-spammail-checker.php
para abstractapi
:
'default' => 'abstractapi',
Ou você pode definir a variável de ambiente SPAM_MAIL_CHECKER_DEFAULT_DRIVER
como abstractapi
em seu arquivo .env
.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = abstractapi
Adicione sua chave ABSTRACTAPI_API_KEY
AbstractAPI que você obteve daqui ao seu arquivo env
.
ABSTRACTAPI_API_KEY=abstractapi_api_key
Você pode configurar a score
para determinar o limite de um endereço de e-mail válido. A pontuação varia de 0 a 1. Quanto maior a pontuação, maior a probabilidade de o endereço de e-mail ser válido. Você também pode aceitar endereços de e-mail descartáveis definindo accept_disposable
como 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
]
]
Para usar quickemailverification
como seu driver preferido, você precisa definir a chave default
no arquivo de configuração config/laravel-spammail-checker.php
para quickemailverification
:
'default' => 'quickemailverification',
Ou você pode definir a variável de ambiente SPAM_MAIL_CHECKER_DEFAULT_DRIVER
para quickemailverification
em seu arquivo .env
.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = quickemailverification
Adicione sua chave QUICKEMAILVERIFICATION_API_KEY
QuickEmailVerification que você obteve aqui ao seu arquivo env
.
QUICKEMAILVERIFICATION_API_KEY = quickemailverification_api_key
Você pode configurar o driver para aceitar endereços de e-mail descartáveis definindo accept_disposable
como true
.
' drivers ' => [
...
' quickemailverification ' => [
...
' accept_disposable ' => true, // When set to true, it will accept disposable email addresses
]
]
Para usar verifalia
como seu driver preferido, você precisa definir a chave default
no arquivo de configuração config/laravel-spammail-checker.php
para verifalia
:
'default' => 'verifalia',
Ou você pode definir a variável de ambiente SPAM_MAIL_CHECKER_DEFAULT_DRIVER
como verifalia
em seu arquivo .env
.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = verifalia
Para usar o serviço verifalia, você precisa definir credenciais de login em seu arquivo env
. Você pode obter suas credenciais depois de criar um usuário aqui.
VERIFALIA_USERNAME = verifalia_username
VERIFALIA_PASSWORD = verifalia_password
Você pode configurar o driver para aceitar endereços de e-mail descartáveis definindo accept_disposable
como true
.
' drivers ' => [
...
' verifalia ' => [
...
' accept_disposable ' => true, // When set to true, it will accept disposable email addresses
]
]
NOTA: Um usuário na verifalia precisa ter permissão para usar a API. Você pode fazer isso acessando aqui e clicando no usuário de edição ao qual deseja conceder permissão. Em seguida, clique na guia
Permissions
e verifique as permissões apropriadas na seçãoEmail validations
.
Para usar sendgrid
como seu driver preferido, você precisa definir a chave default
no arquivo de configuração config/laravel-spammail-checker.php
para sendgrid
:
'default' => 'sendgrid',
Ou você pode definir a variável de ambiente SPAM_MAIL_CHECKER_DEFAULT_DRIVER
como sendgrid
em seu arquivo .env
.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = sendgrid
Adicione sua chave Sendgrid SENDGRID_API_KEY
que você obteve daqui ao seu arquivo env
.
SENDGRID_API_KEY = sendgrid_api_key
Você pode configurar o driver para aceitar endereços de e-mail descartáveis definindo accept_disposable
como true
. A pontuação também pode ser configurada para determinar o limite de um endereço de e-mail válido. A pontuação varia de 0 a 1. Quanto maior a pontuação, maior a probabilidade de o endereço de e-mail ser válido. A origem também pode ser configurada para determinar a origem do endereço de e-mail. A fonte pode ser 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
]
]
Para usar o pacote, você precisa chamar a regra de validação spammail
em suas regras de validação. Você também pode alterar o nome da regra para o que quiser no arquivo de configuração config/laravel-spammail-checker.php
na chave rule
, da mesma forma que a mensagem de erro na chave 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 use spammail
em seu arquivo de solicitações assim:
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules ()
{
return [
' email ' => ' required|spammail|max:255 ' ,
];
}
Uma mensagem de erro personalizada pode ser adicionada à regra de validação spammail
.
' email.spammail ' => ' This email address is invalid. ' , // Custom error message
Ou você pode alterar a mensagem de erro no arquivo de configuração config/laravel-spammail-checker.php
na chave error_message
.
' error_message ' => ' This email address is invalid. ' , // Custom error message
Você também pode usar as classes diretamente sem usar a regra de validação spammail
. Isso é útil quando você deseja usar o pacote em sua própria regra de validação customizada ou em sua própria classe customizada.
use Martian SpamMailChecker SpamMailChecker ;
public function checkEmail ( $ email )
{
$ spamMailChecker = new SpamMailChecker ();
$ spamMailChecker -> validate ( $ email );
}
Você também pode usar a classe SpamMailChecker
diretamente, sem instanciá-la.
use Martian SpamMailChecker Facades SpamMailChecker ;
public function checkEmail ( $ email )
{
SpamMailChecker:: validate ( $ email );
}
Você também pode usar cada driver individualmente sem usar a regra de validação spammail
. Isto é útil quando um determinado driver é necessário em uma situação específica.
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
Consulte CHANGELOG para obter mais informações sobre o que mudou recentemente.
Sinta-se à vontade para fazer um fork deste projeto e fazer uma solicitação pull. Para obter mais informações, verifique CONTRIBUINDO para obter detalhes.
Se você descobrir algum problema relacionado à segurança, envie um e-mail para [email protected] em vez de usar o rastreador de problemas.
A licença MIT (MIT). Consulte Arquivo de licença para obter mais informações.