Como Verificar um Endereço de E-mail Usando o Node.js
Neste artigo, vou orientá-lo sobre a melhor maneira possível de verificar endereços de e-mail e melhorar o processo de registro de usuários no seu site do Node.
A verificação de e-mail é extremamente importante. Garantir que os usuários que se inscrevem no seu site tenham um endereço de e-mail válido é importante por vários motivos:
- Você pode detectar erros de digitação do usuário quando ele estiver digitando seu endereço de e-mail e solicitar que ele os corrija antes de permitir o registro.
- Ele permite que você mantenha contato com seus usuários: você pode enviar um e-mail quando o cartão de crédito deles expirar, quando enviar recibos, quando houver novos recursos disponíveis, etc.
- Ele garante que seus usuários possam redefinir a senha com segurança caso a esqueçam: sem um endereço de e-mail não há como validar a identidade de alguém além da verificação manual e humana.
- mpede que os usuários se inscrevam no seu site com endereços de e-mail descartáveis, como os do Mailinator. Os usuários que se inscrevem nesses serviços geralmente tentam evitar o fornecimento de seu e-mail real por um motivo específico: talvez queiram abusar de seus recursos freemium, etc. reduza o risco de abuso do seu site.
No entanto, o ponto em que a verificação de e-mail se torna complexa é decidir como verificar os endereços de e-mail para o SEU site. Cada site tem requisitos diferentes e, dependendo do que seu site faz, talvez você queira verificar o endereço de e-mail de um usuário apenas de uma ou duas maneiras específicas.
Para ajudar a resolver esse problema, lançamos recentemente o email-verifier. Biblioteca NPM.
Essa biblioteca do Node permite que você verifique facilmente os endereços de e-mail de várias maneiras diferentes e fornece verificação flexível (como você verá daqui a pouco).
Então, sem mais delongas, vamos dar uma olhada em como ele funciona!
Criar uma Conta de Email Verification
A primeira coisa que você precisa fazer para verificar endereços de e-mail usando a biblioteca de verificação de e-mail é criar uma conta gratuita para o serviço da Email Verification API aqui: https://emailverification.whoisxmlapi.com/signup
Depois de criar sua conta gratuita, você poderá usar o serviço de API para verificar 1.000 endereços de e-mail gratuitamente. Se quiser fazer mais, você sempre poderá pagar um valor muito baixo.
Instalar o pacote
Agora que sua conta está configurada, a próxima coisa que você precisa fazer é instalar o pacote Node. 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.
Verificar um endereço de e-mail
Agora que você tem uma conta e o pacote instalados, vamos dar uma olhada em alguns códigos que podem ser executados para verificar um endereço de e-mail imediatamente.
Aqui está um pequeno script, 'verify.js', que verificará um endereço de e-mail usando todos os possíveis métodos de verificação:
const Verifier = require("email-verifier");
let verifier = new Verifier("your_email_verification_api_key");
verifier.verify("r@rdegges.com", (err, data) => {
if (err) throw err;
console.log(data);
});
Como você pode ver, há apenas três etapas para usar a biblioteca:
- Importar a biblioteca.
- Crie um objeto "Verifier" fornecendo a ele a chave de API que você criou quando se inscreveu no serviço de API.
- Execute o método "verify", passando o endereço de e-mail que você deseja verificar e uma função de retorno de chamada. Essa função de retorno de chamada é a que será executada quando a verificação for concluída.
Os dados retornados no retorno de chamada terão a seguinte aparência:
{
"catchAll": "false",
"disposable": "false",
"dns": "OK",
"emailAddress": "r@rdegges.com",
"free": "false",
"mxs": [ "mail.protonmail.ch" ],
"smtp": "OK",
"validFormat": "OK"
}
Cada valor JSON retornado corresponde a diferentes tipos de verificação:
- A verificação "catchAll" informa se esse endereço de e-mail é ou não um endereço "catch-all". Esse refere-se a um tipo especial de endereço que pode receber e-mails de qualquer número de outros endereços. Isso é comum em empresas em que, se você enviar um e-mail para test@hi.com e outro para test2@hi.com, ambos os e-mails irão para a mesma caixa de entrada.
- A verificação "descartável" informa se o endereço de e-mail é descartável ou não (criado por meio de um serviço como o serviço como o Mailinator). Isso o ajuda a verificar se há abuso. Esse valor será "false" se o e-mail não for descartável, e "true" caso contrário.
- A verificação de "dns" garantirá que o domínio no endereço de e-mail, por exemplo: gmail.com, seja um domínio válido. Esse valor será "OK" se o domínio for válido.
- A opção "free" verificará se o endereço de e-mail é de um provedor de e-mail gratuito, como o Gmail, ou não. Esse valor será "false" se o endereço de e-mail não for gratuito e "true" caso contrário.
- A verificação "validFormat" permite que você saiba se há algum erro de sintaxe no endereço de e-mail. Essa é uma verificação básica que é feita para detectar erros de digitação simples ou erros graves. Esse valor será "false" se
não houver erros e "true" caso contrário.
Nos bastidores, o serviço de API está lidando com todos esses tipos de verificações para você de várias maneiras interessantes. Falarei sobre isso em um artigo futuro.
Personalizando o Email Verification
Como mencionei anteriormente, o exemplo de código acima mostrou como validar um endereço de e-mail com todos os métodos de verificação possíveis, mas isso pode não ser o que você deseja fazer em todos os casos.
A verificação de e-mail pode ser lenta. Cada tipo de verificação leva um pequeno tempo (frações de um segundo), mas quando todas as verificações são realizadas, esse tempo pode se acumular.
Se o seu site só precisa verificar um endereço de e-mail para garantir que ele possa receber e-mails, por exemplo, você pode instruir o pacote email-verifier a realizar apenas essa verificação. A biblioteca do verificador de e-mail é totalmente flexível: você pode ativar ou desativar qualquer tipo de verificação que desejar.
Veja como funciona:
const Verifier = require("email-verifier");
let verifier = new Verifier("your_email_verification_api_key", {
checkCatchAll: false,
checkDisposable: false,
checkFree: false,
validateDNS: false,
validateSMTP: false
});
Ao criar o objeto "Verifier", você pode passar opções adicionais (conforme mostrado acima) que afetam diretamente os tipos de verificações que são executadas. Sinta-se à vontade para usá-las conforme necessário.
- OBSERVAÇÃO: Depois de criar o objeto "Verifier", sempre que você chamar o método "verify" para verificar um endereço de e-mail, as opções especificadas quando o "Verifier" foi criado permanecerão em em vigor.
Melhorar o fluxo de registro do usuário
Agora que você viu como é possível verificar endereços de e-mail usando a biblioteca de verificação de e-mail, provavelmente queira modificar o processo de registro do seu site para fazer uso disso.
A melhor maneira de fazer isso é bastante simples. Quando um usuário preenche o formulário de registro e o envia, você deve:
- Receber os dados do formulário em seu servidor da Web
- Analisar os dados de registro do usuário, incluindo seu endereço de e-mail
- Verificar imediatamente o endereço de e-mail do usuário usando a biblioteca de verificação de e-mail
- Mostrar um erro ao usuário se o e-mail for inválido, solicitando que ele tente novamente
- Se tudo estiver em ordem, crie a nova conta do usuário e faça o login
Ao seguir essas etapas, você melhorará muito o fluxo de registro do seu site ao detectar erros de digitação e erros do usuário no início do processo de registro, antes que seja tarde demais para corrigi-los.
Resumo
Portanto, para concluir: verificar os endereços de e-mail dos seus usuários pode ser uma maneira simples de melhorar a experiência do usuário no seu site.
Se você precisar verificar um endereço de e-mail, o novo email-verifier é a ferramenta perfeita, pois lida com muitos tipos diferentes de validação e é extremamente flexível.
Se tiver alguma dúvida, envie-nos um e-mail!