16

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
     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--
2
  • You'll need to find a UUDECODE tool to convert the ASCII to a valid file.
    – user3463
    Nov 22, 2010 at 0:37
  • On what operating system, or with what mail architecture (local unix delivery, fetchmail, Thunderbird, Outlook, ...)? Nov 22, 2010 at 0:52

3 Answers 3

4

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

21

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.

2
  • Also if facing invalid input errors, some might find useful to add --ignore-garbage (or just -i) flag
    – deevee
    Nov 16, 2021 at 8:51
  • The @deevee tip worked like a charm to me, thanks! Aug 9 at 16:23
1

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.

0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .