Decodificar arquivos EML
Às vezes, um arquivo de e-mail não será processado corretamente pelo cliente de e-mail e você ficará com um e-mail com um arquivo .EML anexo. Este arquivo é o texto completo do e-mail enviado, mas se houver anexos estes serão codificados e aparecerão no arquivo como texto aleatório.
Alguns clientes de e-mail permitem que você importe esses arquivos e, em seguida, os trate automaticamente, mostrando a mensagem e permitindo que você use o programa para lidar com os anexos. Alguns podem não. São aqueles que este FAQ aborda.
Para trabalhar com esses arquivos, você precisa fazer duas coisas:
- Salve o arquivo EML em um local que você possa encontrar e dê ao arquivo uma extensão de arquivo .TXT para que ele seja aberto em um editor de texto. Tudo bem se o arquivo tiver uma extensão dupla (por exemplo, nomedoarquivo.eml.txt), desde que você possa abrir o arquivo em um editor de texto.
- Obtenha um programa de decodificação base64. Existem muitos decodificadores baseados na Web onde você pode recortar/colar texto codificado em uma caixa de diálogo em seu navegador e o site enviará um arquivo binário decodificado de volta para você. Embora seja prático e rápido, esteja ciente de que, quando você faz isso, o site que faz a conversão pode fazer uma cópia do arquivo e fazer o que quiser com ele. Por esse motivo, prefiro usar um decodificador autônomo. Normalmente, uso b64dec. O download é um arquivo ZIP que é descompactado em um arquivo EXE autônomo que pode ser executado em qualquer pasta em que você o salvar. Nenhuma instalação necessária.
Abra o arquivo EML em seu editor de texto. A primeira parte do arquivo deve ser os cabeçalhos de e-mail seguidos pela versão de texto do corpo do e-mail e, talvez, uma segunda seção que mostre a mesma mensagem de e-mail, mas com tags HTML para exibição em rich text. O texto da mensagem deve poder ser lido facilmente no editor de texto. São os anexos que você precisa decodificar para ver.
Role para baixo pelo arquivo EML e você deverá ver vários marcadores de limite. Eles vão ficar mais ou menos assim...
------=_Part_1269_26205643.1212678362048
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
...o limite entre a versão de texto ASCII do e-mail e a versão HTML. Se o anexo for uma imagem, o limite pode ser algo assim...
------=_Part_1268_32139554.1212678362047
Content-Type: image/jpeg; name=080605ML1.jpg
Content-Transfer-Encoding: base64
X-Attachment-Id: f_fh3fqzsq0
Content-Disposition: attachment; filename=080605ML1.jpg
Observe que esse cabeçalho de limite diz que o material a seguir é uma imagem JPEG chamada 080605ML1.jpg e que o material é codificado em base64; uma codificação padrão usada para anexos de e-mail.
O que você quer fazer é copiar todo o texto de aparência aleatória seguindo o limite até o próximo limite na caixa de diálogo exibida quando você inicia o programa b64dec. Depois de fazer isso e dar um nome ao arquivo recuperado, basta clicar no botão Decode e um arquivo com o nome que você especificou deve aparecer na pasta do programa (ou qualquer outra pasta que você especificou quando nomeou o arquivo).
Depois de fazer isso, volte e extraia os anexos restantes do arquivo EML original; um anexo de cada vez.