Buenas hoy les traigo u aporte de como validar cuentas de Email con php y la api de MailboxValidator:
Puede realizar el Registro en la siguiente dirección:
REGISTRARSE (Opción gratuita)
Realizamos la instalación con composer:
composer require mailboxvalidator/mailboxvalidator-php
o de esta manera agregandola al composer.json:
{
"require": {
"mailboxvalidator/mailboxvalidator-php": "^1.0"
}
}
Luego de esto podemos realizar la consulta de la siguiente manera:
Código PHP:
Ver originalinclude 'vendor/autoload.php';
use MailboxValidator\SingleValidation;
$validar = new SingleValidation( 'SU CLAVE DE API );
$resultado = $validar->ValidateEmail( 'ejemplo@ejemplo.com' );
esto retornara un json con la data de la validación del email de esta manera:
Código PHP:
Ver original/*object(stdClass)[2]
public 'domain' => string 'example.com' (length=11)
public 'is_free' => string 'True' (length=4)
public 'is_syntax' => string 'True' (length=4)
public 'is_domain' => string 'False' (length=5)
public 'is_smtp' => string '-' (length=1)
public 'is_verified' => string '-' (length=1)
public 'is_server_down' => string '-' (length=1)
public 'is_greylisted' => string '-' (length=1)
public 'is_disposable' => string 'True' (length=4)
public 'is_suppressed' => string 'True' (length=4)
public 'is_role' => string 'False' (length=5)
public 'is_high_risk' => string 'False' (length=5)
public 'is_catchall' => string 'Unknown' (length=7)
public 'mailboxvalidator_score' => string '0.01' (length=4)
public 'time_taken' => string '0.0428' (length=6)
public 'status' => string 'False' (length=5)
public 'credits_available' => int 279
public 'error_code' => string '' (length=0)
public 'error_message' => string '' (length=0)*/
Para validar si la cuenta de email es válida o no solo basta con hacer lo siquiente:
Código PHP:
Ver originalif($resultado->is_verified == 'True' && $resultado->is_greylisted != 'True')
{
echo 'La cuenta de Email es Válida';
}
else
{
echo 'La Cuenta de Email es Inválida.';
}
El código anterior comprueba si el buzón existe en el servidor y no aparece en la lista gris. Este es un ejemplo de cómo usar validación específica.
Pero si desean usar una validación más general, puede usar el campo `mailboxvalidator_score`.
mailboxvalidator_score: esta es la puntuación de la dirección de correo electrónico proporcionada de 0.0 a 1.0. Si es> 0.7 significa que el correo electrónico es bueno. Si es <0.7 y> 0.4 significa que es bastante aceptable. Pero si es ≤ 0.4 significa que es muy pobre.
Código PHP:
Ver originalif($resultado->mailboxvalidator_score > 0.7)
{
echo 'Este email es excelente';
}
elseif($resultado->mailboxvalidator_score < 0.7 && $resultado->mailboxvalidator_score > 0.4)
{
echo 'Este email es bueno';
}
else
{
echo 'El email es invalido o poco confiable';
}
En caso de que la llamada no funcione correctamente, $resultado será booleano falso o tendrá esta propiedad $resultado->error_code. Con el cual puedes verificar fácilmente con:
Código PHP:
Ver originalif ($resultado === false)
{
echo "Error conectando a la API";
}
elseif(!empty($resultado->error_code) {
echo $resultado->error_message;
}
Ahora la cosa con esta solicitud proporciona la respuesta como stdClass. Pero si en cambio requieren un JSON o XML directo del servidor, puede hacer llamadas directamente al servidor para eso.
Código PHP:
Ver original$parametros['key'] = 'SU CLAVE DE API';
$parametros['format'] = 'json'; // Coloque 'xml' or 'json'
$resultado= file_get_contents( 'https://api.mailboxvalidator.com' . '/v1/validation/single?' . $query); echo $resultado;
El resultado con JSON sería algo así como:
{
email_address: "
[email protected]",
domain: "gmail.com",
is_free: "True",
is_syntax: "True",
is_domain: "True",
is_smtp: "True",
is_verified: "True",
is_server_down: "False",
is_greylisted: "False",
is_disposable: "False",
is_suppressed: "False",
is_role: "False",
is_high_risk: "True",
is_catchall: "False",
mailboxvalidator_score: "0.45",
time_taken: "0.102",
status: "False",
credits_available: 258,
error_code: "",
error_message: ""
}
El resultado con XML sería algo así como:
<?xml version="1.0" encoding="UTF-8"?>
<response>
<email_address>
[email protected]</email_address>
<domain>gmail.com</domain>
<is_free>True</is_free>
<is_syntax>True</is_syntax>
<is_domain>True</is_domain>
<is_smtp>True</is_smtp>
<is_verified>True</is_verified>
<is_server_down>False</is_server_down>
<is_greylisted>False</is_greylisted>
<is_disposable>False</is_disposable>
<is_suppressed>False</is_suppressed>
<is_role>False</is_role>
<is_high_risk>True</is_high_risk>
<is_catchall>False</is_catchall>
<mailboxvalidator_score>0.45</mailboxvalidator_score>
<time_taken>0.0555</time_taken>
<status>False</status>
<credits_available>256</credits_available>
<error_code></error_code>
<error_message></error_message>
</response>
Nota: para la solicitud https, asegúrese de haber habilitado la extensión php_openssl.dll en su php.ini. En caso de que tenga dificultades para modificar php.ini, siempre puede realizar la solicitud http en lugar de https.
espero les sirva. Saludos