Foros del Web » Programando para Internet » PHP »

APORTE: Validacion de Email con MailboxValidator

Estas en el tema de APORTE: Validacion de Email con MailboxValidator en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 20/12/2017, 06:47
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 4 meses
Puntos: 263
Información APORTE: Validacion de Email con MailboxValidator

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 original
  1. include 'vendor/autoload.php';
  2.  
  3. use MailboxValidator\SingleValidation;
  4.  
  5. $validar = new SingleValidation( 'SU CLAVE DE API );
  6. $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
  1. var_dump($resultado);
  2. /*object(stdClass)[2]
  3.   public 'email_address' => string '[email protected]' (length=19)
  4.   public 'domain' => string 'example.com' (length=11)
  5.   public 'is_free' => string 'True' (length=4)
  6.   public 'is_syntax' => string 'True' (length=4)
  7.   public 'is_domain' => string 'False' (length=5)
  8.   public 'is_smtp' => string '-' (length=1)
  9.   public 'is_verified' => string '-' (length=1)
  10.   public 'is_server_down' => string '-' (length=1)
  11.   public 'is_greylisted' => string '-' (length=1)
  12.   public 'is_disposable' => string 'True' (length=4)
  13.   public 'is_suppressed' => string 'True' (length=4)
  14.   public 'is_role' => string 'False' (length=5)
  15.   public 'is_high_risk' => string 'False' (length=5)
  16.   public 'is_catchall' => string 'Unknown' (length=7)
  17.   public 'mailboxvalidator_score' => string '0.01' (length=4)
  18.   public 'time_taken' => string '0.0428' (length=6)
  19.   public 'status' => string 'False' (length=5)
  20.   public 'credits_available' => int 279
  21.   public 'error_code' => string '' (length=0)
  22.   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 original
  1. if($resultado->is_verified == 'True' && $resultado->is_greylisted != 'True')
  2. {
  3.     echo 'La cuenta de Email es Válida';
  4. }
  5. else
  6. {
  7.     echo 'La Cuenta de Email es Inválida.';
  8. }

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 original
  1. if($resultado->mailboxvalidator_score > 0.7)
  2. {
  3.     echo 'Este email es excelente';
  4. }
  5. elseif($resultado->mailboxvalidator_score < 0.7 && $resultado->mailboxvalidator_score > 0.4)
  6. {
  7.     echo 'Este email es bueno';
  8. }
  9. else
  10. {
  11.     echo 'El email es invalido o poco confiable';
  12. }


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 original
  1. if ($resultado === false)
  2. {
  3.     echo "Error conectando a la API";
  4. }
  5. elseif(!empty($resultado->error_code)
  6. {
  7.     echo $resultado->error_message;
  8. }

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
  1. $parametros['key'] = 'SU CLAVE DE API';
  2. $parametros['format'] = 'json'; // Coloque 'xml' or 'json'
  3. $parametros['email'] = '[email protected]';
  4. $query = http_build_query($parametros);
  5. $resultado= file_get_contents( 'https://api.mailboxvalidator.com' . '/v1/validation/single?' . $query);
  6. 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
__________________
[email protected]
HITCEL

Última edición por Triby; 22/12/2017 a las 21:09 Razón: Cambiar enlace de afiliado por opción gratuita

Etiquetas: email, validacion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:31.