Como criar um analisador de e-mail do zero

Portrait of Sylvain Josserand
por Sylvain Josserand
9 minutos de leitura
Última atualização em

Então, seu chefe acabou de lhe pedir para resolver o "problema do e-mail" que atrasa a empresa. Centenas de e-mails automatizados têm seus dados inseridos manualmente todas as manhãs, obstruindo as caixas de entrada dos funcionários.

Você, sendo inteligente e eficiente, vê imediatamente o potencial de criar um sistema de análise de e-mail. Ótima ideia! Mas saiba que pode ser um pouco mais complexo do que apenas alguns scripts e muito esforço. A seguir, apresentamos seis etapas para criar um analisador de e-mail e automatizar com sucesso seu fluxo de trabalho de entrada de dados de e-mail.

Antes de começarmos: o que é análise e o que é um analisador?

Em ciência da computação, analisar é o ato de dividir um texto em subpartes, seguindo um conjunto de regras.

Um analisador de e-mail permite que um computador leia e-mails e aja sobre eles de acordo com regras predefinidas. Idealmente, esse sistema extrai automaticamente dados relevantes desses e-mails e os insere em seu aplicativo de back-office. Confira o seguinte artigo para um mergulho profundo na análise de e-mail.

Propaganda descarada: Você já conhece o Parseur?

Construir seu próprio analisador de e-mail é um projeto interessante para entender como as coisas funcionam nos bastidores.

Mas é demorado.

Crie sua conta gratuita
Poupe tempo e esforço com Parseur. Automatize seus documentos.

O Parseur foi criado do zero no final de 2015 e levou cerca de 5.000 horas-homem ao longo de seis anos, apenas para construir o back-end. O front-end (toda a interface do usuário, incluindo o editor de modelos) também levou milhares de horas-homem para ser construído. A equipe por trás do Parseur é composta por desenvolvedores experientes com mais de 20 anos de codificação profissional em seus currículos.

O desenvolvimento continua e não podemos estimar quanto tempo levaria para criar um analisador de texto "suficientemente bom".

Se você precisa de resultados rápidos, experimente o Parseur. Parseur é um analisador de e-mail gerenciado e amigável que economizará horas na configuração de sua própria solução. Confira o extenso conjunto de recursos do Parseur.

1. Obtenha os e-mails

No momento, os e-mails estão chegando em caixas de entrada individuais de funcionários, listas de discussão da equipe ou na caixa de correio da empresa.

O primeiro passo é configurar uma conta de e-mail para centralizar todas essas mensagens. Ou até mesmo, configurar seu próprio servidor de e-mail, também conhecido como servidor SMTP.

Se você sabe o que está fazendo, aqui estão alguns servidores SMTP populares:

  • Exim é um agente de transferência de e-mail (MTA) gratuito e de código aberto. É um dos servidores SMTP mais populares e vem ganhando popularidade.
  • Postfix também é gratuito e de código aberto. Tem a reputação de ser estável e de fácil configuração. De acordo com este artigo sobre a participação de mercado de servidores de e-mail, Exim e Postfix juntos representam 80% de todos os servidores de e-mail.
  • Da Microsoft, o onipresente Exchange. Você pode obter os e-mails dele através do EWS em vez dos mais antigos POP3 ou IMAP. Hoje em dia, você pode até optar pela hospedagem na Microsoft, por uma taxa.
  • Construa o seu próprio. Este caminho é longo e complexo, mas você aprenderá muito ao longo do processo. No final, seu servidor poderá atender melhor às suas necessidades, desde que não necessite de compatibilidade com a miríade de clientes de e-mail existentes. Se você está determinado a seguir esse caminho, Python tem um módulo útil em sua biblioteca padrão para você começar: smtpd.

Enviar grandes volumes de e-mail sem ser colocado na lista negra é uma arte em si e é melhor deixar para os especialistas.

A popularidade de configurar seu próprio servidor de e-mail está diminuindo. Na era da nuvem e do SaaS, é mais conveniente usar um serviço de e-mail hospedado. Alguns dos principais players neste espaço são:

  • Postmark foca na entregabilidade e confiabilidade, e oferece um plano gratuito.
  • Mandrill foi um dos pioneiros e continua popular, com foco em e-mails de marketing e transacionais.
  • Sendgrid também se posiciona como uma plataforma de e-mail de marketing e transacional.
  • Mailgun tem como público-alvo desenvolvedores e oferece uma API robusta, além de um plano gratuito.

Nós, do Parseur, apreciamos o Postmark. Sua API e documentação são excelentes. Existem muitos SDKs para as linguagens de programação mais populares.

2. Converta o e-mail para um formato de dados adequado

O e-mail é um formato antigo que acumulou algumas complexidades ao longo das décadas. Por exemplo, o tratamento de caracteres internacionais não fazia parte da especificação inicial. Para lidar com caracteres especiais, como €, você precisa considerar três documentos técnicos (RFCs):

  • RFC 2047 - suporte para nomes internacionais e linhas de assunto no cabeçalho do e-mail.
  • RFC 5890 - suporte para nomes de domínio internacionais no DNS.
  • RFC 6532 - permite o uso de UTF-8 em seções de cabeçalho de e-mail.

Serviços como Postmark ou Mailgun podem simplificar isso, fazendo a conversão para você. Você pode esquecer os problemas com UTF-8, MIME e cp1252.

Por exemplo, com o Mailgun, os servidores recebem o e-mail e o convertem em um documento JSON, tratando de todos os RFCs relevantes. Ele então envia para seu servidor via webhook em uma única solicitação HTTP POST.

Para os curiosos, aqui está uma lista de todos os RFCs relacionados ao SMTP.

Um e-mail simples recebido no Mailgun chegaria ao seu servidor assim:

{
  "subject": "Meu café favorito",
  "sender": "John Doe <[email protected]>",
  "recipient": "Sr. Parseur <[email protected]>",
  "message": "É chamado Awesome Café! Veja as instruções no anexo. Tchau.",
  "attachements": [
    { "name": "directions.pdf", "content": "https://url.with.content" },
    { "name": "cappucino.jpg", "content": "https://another.content.url" }
  ]
  /*... outras informações interessantes aqui ...*/
}

Compare isso com o formato tradicional de e-mail:

  MIME-Version: 1.0
  Received: by 102.29.23.176 with HTTP; Sat, 12 Aug 2016 14:13:31 -0700 (PDT)
  Date: Sat, 12 Aug 2016 14:13:31 -0700
  Delivered-To: =?ISO-8859-1?Q?Mr. Parseur <[email protected]>
  Message-ID: <CAAJL_=kPAJZ=fryb21wBOALp8-XOEL-h9j84s3SjpXYQjN3Z3A@mail.gmail.com>
  Subject: =?ISO-8859-1?Q?My=20Favorite=20Caf=E9
  From: =?ISO-8859-1?Q?John Doe <[email protected]>
  To: =?ISO-8859-1?Q?Mr. Parseur <[email protected]>
  Content-Type: multipart/mixed; boundary=mixed
  ==mixed
  Content-Type: multipart/alternative; boundary=alternative
  ==alternative
  Content-Type: text/plain; charset="utf-8"
  It's called Awesome Caf=C3=A9! See directions in the attachm= ent. Bye.
  ==alternative
  Content-Type: text/html; charset="utf-8"
  It's called <b>Awesome Caf=C3=A9</b>! See directions in the = attachment. Bye. ==alternative== ==mixed
  Content-Type: document/pdf; name="directions.pdf"
  Content-Disposition: attachment; filename="directions.pdf"
  Content-Transfer-Encoding: base64
  iVBORw [... the whole encoded attachment here ...] RK5CYII=
  ==mixed
  Content-Type: image/jpg; name="capuccino.jpg"
  Content-Disposition: attachment; filename="capuccino.jpg"
  Content-Transfer-Encoding: base64
  G+aHAAAA [... another attachment encoded here ...] ORK5CYII=
  ==mixed==

A maioria das linguagens de programação possui bibliotecas para lidar com e-mails, como o módulo email para Python ou a biblioteca RubyMail do Ruby.

3. Armazene os dados em um banco de dados

A partir daqui, você pode usar suas habilidades de programação para lidar com as solicitações HTTP e armazená-las em seu banco de dados.

Algumas linguagens de programação e frameworks populares para esta tarefa são:

O código será relativamente simples se você não tiver um formato específico como alvo. No entanto, você pode precisar se adaptar ao formato aceito pelo seu software de negócios. Formatos populares incluem CSV e JSON, mas alguns aplicativos usam formatos binários mais obscuros.

Se você só precisa de armazenamento, então basta escolher como armazenar os dados. Se você sabe que nunca precisará fazer análises estatísticas ou buscas complexas nesses e-mails, pode considerar usar o MongoDB. No entanto, isso é geralmente desaconselhado (veja este artigo).

Qualquer sistema de gerenciamento de banco de dados relacional baseado em SQL deve funcionar bem. Você precisará de pelo menos duas tabelas: uma para e-mails e outra para anexos.

Qualquer mecanismo de banco de dados SQL deve ser suficiente, desde que o volume e a carga caibam em um servidor. Algumas opções populares para bancos de dados relacionais são:

  • MySQL e seu fork MariaDB são escolhas populares e robustas.
  • Postgresql é um mecanismo de banco de dados mais robusto e rico em recursos, com mais opções de escalabilidade, mas com uma configuração mais complexa.
  • Oracle oferece uma infinidade de recursos para grandes empresas, mas é complexo e caro.
  • Microsoft SQL Server é uma alternativa viável ao Oracle.

Se o seu objetivo é apenas armazenar o conteúdo dos e-mails no banco de dados, você terminou. Mas que tal extrair dados relevantes desses e-mails? Refinar os dados pode automatizar seu fluxo de trabalho.

4. Extraia informações relevantes de cada e-mail

É aqui que a análise propriamente dita acontece. O objetivo é:

Uma captura de tela da visão geral do analisador de e-mail
Esquema de um analisador de e-mail transformando um e-mail recebido em dados estruturados (por exemplo, uma planilha ou um banco de dados)

Aqui estão algumas abordagens:

Análise Estatística de Palavras ou "Contagem de Palavras"

A análise estatística é adequada para e-mails sem um formato predefinido, normalmente escritos por humanos. Você define categorias de e-mail com um conjunto de palavras-chave. O sistema analisa cada e-mail, conta as palavras de cada categoria e classifica o e-mail.

Isso funciona bem para análise de sentimentos. Por exemplo, categorizar e-mails como "cliente feliz" ou "cliente furioso".

A comunicação humana é ambígua e sensível ao contexto. Sem inteligência artificial verdadeira, essas ambiguidades podem tornar o sistema não confiável.

Expressões Regulares

Esta abordagem funciona melhor para e-mails gerados automaticamente, onde a maior parte do texto é consistente.

Por exemplo, extrair o nome do passageiro de e-mails de reserva da American Airlines. Você cria uma expressão regular que corresponda ao e-mail inteiro e capture o nome. Mas e se outras partes do e-mail mudarem? E se houver vários passageiros?

Python tem uma boa biblioteca para expressões regulares. Ruby também possui o módulo Regexp. Elas também são suportadas em JavaScript.

A desvantagem é que as Expressões Regulares são complexas de manter e difíceis de ler. Muitos clientes do Parseur relataram dificuldades em manter um sistema baseado em Regexps diante de mudanças nos formatos de e-mail.

5. Uma solução gerenciada? O Parseur pode ajudar!

Não seria ótimo obter os dados desejados, organizados em colunas em uma planilha ou banco de dados?

Esse é o objetivo do Parseur. Oferecemos uma interface simples de "apontar e clicar" para definir os dados relevantes. Você envia e-mails semelhantes e os dados são extraídos e organizados automaticamente.

6. Integre com seu software de negócios

Com os dados extraídos e organizados, você precisa integrá-los ao seu software de negócios.

Ferramentas como Zapier ou Make podem ajudar, conectando seu sistema de e-mail ao seu aplicativo de negócios.

O Parseur se integra ao Google Sheets, Zapier, Integromat, Microsoft Flow e Getswift, permitindo que você conecte seus dados analisados a milhares de aplicativos.

Boa sorte!

Última atualização em

Software de extração de dados baseado em IA.
Comece a usar o Parseur hoje mesmo.

Automatize a extração de texto de e-mails, PDFs e planilhas.
Economize centenas de horas de trabalho manual.
Adote a automação do trabalho com IA.

Cadastre-se gratuitamente
Parseur rated 5/5 on Capterra
Parseur.com has the highest adoption on G2
Parseur.com has the happiest users badge on Crozdesk
Parseur rated 5/5 on GetApp
Parseur rated 4.5/5 on Trustpilot