Visualizador EML e decodificador MIME

Cole uma mensagem ou abra um arquivo .eml e clique em Inspecionar localmente: cabeçalhos, corpo, prévia HTML isolada e cada parte MIME — com Salvar para os bytes decodificados — ficam na página, e nada é enviado.

Processamento local ·
*.eml

Como ler uma mensagem .eml sem enviá-la para nenhum servidor

Cole o código-fonte de uma mensagem na caixa ou abra um arquivo .eml do disco e clique em Inspecionar localmente. A leitura inteira acontece na aba: nada é enviado e a página não baixa nada enquanto trabalha. O resultado se divide entre os cabeçalhos decodificados, o corpo em texto simples, uma prévia HTML isolada e a lista das partes MIME, de modo que uma mensagem com texto, HTML e anexos é lida parte por parte.

Cabeçalhos e corpos são decodificados com o conjunto de caracteres que cada parte declara: um assunto enviado como =?windows-1252?Q?Rechnung_=80_offen?= é lido como “Rechnung € offen”, um corpo GB2312 é lido como 后台任务已完成。 e o UTF-8 mantém os acentos. As partes são cortadas linha a linha na fronteira MIME em vez de procurar esse texto em qualquer posição do corpo, então uma linha de traços dentro de um texto citado não encerra mais a mensagem antes do fim.

  1. Cole o código-fonte da mensagem na caixa ou solte um arquivo .eml na área de envio; o nome do arquivo aparece ao lado da área e o texto é carregado na caixa.
  2. Clique em Inspecionar localmente. As métricas contam cabeçalhos, partes, anexos e tamanho da entrada, e o cartão de metadados mostra De, Para, Assunto, Data e ID da mensagem — um campo ausente aparece como travessão.
  3. Leia o corpo em texto simples: Copiar coloca no clipboard e Baixar salva. Um arquivo escolhido dá nome ao download (win1252-body.txt para win1252.eml) e uma mensagem colada é salva como message-body.txt.
  4. Confira a prévia HTML: ela é desenhada em um quadro isolado com os recursos externos desativados, então um pixel de rastreamento escrito no HTML não chega a ser solicitado.
  5. Abra a lista de anexos: cada parte mostra nome, tipo MIME, tamanho já decodificado e codificação de transferência, e Salvar grava no disco os bytes decodificados com o nome original.

O que o decodificador lê e onde ele para

O que o decodificador lê

O conjunto de caracteres vem do cabeçalho Content-Type de cada parte, não da página: windows-1252 (“Betrag: €12,50 – fällig am Montag.”), GB2312/GBK (后台任务已完成。), UTF-8 e um rótulo desconhecido que recorre a uma leitura tolerante dos bytes saem como texto legível. Palavras codificadas nos cabeçalhos (RFC 2047) são decodificadas e o espaço entre duas palavras codificadas vizinhas é removido como a norma pede, então “Deploy finished” não fica com espaço duplo.

A estrutura é seguida linha a linha: uma parte multipart é cortada apenas onde uma linha é exatamente --fronteira (com espaços finais opcionais), então uma resposta citada que contém ----b1---- mantém o texto. Um cabeçalho multipart sem o parâmetro boundary, um boundary="" sem valor e um boundary entre aspas simples não perdem mais o corpo: ele é mostrado como texto. Uma mensagem encaminhada como message/rfc822 é analisada como mensagem, seu corpo aparece no painel de texto e o invólucro é listado na tabela de anexos; uma mensagem aninhada em mais de doze níveis é achatada em texto em vez de sumir.

A prévia HTML

A prévia mantém a marcação da própria mensagem e suas regras <style>, mas remove o que poderia carregar ou executar algo: script, iframe, object, embed, link, meta, base, form e controles de formulário são apagados, atributos on* são descartados e cada atributo de URL (src, href, poster, background e os demais) aponta para um fragmento inerte, a menos que seja uma URL data:. O srcset conserva apenas as candidatas em linha. É isso que “recursos externos desativados” significa aqui: em um conjunto de 25 truques de rastreamento — um pixel simples, um srcset, @import e url() dentro de um bloco de estilo, um estilo em linha —, a prévia corrigida não fez nenhuma requisição ao servidor de rastreamento, enquanto a versão anterior fazia quatro.

Isto é um filtro para ler e-mail, não um antivírus. Não executa scripts, não baixa conteúdo remoto e não diz se um link da mensagem é seguro.

Onde o visualizador para

O visualizador decodifica a mensagem como ela foi escrita; não verifica assinaturas S/MIME nem PGP, não descriptografa mensagens protegidas e não conserta um arquivo que não seja uma mensagem. As partes de texto são unidas na ordem em que aparecem, então uma mensagem com várias partes text/plain as mostra uma após a outra. Anexos são salvos como bytes, não abertos, e não há exportação JSON: cabeçalhos, corpo, prévia e lista de partes são o que a página produz.

Ferramentas recentes: