How can I extract attachments from an email when they arrive encoded in the body of the email like this:

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

------ =_NEXTPART_FORMSCAPE_MAIL_message101122101615--
  • You'll need to find a UUDECODE tool to convert the ASCII to a valid file. – user3463 Nov 22 '10 at 0:37
  • On what operating system, or with what mail architecture (local unix delivery, fetchmail, Thunderbird, Outlook, ...)? – Gilles 'SO- stop being evil' Nov 22 '10 at 0:52

Save the email to a text file with the extension .uue and extract the attachment with a de-archiver.

| improve this answer | |

Copy only the base64 encoded text into a new text file foo.txt.

base64 --decode foo.txt > bar.pdf

I just decoded a base64 stream that had an extra bit on the end that I had to remove. It looked like this: --=_59494bda030d4629113a60ff13935d81--. Before I removed it I got the error: Invalid character in input stream. After I deleted it, no decoding errors and it opened just fine.

| improve this answer | |

I was able to recover the file using a base64 decoder and copying only the actual text that was the encoded attachment, not any of the surrounding header/footer stuff.

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.