Преобразование JPEG в текстовом формате из источника сообщения электронной почты обратно в JPEG - PullRequest
5 голосов
/ 08 ноября 2011

Я недавно получил письмо с вложенным изображением.С тех пор кажется, что hotmail прекратил размещать для меня изображение, так как когда я открываю сообщение, изображение больше не доступно.

Однако источник сообщения по-прежнему не поврежден, и, если я не ошибаюсь, источник сообщения - в текстовом виде - также содержит изображение.

Проблема, конечно, в текстовом виде.Часть, которая (я считаю) содержит изображение, выглядит примерно так: (только первые несколько строк)

- Apple-Mail-2--733971985

Содержание-Диспозиция: встроенная;filename = photo.JPG Content-Id: <3F8BDC26-81F3-4BA2-9071-53E78CB3DB63 / photo.JPG>

Тип содержимого: image / jpeg;Имя = Photo.jpg Content-Transfer-Encoding: base64

1015 * / 9J / 4AAQSkZJRgABAQEASABIAAD / 4gxYSUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAABtbnRyUkdC IFhZWiAHzgACAAkABgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA9tYAAQAA AADTLUhQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFj cHJ0AAABUAAAADNkZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFlaAAACGAAA ABRnWFlaAAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2dWVkAAAD TAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD + AAAABRtZWFzAAAEDAAAACR0ZWNoAAAEMAAAAAxyVFJD

Он был послан от моего iPhone в Hotmail.

Является ли этот текст изображением, которое я пропускаю?Я не верю, что есть программа, которая может преобразовать это для меня, поэтому я готов написать свою собственную программу для этого.Вопрос в том, возможно ли это?

1 Ответ

5 голосов
/ 08 ноября 2011

Да, это вполне возможно различными способами.Если у вас есть весь источник сообщения, вы можете сохранить его в файл (что-то вроде *.eml) и открыть его в почтовом клиенте (например, Mozilla Thunderbird);это должно показать вам все сообщение, включая прикрепленное изображение.

Если нет, то это все еще возможно: как видно из заголовков, изображение закодировано в base64.Вам нужно отменить это преобразование - либо используя свой собственный код (например, PHP имеет base64_decode () ), либо через различные декодеры base64, доступные онлайн (например, this ).Часть, которую вы хотите декодировать, - это блок, начинающийся с /9j/4AAQSk в этом случае.Переименуйте полученный файл photo.JPG (как указано в заголовках электронной почты), и все готово.

Обратите внимание, что для этого необходимо убедиться, что вы пропустили весь кодированный в base64 файл через декодер -У base64 нет маркера для определения конца файла.

...