Как извлечь вложение из тела письма (закодировано как base64)


13

Как я могу извлечь вложения из электронного письма, когда они приходят, закодированные в теле письма, например:

------ =_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--

Вам нужно будет найти инструмент UUDECODE, чтобы преобразовать ASCII в правильный файл.

На какой операционной системе или с какой архитектурой почты (локальная доставка Unix, fetchmail, Thunderbird, Outlook, ...)?
Жиль "ТАК ... перестать быть злым"

Ответы:


2

Сохраните письмо в текстовый файл с расширением .uueи распакуйте вложение с помощью де-архиватора.


17

Скопируйте только закодированный в base64 текст в новый текстовый файл foo.txt.

base64 --decode foo.txt > bar.pdf

Я только что декодировал поток base64, у которого был дополнительный бит на конце, который мне пришлось удалить. Выглядело это так : --=_59494bda030d4629113a60ff13935d81--. Перед тем, как удалить его, я получил ошибку: Invalid character in input stream.после того, как я удалил его, ошибок декодирования не было, и он открылся просто отлично.


1

Я смог восстановить файл, используя декодер base64 и скопировав только фактический текст, который был закодированным вложением, а не какой-либо из окружающих заголовков / колонтитулов.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.