Bagaimana saya bisa mengekstrak lampiran dari badan email (disandikan sebagai base64)

13

Bagaimana saya bisa mengekstrak lampiran dari email ketika mereka tiba disandikan di badan email seperti ini:

------ =_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--
DrStalker
sumber
Anda harus menemukan alat UUDECODE untuk mengonversi ASCII ke file yang valid.
Pada sistem operasi apa, atau dengan arsitektur email apa (pengiriman unix lokal, fetchmail, Thunderbird, Outlook, ...)?
Gilles 'SO- stop being evil'

Jawaban:

2

Simpan email ke file teks dengan ekstensi .uuedan ekstrak lampiran dengan pengarsipan.

Rob Kam
sumber
17

Salin hanya teks yang disandikan base64 ke file teks baru foo.txt.

base64 --decode foo.txt > bar.pdf

Saya baru saja mendekodekan aliran base64 yang memiliki bit ekstra pada akhirnya yang harus saya hapus. Itu tampak seperti ini: --=_59494bda030d4629113a60ff13935d81--. Sebelum saya menghapusnya, saya mendapatkan kesalahan: Invalid character in input stream.Setelah saya menghapusnya, tidak ada kesalahan decoding dan dibuka dengan baik.

Simon Woodside
sumber
1

Saya dapat memulihkan file menggunakan decoder base64 dan hanya menyalin teks aktual yang merupakan lampiran yang disandikan, bukan sembarang header / footer yang ada di sekitarnya.

DrStalker
sumber