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:clearNOTA: 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
Permissionse 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 testConsulte 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.