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--
Respostas:
Salve o email em um arquivo de texto com a extensão
.uue
e extraia o anexo com um desarquivador.fonte
Copie apenas o texto codificado em base64 em um novo arquivo de texto
foo.txt
.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.fonte
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é.
fonte