Cómo verificar una dirección de correo electrónico en Express.js
Si está construyendo un sitio web (o API) utilizando Express.js, resulta útil verificar la dirección de correo electrónico del usuario para saber si es real y no desechable. El proceso de verificación suele implicar comprobar el correo electrónico en listas negras, y comprobar si es posible establecer una conexión SMTP con el servidor de correo. Por desgracia, no es sencillo.
La razón por la que no es sencillo verificar una dirección de correo electrónico es que hay que obtener respuestas a un gran número de preguntas. En concreto, tiene que comprobar la parte del anfitrión de la dirección de correo electrónico. ¿Es un nombre de dominio real? ¿Tiene registros DNS, puede conectarse a las IP especificadas en el registro DNS? ¿Puede configurar la conexión SMTP? ¿Proporciona el servicio direcciones de correo electrónico desechables? Puede obtener las respuestas a todas estas preguntas con una sola solicitud a Email Verification API.
Hoy, le guiaré a través de un ejemplo increíblemente sencillo sobre cómo integrar la bilbioteca para desarrolladores de email-verifier.
Cree una cuenta Email Verification API para búsquedas
Lo primero que tendrá que hacer para utilizar la biblioteca email-verifier es crear una cuenta gratuita de Email Verification API: https://emailverification.whoisxmlapi.com/signup.
Email Verification API es uno de los mejores y menos costosos servicios de verificación de correo electrónico. Puede utilizar el servicio API de verificación de correo electrónico para realizar 1.000 consultas gratuitas al mes, o puede pagar una tarifa plana de 9 dólares al mes por 10.000 consultas. Hay otros planes de tarifas disponibles aquí.
Una vez que haya creado e iniciado sesión en su cuenta de Email Verification API, tendrá que ver la página de productos de su cuenta y copiar su clave API, la cual necesitará más adelante para realizar consultas.
Instale el paquete Email Verifier
Ahora que su cuenta está configurada, lo siguiente que debe hacer es instalar la bilbioteca NPM email verifier. Desde la línea de comandos, ejecute el siguiente comando:
$ npm instalar verificador de correo electrónico
Esto descargará e instalará la última versión del paquete email-verifier de NPM.
Realice una solicitud de verificación de correo electrónico con Email Verifier
Ahora que tiene tanto una cuenta como el paquete email-verifier instalado, echemos un vistazo a algunos ejemplos de código que puede ejecutar para verificar la dirección de correo electrónico de un usuario.
He aquí una sencilla aplicación Express.js que solo contiene un único punto final, /users
que devuelve una simple
respuesta hola mundo:
const express = require('express');
const usersRouter = require('./routes/users');
const app = express();
app.use(express.urlencoded({ extended: false }));
app.use(express.json());
app.use('/users', usersRouter);
app.listen(3000);
Necesita poner este código en un app.js
y antes de poder ejecutarlo, cree una carpeta llamada "routes" y coloque el archivo
users.js
en su interior, que contendrá el siguiente
código.
const express = require('express');
const router = express.Router();
const verifier = new(require('email-verifier'))("Your-api-key");
router.post('/', function(req, res, next) {
verifier.verify(req.body.email, (err, data) => {
if (err) {
console.error(err);
return res
.status(500)
.send({
message: 'Internal error'
});
}
console.log(data);
if (data.formatCheck === 'true' &&
data.disposableCheck === 'false' &&
data.dnsCheck === ’true’ &&
data.smtpCheck !== 'false'
) {
return res.send({
saved: true
});
}
return res
.status(400)
.send({
message: 'Invalid or disposable email.'
});
});
});
module.exports = router;
La opción
const verifier = new (require('email-verifier'))("Your-api-key");
inicializa la clase EmailVerifier. Ahora puede utilizar el método
verifier.verify()
en su aplicación. En el código que se muestra antes, se llama a este método cuando la aplicación recibe
POST /usuarios
como solicitud. La línea verifier.verify(req.body.email,
(err, data) => {
ilustra que el valor es
verify
para el método de llamada. Suponemos que req.body.email
contiene
una dirección de correo electrónico procedente de la entrada del usuario, así que queremos verificarla. La función de devolución de llamada tiene 2
argumentos: err
y datos
. Si el primero no es null
, significa que algo está mal. El
segundo argumento es el resultado de la llamada a la API. En las siguientes líneas comprobamos si el correo electrónico tiene un
formato válido, si el anfitrión tiene registros DNS, si el servidor de correo rechaza la conexión SMTP y si el anfitrión proporciona direcciones de correo electrónico desechables.
La opción
datos
puede almacenar un objeto JavaScript como este:
{
"emailAddress": "test.email@gmail.com",
"formatCheck": "true",
"smtpCheck": "false",
"dnsCheck": "true",
"freeCheck": "true",
"disposableCheck": "false",
"catchAllCheck": "false",
"mxRecords": [
"alt3.gmail-smtp-in.l.google.com",
"alt1.gmail-smtp-in.l.google.com",
"alt2.gmail-smtp-in.l.google.com",
"alt4.gmail-smtp-in.l.google.com",
"gmail-smtp-in.l.google.com"
],
"audit": {
"auditCreatedDate": "2018-11-14 13:05:09.000 UTC",
"auditUpdatedDate": "2018-11-14 13:05:09.000 UTC"
}
}
Conclusión sobre Email Verifier
Verificar direcciones de correo electrónico puede ser complicado, pero email-verifier junto con el servicio Email Verification API lo hace sencillo y barato. Al utilizar la nueva biblioteca email-verifier podrá elaborar y gestionar fácilmente la verificación de direcciones de correo electrónico incluso para los sitios web empresariales más grandes.
Para saber más, consulte la biblioteca email-verifier en GitHub, donde encontrará toda la documentación e información más detallada: https://github.com/whois-api-llc/email-verifier
Si tiene alguna pregunta, ¡escríbanos!