Un potente paquete de Laravel diseñado para validar sin esfuerzo direcciones de correo electrónico contra varios proveedores de correo no deseado utilizando una amplia gama de controladores. Perfectamente integrado con el sistema de validación de Laravel, este paquete ofrece soporte integral para validar entradas de correo electrónico en formularios y API RESTful.
Servicio | Descripciones | Conductor | Documentación | Apoyado |
---|---|---|---|---|
Local | Una lista de texto local de dominios de correo electrónico no deseado. | local | Leer más | ✅ Sí |
Remoto | Uso de funciones integradas de PHP getmxrr() , checkdnsrr() . fsockopen() para validar el dominio de correo electrónico | remoto | Leer más | ✅ Sí |
ResumenApi | Uso del conjunto de API de Abstract para validar dominios de correo electrónico | abstractopi | Leer más | ✅ Sí |
Verificación rápida por correo electrónico | Un servicio de verificación de correo electrónico confiable, preciso, asequible y avanzado | verificación rápida por correo electrónico | Leer más | ✅ Sí |
verifalia | Un servicio de validación de correo electrónico basado en web que permite cargar y validar listas de direcciones de correo electrónico con facilidad. | verifalia | Leer más | ✅ Sí |
EnviarGrid | Un proveedor SMTP basado en la nube que le permite validar direcciones de correo electrónico antes de enviarlas. | enviargrid | Leer más | ✅ Sí |
NOTA: Pronto se agregarán más servicios. (También puede contribuir a este proyecto agregando más servicios: ZeroBounce, Mailboxlayer, EmailListVerify, Emailable, etc.)
Puede instalar el paquete a través del compositor:
composer require martian/spammailchecker
Martian SpamMailChecker SpamMailCheckerServiceProvider::class,
config/app.php
y agregue la siguiente línea a la matriz aliases
: ' SpamMailChecker ' => Martian SpamMailChecker Facades SpamMailChecker::class,
Publique el archivo de configuración usando el siguiente comando:
php artisan vendor:publish --provider= " MartianSpamMailCheckerProvidersSpamMailCheckerServiceProvider "
El archivo de configuración se encuentra en config/laravel-spammail-checker.php
. Puede configurar el paquete para utilizar cualquiera de los controladores compatibles. El controlador predeterminado es local
y utiliza una lista de texto local de dominios de correo electrónico no deseado.
Para utilizar local
como su controlador preferido, debe configurar la clave default
en el archivo de configuración config/laravel-spammail-checker.php
en local
:
' default ' => ' local ' ,
O puede configurar la variable de entorno SPAM_MAIL_CHECKER_DEFAULT_DRIVER
como local
en su archivo .env
.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = local
El controlador local utiliza una lista de texto local de dominios de correo electrónico no deseado. El archivo se encuentra en resources/config/emails.txt
. Puede incluir más dominios agregándolos a la lista blacklist
o excluir dominios agregándolos a la lista 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 ' ,
],
]
]
Borre la configuración y el caché usando los siguientes comandos después de realizar cambios en el archivo de configuración:
php artisan optimize:clear
NOTA: El controlador local no distingue entre mayúsculas y minúsculas. Por lo tanto, no necesita preocuparse por el caso del dominio de correo electrónico.
Para utilizar remote
como su controlador preferido, debe configurar la clave default
en el archivo de configuración config/laravel-spammail-checker.php
en remote
:
' driver ' => ' remote ' ,
O puede configurar la variable de entorno SPAM_MAIL_CHECKER_DEFAULT_DRIVER
en remote
en su archivo .env
.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = remote
El controlador remoto utiliza funciones integradas de PHP getmxrr()
, checkdnsrr()
. fsockopen()
para validar el dominio de correo electrónico. Puede configurar el controlador remoto para verificar MX - getmxrr()
, DNS - checkdnsrr()
y SMTP - fsockopen
o validar el dominio de correo electrónico. También puede configurar el valor del tiempo de espera en 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 utilizar abstractapi
como su controlador preferido, debe configurar la clave default
en el archivo de configuración config/laravel-spammail-checker.php
en abstractapi
:
'default' => 'abstractapi',
O puede configurar la variable de entorno SPAM_MAIL_CHECKER_DEFAULT_DRIVER
en abstractapi
en su archivo .env
.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = abstractapi
Agregue su clave ABSTRACTAPI_API_KEY
AbstractAPI que obtuvo de aquí a su archivo env
.
ABSTRACTAPI_API_KEY=abstractapi_api_key
Puede configurar la score
para determinar el umbral para una dirección de correo electrónico válida. La puntuación varía de 0 a 1. Cuanto mayor sea la puntuación, más probabilidades hay de que la dirección de correo electrónico sea válida. También puede aceptar direcciones de correo electrónico desechables configurando accept_disposable
en 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 utilizar quickemailverification
como su controlador preferido, debe configurar la clave default
en el archivo de configuración config/laravel-spammail-checker.php
en quickemailverification
:
'default' => 'quickemailverification',
O puede configurar la variable de entorno SPAM_MAIL_CHECKER_DEFAULT_DRIVER
en quickemailverification
en su archivo .env
.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = quickemailverification
Agregue su clave QUICKEMAILVERIFICATION_API_KEY
QuickEmailVerification que obtuvo aquí a su archivo env
.
QUICKEMAILVERIFICATION_API_KEY = quickemailverification_api_key
Puede configurar el controlador para que acepte direcciones de correo electrónico desechables configurando accept_disposable
en true
.
' drivers ' => [
...
' quickemailverification ' => [
...
' accept_disposable ' => true, // When set to true, it will accept disposable email addresses
]
]
Para utilizar verifalia
como su controlador preferido, debe configurar la clave default
en el archivo de configuración config/laravel-spammail-checker.php
en verifalia
:
'default' => 'verifalia',
O puede configurar la variable de entorno SPAM_MAIL_CHECKER_DEFAULT_DRIVER
en verifalia
en su archivo .env
.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = verifalia
Para utilizar el servicio verifalia, debe configurar las credenciales de inicio de sesión en su archivo env
. Puede obtener sus credenciales después de crear un usuario aquí.
VERIFALIA_USERNAME = verifalia_username
VERIFALIA_PASSWORD = verifalia_password
Puede configurar el controlador para que acepte direcciones de correo electrónico desechables configurando accept_disposable
en true
.
' drivers ' => [
...
' verifalia ' => [
...
' accept_disposable ' => true, // When set to true, it will accept disposable email addresses
]
]
NOTA: A un usuario de verifalia se le debe otorgar permiso para usar la API. Puede hacer esto yendo aquí y haciendo clic en el usuario de edición al que desea otorgarle permiso. Luego haga clic en la pestaña
Permissions
y verifique los permisos apropiados en la secciónEmail validations
.
Para utilizar sendgrid
como su controlador preferido, debe configurar la clave default
en el archivo de configuración config/laravel-spammail-checker.php
en sendgrid
:
'default' => 'sendgrid',
O puede configurar la variable de entorno SPAM_MAIL_CHECKER_DEFAULT_DRIVER
en sendgrid
en su archivo .env
.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = sendgrid
Agregue su clave SENDGRID_API_KEY
Sendgrid que obtuvo aquí a su archivo env
.
SENDGRID_API_KEY = sendgrid_api_key
Puede configurar el controlador para que acepte direcciones de correo electrónico desechables configurando accept_disposable
en true
. La puntuación también se puede configurar para determinar el umbral para una dirección de correo electrónico válida. La puntuación varía de 0 a 1. Cuanto mayor sea la puntuación, más probabilidades hay de que la dirección de correo electrónico sea válida. La fuente también se puede configurar para determinar la fuente de la dirección de correo electrónico. La fuente puede ser signup
o 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 utilizar el paquete, debe llamar a la regla de validación spammail
en sus reglas de validación. También puede cambiar el nombre de la regla al que desee en el archivo de configuración config/laravel-spammail-checker.php
debajo de la clave rule
, al igual que el mensaje de error debajo de la clave 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 ' ,
]);
}
O utilice spammail
en su archivo de Solicitudes de esta manera:
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules ()
{
return [
' email ' => ' required|spammail|max:255 ' ,
];
}
Se puede agregar un mensaje de error personalizado a la regla de validación spammail
.
' email.spammail ' => ' This email address is invalid. ' , // Custom error message
O puede cambiar el mensaje de error en el archivo de configuración config/laravel-spammail-checker.php
bajo la clave error_message
.
' error_message ' => ' This email address is invalid. ' , // Custom error message
También puedes usar las clases directamente sin usar la regla de validación spammail
. Esto es útil cuando desea utilizar el paquete en su propia regla de validación personalizada o en su propia clase personalizada.
use Martian SpamMailChecker SpamMailChecker ;
public function checkEmail ( $ email )
{
$ spamMailChecker = new SpamMailChecker ();
$ spamMailChecker -> validate ( $ email );
}
También puedes usar la clase SpamMailChecker
directamente sin crear una instancia.
use Martian SpamMailChecker Facades SpamMailChecker ;
public function checkEmail ( $ email )
{
SpamMailChecker:: validate ( $ email );
}
También puede utilizar cada controlador individualmente sin utilizar la regla de validación spammail
. Esto es útil cuando se necesita un determinado controlador en una situación particular.
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 obtener más información sobre los cambios recientes.
No dude en bifurcar este proyecto y realizar una solicitud de extracción. Para obtener más información, consulte CONTRIBUCIÓN para obtener más detalles.
Si descubre algún problema relacionado con la seguridad, envíe un correo electrónico a [email protected] en lugar de utilizar el rastreador de problemas.
La Licencia MIT (MIT). Consulte el archivo de licencia para obtener más información.