Como posso extrair um anexo do corpo do email (codificado como base64)


13

Como posso extrair anexos de um email quando eles chegam codificados no corpo do email da seguinte maneira:

------ =_NEXTPART_FORMSCAPE_MAIL_message101122101615
Content-Type: application/octet-stream; name="MyFile_hasalongish
     filename_22-NOV-2010.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="MyFile_hasalongishfilename_22-NOV-2010.pdf"
Content-Description: MyFile_hasalongishfilename_22-NOV-2010.pdf

JVBEDi0xLjMKJcfsj6IKNSAwIG9iago8PC9MZW5ndGggNiAwIFIvRmlsdGVyIC9GbGF0
ZFRGVSdsfSDF43N0cmVhbQp4nJ0b23IVN/LdXzG1D7vnbOUMo9tISiWpBduAN2CMbZJN
[...]
OUIwOEYxRDcyRjkwRDAxRUU1QzBDMjhEM0Y+XQo+PgpzdGFydHhyZWYKMTMwNDQKJSVF
T0YK
------ =_NEXTPART_FORMSCAPE_MAIL_message101122101615--

Você precisará encontrar uma ferramenta UUDECODE para converter o ASCII em um arquivo válido.

Em que sistema operacional ou com qual arquitetura de correio (entrega local unix, fetchmail, Thunderbird, Outlook, ...)?
Gilles 'SO- stop be evil'

Respostas:


2

Salve o email em um arquivo de texto com a extensão .uuee extraia o anexo com um desarquivador.


17

Copie apenas o texto codificado em base64 em um novo arquivo de texto foo.txt.

base64 --decode foo.txt > bar.pdf

Acabei de decodificar um fluxo base64 que tinha um pouco mais no final que precisei remover. Ele ficou assim: --=_59494bda030d4629113a60ff13935d81--. Antes de removê-lo, recebi o erro: Invalid character in input stream.Depois de excluí-lo, não houve erros de decodificação e ele abriu muito bem.


1

Consegui recuperar o arquivo usando um decodificador base64 e copiando apenas o texto real que era o anexo codificado, e não o material circundante de cabeçalho / rodapé.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.