Como verificar um endereço de e-mail no Express.js
Se você estiver criando um site (ou API) usando o Express.js, é útil verificar o endereço de e-mail do usuário para descobrir se ele é real e não descartável. O processo de verificação normalmente envolve verificar o e-mail em listas negras e verificar se é possível configurar uma conexão SMTP com o servidor de e-mail. Infelizmente, não é simples.
A razão pela qual não é fácil verificar um endereço de e-mail é que você precisa obter respostas para um grande número de perguntas. Ou seja, você precisa verificar a parte do host do endereço de e-mail. É um nome de domínio real? Possui registros DNS, você pode se conectar aos IPs especificados no registro DNS? Você pode configurar a conexão SMTP? O serviço fornece endereços de e-mail descartáveis? Você pode obter as respostas para todas essas perguntas com uma solicitação para Email Verification API.
Hoje, vou orientá-lo em um exemplo incrivelmente simples de integração da biblioteca de desenvolvedores do email-verifier.
Criar uma conta de Email Verification API Lookup
A primeira coisa que você precisa fazer para usar a biblioteca do verificador de e-mail é criar uma conta gratuita de Email Verification API: https://emailverification.whoisxmlapi.com/signup.
Email Verification API é um dos melhores e mais baratos serviços de verificação de e-mail. Você pode usar o serviço Email Verification API para realizar 1.000 consultas gratuitas por mês ou pagar uma taxa fixa de US$ 9 por mês para 10.000 consultas. Outros planos tarifários estão disponíveis aqui.
Depois de criar e fazer login na sua conta da Email Verification API, você precisará visualizar a página de produtos da sua página de produtos de sua conta e copiar sua chave de API, que será necessária posteriormente para fazer consultas.
Instalar o pacote do Email Verifier
Agora que sua conta está configurada, a próxima coisa que você precisa fazer é instalar a biblioteca NPM do verificador de e-mail. Na linha de comando, execute o seguinte comando:
$ npm install email-verifier
Isso fará o download e instalará a versão mais recente do pacote email-verifier do NPM.
Realizar uma solicitação de verificação de e-mail usando o Email Verifier
Agora que você tem uma conta e o pacote email-verifier instalados, vamos dar uma olhada em alguns códigos que pode ser executado para verificar o endereço de e-mail de um usuário.
Aqui está um aplicativo Express.js simples que contém apenas um único endpoint, /users
que retorna uma resposta simples
hello world:
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);
Você precisa colocar esse código em um arquivo app.js
e, antes de poder executá-lo, você
criar uma pasta "routes" e, dentro dela, colocar o arquivo users.js
que conterá o seguinte
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;
O const verifier = new (require('email-verifier'))("Your-api-key");
inicializa a classe
EmailVerifier. Agora você pode usar verifier.verify()
método em seu aplicativo. No código acima, esse método
é chamado quando o aplicativo recebe um POST /users
request. The verifier.verify(req.body.email,
(err, data) => {
ilustra uma linha verify
chamada de método. Supomos que req.body.email
contém
um endereço de e-mail da entrada do usuário, portanto, queremos verificá-lo. A função de retorno de chamada tem 2
argumentos: err
and data
. Se a primeira não for null
Isso significa que algo deu errado. O
segundo argumento é o resultado da chamada à API. Nas linhas a seguir, verificamos se o e-mail tem um formato válido, se o host tem registros DNS, se o servidor de e-mail recusa a conexão SMTP e se o
host fornece endereços de e-mail descartáveis.
O data
pode armazenar um 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"
}
}
Encerrar o Email Verifier
A verificação de endereços de e-mail pode ser complicada, mas o email-verifier, em conjunto com o serviço da Email Verification API, torna isso simples e econômico. Ao usar a nova biblioteca do verificador de e-mail, você pode criar e gerenciar facilmente a verificação de endereços de e-mail até mesmo para os maiores sites corporativos.
Para saber mais, dê uma olhada na biblioteca do verificador de e-mail no GitHub, onde você pode encontrar todos os documentos e informações mais detalhadas: https://github.com/whois-api-llc/email-verifier
Se tiver alguma dúvida, envie um e-mail para nós!