Como realizar Email Verification no Flask
Se você estiver criando um site (ou API) usando o Flask, geralmente é uma boa ideia verificar os endereços de e-mail dos usuários. O processo de verificação normalmente envolve a recuperação de informações de endereço de e-mail, e não é simples.
O que torna isso difícil é que não existe um banco de dados público para mapear endereços de e-mail para saber se esse provedor de e-mail é confiável o suficiente ou mesmo se esse usuário existe no serviço. A maioria das empresas verifica os e-mails dos usuários enviando um e-mail de confirmação, mas a desvantagem mais significativa desse método é que muitas vezes os e-mails são devolvidos porque o usuário especificou um endereço de e-mail inexistente.
As informações de endereço de e-mail geralmente são compostas por:
- Validação de formato de um determinado endereço de e-mail;
- Listas negras de domínios com e-mails descartáveis;
- Verificação de registros DNS para a parte do domínio;
- Verificação da conexão SMTP com o servidor;
- Verificar se as caixas de correio desse domínio estão livres.
Em resumo, você precisa realizar várias etapas para verificar totalmente um endereço de e-mail.
Hoje, vamos orientá-lo a usar a biblioteca de desenvolvedor Flask-EmailVerifier incrivelmente simples que criamos, que facilita muito a execução de solicitações de verificação de e-mail no Flask.
Criar uma Conta de Email Verification API
A primeira coisa que você precisa fazer para usar a biblioteca Flask-EmailVerifier é criar uma conta gratuita da Email Verification API: https://emailverification.whoisxmlapi.com/signup.
A Email Verification API é um dos maiores e mais baratos provedores de dados de endereços de e-mail. Você pode usar o serviço da Email Verification API para realizar 1.000 consultas gratuitas de verificação de e-mail a cada mês, ou você pode pagar uma taxa fixa de US$ 49 por mês para 100.000 consultas. Planos tarifários adicionais 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 de sua conta e copiar sua chave de API - você precisará dela mais tarde para fazer solicitações de verificação de e-mail.
Instalar o pacote Flask-EmailVerifier
Agora que sua conta está configurada, a próxima coisa a fazer é instalar a biblioteca Flask-EmailVerifier PyPi. Na linha de comando, execute o seguinte comando na raiz do seu projeto:
$ pip install Flask-EmailVerifier
Isso fará o download e instalará a versão mais recente do pacote Flask-EmailVerifier do PyPi.
Execute uma Solicitação de Email Verification Usando o Flask-EmailVerifier
Agora que você tem uma conta e o pacote Flask-EmailVerifier instalados, vamos dar uma olhada em alguns códigos que você pode executar para procurar vários endereços de e-mail.
Aqui está um aplicativo Flask simples que contém apenas um único endpoint,'/email/<email>'
que retorna
uma resposta simples com um resultado de solicitação de API:
from flask import Flask, make_response
from flask_email_verifier import EmailVerifier
from json import dumps, loads
app = Flask(__name__)
# Initialize the extension
verifier = EmailVerifier(app)
@app.route('/email/<email>')
def email(email):
# Retrieve an info for the given email address
email_address_info = verifier.verify(email)
if email_address_info is not None:
data = dumps(loads(email_address_info.json_string), indent=4)
resp = make_response(data, 200)
resp.headers['Content-Type'] = 'application/json'
else:
resp = make_response('None', 404)
return resp
Você precisa seguir mais algumas etapas antes de poder executar nosso aplicativo simples.
- Especifique um
'FLASK_APP'
environment variable (exportar FLASK_APP=app.py
) - Especifique um
'EMAIL_VERIFIER_KEY'
com a chave de API (exportação EMAIL_VERIFIER_KEY='your-api-key'
)
Coloque esse código no arquivo 'app.py'
arquivo e executá-lo, e você verá uma resposta JSON com as informações sobre test.email@gmail.com ao visitar o '/test/test.email@gmail.com'
em seu
navegador.
Se você executar esse novo servidor e visitar o '/email/test.email@gmail.com'
URL em seu navegador, você
deverá ver uma nova resposta semelhante a esta:
{
"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"
}
}
Como você pode ver, o objeto de dados da resposta contém todos os dados do e-mail! Muito legal, não é? O objeto de resposta contém tudo o que você precisa saber sobre um determinado endereço de e-mail.
Encerrar o Flask-EmailVerifier
Realizar a verificação de e-mail pode ser complicado, mas o Flask-EmailVerifier, em conjunto com o serviço Email Verification API, torna isso simples - e barato! Ao usar a nova biblioteca Flask-EmailVerifier você pode criar e gerenciar facilmente a verificação de e-mail até mesmo para os maiores sites corporativos.
Para saber mais, confira a biblioteca Flask-EmailVerifier no GitHub, onde você pode encontrar todos os documentos e informações mais detalhadas: https://github.com/whois-api-llc/flask-email-verification
Se tiver alguma dúvida, envie um e-mail para nós!