Pitón | Bibliotecas para desarrolladores | Email Verification API | WhoisXML API

Biblioteca cliente paara Email Verification API en lenguaje Python Biblioteca cliente Email Verification en lenguaje Python

Cómo verificar una dirección de correo electrónico en Python

En este artículo, voy a guiarle en la forma más sencilla posible de verificar las direcciones de correo electrónico y mejorar el procedimiento de registro de usuarios para su aplicación Python.

Verificar correos electrónicos es increíblemente importante. Asegurarse de que los usuarios que se registran en su sitio web tienen una dirección de correo electrónico válida es esencial por varias razones:

  • Puede detectar errores tipográficos cuando los usuarios ingresan su dirección de correo electrónico antes de permitirles registrarse.
  • Le permite estar en contacto con sus usuarios: puede enviarles un correo electrónico cuando caduque su tarjeta de crédito, al enviarles facturas o cuando haya nuevas funciones disponibles, por nombrar simplemente algunas razones.
  • Garantiza que sus usuarios puedan restablecer su contraseña de forma segura si alguna vez la olvidan: sin una dirección de correo electrónico no hay forma de validar la identidad de alguien aparte de la verificación manual y humana.
  • Evita que los usuarios se registren en su sitio web con direcciones de correo electrónico desechables, como las de Mailinator. Los usuarios que se registran en estos servicios generalmente intentan evitar darle su correo electrónico real por razones específicas, como querer abusar de sus funciones freemium, etc. Al permitir usuarios con direcciones de correo electrónico personales o comerciales reales, reduce el riesgo de abusos en su sitio web.

Sin embargo, donde la verificación de correo electrónico se vuelve compleja es cuando se decide cómo verificar las direcciones de correo electrónico para SU sitio web. Cada sitio web tiene diferentes requisitos y, dependiendo de lo que haga el suyo, es posible que solo desee verificar la dirección de correo electrónico de un usuario de una o dos maneras específicas.

Para ayudar a resolver este problema, recientemente hemos lanzado el paquete email-verifier en el repositorio de paquetes PyPi.

Esta biblioteca Python le permite verificar fácilmente las direcciones de correo electrónico de varias maneras diferentes y proporciona una verificación flexible (como verá enseguida).

Así que, sin más preámbulos, ¡echemos un vistazo a cómo funciona!

Cree una cuenta Email Verification

Lo primero que debe hacer para verificar las direcciones de correo electrónico utilizando la biblioteca email-verifier es crea una cuenta gratuita para el servicio Email Verification API. Puede hacerlo aquí: https://emailverification.whoisxmlapi.com/signup

Una vez que haya creado su cuenta gratuita, podrá utilizar el servicio API para verificar 1.000 direcciones de correo electrónico de forma gratuita. Si quiere verificar más, siempre puede pagar una pequeña cantidad.

Instale el paquete

Ahora que su cuenta está configurada, lo siguiente que debe hacer es instalar el paquete de Python. Desde la línea de comandos, ejecute el siguiente comando:

            
$ pip install email-verifier
            
            

Esto descargará e instalará la última versión del paquete email-verifier de PyPi.

Verifique una dirección de correo electrónico

Una vez creada la cuenta e instalado el paquete, echemos un vistazo a algunos códigos que puede ejecutar para verificar una dirección de correo electrónico de inmediato.

Aquí hay una pequeña cadena de caracteres, 'verify.py', que verificará una dirección de correo electrónico utilizando todos los métodos de verificación posibles:

            
from emailverifier import Cliente
from emailverifier import excepciones

cliente = Client('Tu-api-clave')

probar:
  datos = cliente.get("[email protected]")

# Si llega aquí, significa que el servicio devuelve un código de error HTTP
excepto excepciones.HttpException:
  pass

# Si llega aquí, significa que no puede conectarse al servicio
excepto excepciones.GeneralException:
  pass

# Si llega aquí, significa que olvidó especificar la clave API
except exceptions.UndefinedVariableException:
  pass

# Si llega aquí, significa que especificó un argumento no válido
# (las opciones deben ser un diccionario)
except exceptions.InvalidArgumentException:
  pass

excepto:
  pass
# Algo más ocurrió, relacionado.Tal vez pulsó CTRL - C
# mientras se ejecutaba el programa, el kernel está matando su proceso, o
# algo más en conjunto.
print(datos)

# Utilice data.json_string para obtener los datos sin procesar en JSON.
# Puede acceder a cualquier campo de respuesta como una propiedad de clase
# convirtiendo el nombre del campo de "camelCase" a "snake_case".
print("Dirección de correo electrónico: " + data.email_address)
print("Formato: " + str(data.format_check))
print("DNS: " + str(datos.dns_check))
print("SMTP: " + str(datos.smtp_check))
print("Catch all: " + str(datos.catch_all_check))
print("Desechable: " + str(data.disposable_check))
print("Libre: " + str(data.free_check))
print("Última fecha de auditoría: " + str(data.audit.audit_updated_date))
            
            

Como puede ver, en realidad solo hay tres pasos para utilizar la biblioteca:

  • Importe 'Client' y excepciones del paquete.
  • Cree un objeto 'Client' dándole la clave API que creó cuando se registró en el servicio.
  • Ejecute el método 'get' , pasando la dirección de correo electrónico que desea verificar, y un diccionario con opciones y sus valores. Hay una lista de opciones disponibles: validateDNS, validateSMTP, checkCatchAll, checkFree, de chequeoDesechable, _hardRefresh. La descripción de estas opciones se puede encontrar en nuestra página de documentación.

Los datos del ejemplo tendrán un aspecto similar al siguiente:

            
{
    "emailAddress": "[email protected]",
    "formatCheck": "true",
    "smtpCheck": "true",
    "dnsCheck": "true",
    "freeCheck": "false",
    "disposableCheck": "false",
    "catchAllCheck": "true",
    "mxRecords": [
        "ALT1.ASPMX.L.GOOGLE.com",
        "ALT2.ASPMX.L.GOOGLE.com",
        "ASPMX.L.GOOGLE.com",
        "ASPMX2.GOOGLEMAIL.com",
        "ASPMX3.GOOGLEMAIL.com"
    ],
    "audit": {
        "auditCreatedDate": "2018-04-19 18:12:45.000 UTC",
        "auditUpdatedDate": "2018-04-19 18:12:45.000 UTC"
    }
}

Email address: [email protected]
Format: True
DNS: True
SMTP: True
Catch all: True
Disposable: False
Free: False
Last audit date: 2018-04-19 18:12:45
            
            

Cada valor de objeto devuelto corresponde a diferentes tipos de verificación:

  • La opción
    catchAllCheck comprueba si esta dirección de correo electrónico es una dirección «catch-all». Esto se refiere a un tipo especial de dirección que puede recibir correo electrónico para una serie de direcciones distintas. Esto es habitual en empresas en las que si se envía un correo electrónico a [email protected] y otro correo electrónico a [email protected], ambos irán a la misma bandeja de entrada.
  • La opción
    disposableCheck comprueba si la dirección de correo electrónico es desechable o no (creada a través de un servicio como Mailinator). Esto le ayuda a comprobar si hay abusos. Este valor será false si el correo electrónico no es desechable, y true en caso contrario.
  • La opción
    dnsCheck comprueba si el dominio de la dirección de correo electrónico, por ejemplo: gmail.com, es un dominio válido. Este valor será DE ACUERDO si el dominio es bueno.
  • La opción
    freeCheck comprobará si la dirección de correo electrónico es de un proveedor de correo electrónico gratuito como Gmail o no. Este valor será 'false' si la dirección de correo electrónico no es gratis, y true en caso contrario.
  • La opción
    formatCheck le permite saber si hay algún error de sintaxis en la dirección de correo electrónico. Se trata de una comprobación básica que se realiza para detectar errores tipográficos simples o errores importantes. Este valor será false si no hay errores, y true en caso contrario.
    En segundo plano, el servicio API se encarga de todos estos tipos de comprobaciones de verificación por usted de diversas maneras. Hablaré de esto en otro artículo.

Personalización de Email Verification

Como mencioné antes, el ejemplo de código anterior le mostró cómo validar una dirección de correo electrónico con todos los métodos posibles de verificación, pero puede que no desee hacer esto para cada caso.

La verificación de correo electrónico puede ser lenta. Cada tipo de verificación lleva poco tiempo (fracciones de segundo), pero cuando se realizan todas las comprobaciones, ese tiempo puede acumularse.

Si su sitio web solo necesita verificar una dirección de correo electrónico para asegurarse de que puede recibir correos, por ejemplo, puede decirle al paquete de verificación de correo electrónico que solo realice esa verificación. La biblioteca de verificación de correo electrónico es completamente flexible: puede habilitar o deshabilitar cualquier tipo de verificación que desee.

Así es como funciona:

            
client.get("[email protected]", {
    'validateSMTP': 0,
    '_hardRefresh': 1,
    #. . . .
})
            
            

Al ejecutar el método
'get' ,puede utilizar un diccionario con opciones (como se muestra arriba) que afectan directamente a los tipos de comprobaciones que se realizan. Puede utilizarlos según sea necesario.

Mejorar el flujo de registro de usuarios

Ahora que ha visto cómo puede verificar las direcciones de correo electrónico utilizando la biblioteca email-verifier, es posible que desee modificar el proceso de registro de su sitio web para hacer uso de ella.

La mejor manera de hacer esto es bastante sencilla. Cuando un usuario rellena su formulario de registro y lo envía, debe:

  • Recibir los datos del formulario en su servidor web
  • Analizar los datos de registro del usuario, incluida su dirección de correo electrónico
  • Verificar inmediatamente la dirección de correo electrónico del usuario utilizando la biblioteca email-verifier
  • Mostrar un error al usuario si su correo electrónico no es válido y pedirle que vuelva a intentarlo
  • Si todo está bien, crear la nueva cuenta del usuario e iniciar su sesión

Al seguir estos pasos, mejorará en gran medida el proceso de registro de su sitio web al detectar errores tipográficos y en los primeros estadios, antes de que sea demasiado tarde para corregirlos.

Resumen

En conclusión: verificar las direcciones de correo electrónico de sus usuarios puede ser una forma sencilla de mejorar la experiencia de usuario para su sitio web.

Si necesita verificar una dirección de correo electrónico, el nuevo email-verifier es la herramienta perfecta, ya que gestiona muchos tipos diferentes de validación y es extremadamente flexible.

Si tiene alguna pregunta, ¡escríbanos!