pressione ⌘K para trocar de ferramenta
EMAIL AUTH

Visualizador de E-mail EML

Visualiza e analisa o conteúdo de arquivos EML.

local
eml-viewer
§01 SOBRE ESTA FERRAMENTA

Visão geral

Um arquivo .eml é uma mensagem salva no mesmo formato em que ela viajou: cabeçalhos, uma linha em branco e então o corpo. O cliente de e-mail esconde quase tudo isso, o que não é problema até o momento em que você precisa saber o que a mensagem realmente continha — um cabeçalho que o seu cliente não exibe, um assunto que chegou embaralhado, ou a estrutura de uma mensagem que é renderizada de forma errada.

Este visualizador corta o arquivo na fronteira dos cabeçalhos, desdobra as linhas de continuação, decodifica os encoded-words MIME no conjunto de caracteres declarado e mostra tanto os campos principais quanto o corpo bruto.

Como usar

  1. Salve a mensagem como .eml ou copie o código-fonte bruto dela. No Thunderbird, arraste a mensagem para a área de trabalho; no Apple Mail, Visualizar → Mensagem → Código-fonte bruto; no Outlook, Salvar como → Formato de Mensagem do Outlook e depois exporte, ou use Arquivo → Salvar como → Texto.
  2. Cole o conteúdo. Cabeçalhos primeiro, depois uma linha em branco, depois o corpo — o formato é só isso.
  3. Leia os campos do resumo e então percorra o corpo bruto para entender a estrutura.

Encoded-words e por que os assuntos chegam quebrados

Por especificação, cabeçalhos são apenas ASCII. Texto não-ASCII é transportado como um encoded-word: =?charset?encoding?data?=, em que a codificação é B para base64 ou Q para uma variante de quoted-printable.

O conjunto de caracteres que fica no meio é o que importa, e é justamente ali que a maioria das ferramentas erra. Assuntos em japonês continuam sendo enviados rotineiramente como ISO-2022-JP — uma codificação baseada em sequências de escape, anterior ao Unicode, que segue sendo o padrão em vários clientes de e-mail. O e-mail da Europa Ocidental ainda usa ISO-8859-1 e windows-1252. Um decodificador que presume UTF-8 transforma tudo isso em caracteres embaralhados, e o resultado passa a impressão de arquivo corrompido em vez de erro de decodificação.

Este visualizador lê o charset declarado e decodifica de acordo, de modo que =?ISO-2022-JP?B?…?= se torna japonês legível e =?windows-1252?Q?it=92s?= se torna it's com o apóstrofo tipográfico correto. Um charset desconhecido ou escrito errado cai para UTF-8 em vez de falhar.

Dobramento de cabeçalhos

Cabeçalhos longos são quebrados em várias linhas, e as linhas de continuação começam com espaço em branco. Um cabeçalho Received ou uma lista To com vinte endereços vai ocupar muitas linhas no arquivo, e essa quebra não carrega significado nenhum — é uma regra de transporte, não parte do valor.

Os cabeçalhos são desdobrados antes da análise, então um valor quebrado é lido como uma única string. Vale saber disso quando você mesmo estiver lendo o texto bruto: um grep por um valor de cabeçalho vai deixar passar qualquer coisa que tenha calhado de ser quebrada em duas linhas.

O que o corpo mostra

O corpo é exibido exatamente como aparece no arquivo, e isso é deliberado.

A maioria das mensagens reais é multipart/alternative (uma versão em texto puro e uma versão em HTML do mesmo conteúdo) ou multipart/mixed (conteúdo mais anexos). Cada parte tem o seu próprio Content-Type, o seu próprio charset e o seu próprio Content-Transfer-Encoding, e as partes são separadas por uma string de fronteira declarada nos cabeçalhos de nível superior.

Mostrar uma parte decodificada como se ela fosse «a mensagem» esconde essa estrutura, e normalmente a estrutura é exatamente o que você veio ver: qual parte um cliente está renderizando, se a alternativa em texto puro corresponde ao HTML, se um anexo está onde você espera. Por isso o corpo bruto continua bruto.

Isso significa, sim, que corpos em quoted-printable exibem =3D no lugar de = e mostram quebras de linha suaves como um = no fim da linha, e que partes em base64 aparecem como base64. Se você precisar decodificar uma dessas partes, copie-a e use o decodificador Base64 ou o decodificador de URL / percent-encoding sobre ela.

Cabeçalhos que o seu cliente não mostra

O resumo lista os sete campos que você costuma querer. O texto bruto que você colou contém o resto, e vários deles respondem perguntas que os clientes escondem.

  • Return-Path é o remetente de envelope — para onde vão as devoluções. Ele é definido pelo servidor de envio e é muito frequentemente diferente do cabeçalho From:, que é o endereço que uma pessoa vê. Quando o SPF passa mas o DMARC falha, essa divergência costuma ser o motivo.
  • List-Unsubscribe e List-Unsubscribe-Post são o que faz aparecer o botão de cancelamento de inscrição em um clique no Gmail. Mala direta sem eles é marcada como spam com mais frequência.
  • Auto-Submitted marca mensagens geradas por máquina. Ausente em uma mensagem automatizada, ele vai disparar respostas de ausência e laços de e-mail.
  • In-Reply-To e References são como os clientes montam uma conversa. Uma resposta que aparece como conversa nova está sem um dos dois.
  • Content-Language e Accept-Language explicam por que um remetente multilíngue escolheu a versão que escolheu.
  • Cabeçalhos X-* são o que a infraestrutura de envio acrescentou. Pontuações de spam, identificadores de campanha e nomes internos de fila aparecem todos aqui, e são o caminho mais rápido para identificar qual sistema de fato enviou uma mensagem.

Exemplos

  • Um assunto que chega como rabisco. Cole a mensagem aqui. Se o assunto estiver legível, o remetente está correto e é o cliente de recebimento que está tratando o charset mal.
  • «A mensagem é renderizada de outro jeito no Outlook.» Olhe a estrutura de fronteiras. Um multipart/alternative em que as duas partes divergem explica a maior parte desses relatos.
  • Um cabeçalho que falta. Clientes exibem um subconjunto curado. List-Unsubscribe, Auto-Submitted, X-Failed-Recipients e afins estão no arquivo mesmo quando nada os mostra.
  • Confirmar o que você realmente enviou. Salve uma mensagem da sua própria pasta de itens enviados e leia-a de volta. Surpresas de codificação são muito mais fáceis de ver na forma bruta.

Observações

A separação entre cabeçalhos e corpo é a primeira linha em branco, conforme o formato. Um arquivo sem nenhuma linha em branco é tratado como só cabeçalhos, que é exatamente o que você quer quando alguém cola apenas o bloco de cabeçalhos.

Nada aqui valida a mensagem. Um .eml com um Date malformado, sem Message-ID, ou com uma fronteira que nunca aparece no corpo, vai ser exibido exatamente como está — porque o objetivo é ver o que o arquivo contém, e não o que ele deveria conter.

Para o caminho de entrega, os atrasos por salto e os veredictos de SPF, DKIM e DMARC, use o analisador de cabeçalhos de e-mail. Ele lê os mesmos cabeçalhos com outra pergunta em mente.

FAQ
A mensagem é enviada para algum lugar?
Não. O texto é separado e analisado dentro da própria página; não existe nenhuma requisição de rede. Isso importa aqui porque uma mensagem salva carrega endereços de destinatários, nomes de host internos e, com frequência, a conversa inteira.
Por que o assunto aparece legível aqui, se em outras ferramentas ele vira =?UTF-8?B?…?
Isso é um encoded-word da RFC 2047 — a codificação MIME para texto não-ASCII em cabeçalhos. Aqui ele é decodificado usando o charset que o próprio cabeçalho declara, então ISO-2022-JP, Shift_JIS, EUC-JP e a família ISO-8859 saem todos como texto legível, em vez de virarem caracteres embaralhados.
O corpo está cheio de =3D e =C3=A9. Por quê?
Isso é quoted-printable, e o corpo é exibido exatamente como aparece no arquivo. A decodificação do corpo não é aplicada, porque uma mensagem real normalmente é multipart — vários corpos com codificações diferentes — e mostrar silenciosamente um deles como se fosse a mensagem seria enganoso.
Onde estão os anexos?
Ficam visíveis como partes MIME no corpo bruto, mas não são extraídos. Este é um leitor de estrutura de mensagem e de cabeçalhos, não um descompactador. Extrair e oferecer anexos vindos de um .eml não confiável é outra ferramenta, com outros riscos.
Quais cabeçalhos aparecem no resumo?
From, To, Cc, Subject, Date, Reply-To e Message-ID. Todo o resto permanece no texto bruto que você colou. Para o caminho de entrega e os veredictos de autenticação, use o analisador de cabeçalhos de e-mail.