前一段时间我收到了一封电子邮件,上面附有图片附件。从那时起,似乎hotmail已停止为我托管图像,因为当我打开邮件时,图像不再可用。
但是,消息源仍然完好无损,如果我没有错,消息源 - 以文本形式 - 也包含图像。
问题当然是文本形式。 (我相信)包含图像的部分看起来像这样:(只是前几行)
- 苹果邮件2--733971985
内容 - 处置:内联; filename = photo.JPG Content-Id: < 3F8BDC26-81F3-4BA2-9071-53E78CB3DB63 / photo.JPG>
内容类型:image / jpeg; name = photo.JPG Content-Transfer-Encoding: BASE64
/ 9J / 4AAQSkZJRgABAQEASABIAAD / 4gxYSUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAABtbnRyUkdC IFhZWiAHzgACAAkABgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA9tYAAQAA AADTLUhQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFj cHJ0AAABUAAAADNkZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFlaAAACGAAA ABRnWFlaAAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2dWVkAAAD TAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD + AAAABRtZWFzAAAEDAAAACR0ZWNoAAAEMAAAAAxyVFJD
它是从我的iPhone发送到Hotmail的。
这段文字是否代表我遗失的图片?我不相信有一个程序可以为我转换这个,所以我愿意编写我自己的程序来做到这一点。问题是,这甚至可能吗?
答案 0 :(得分:5)
是的,这完全可以通过各种方法实现。如果您拥有整个消息源,则可以将其保存到文件(类似*.eml
)中并在邮件客户端(例如Mozilla Thunderbird)中打开;这应该显示整个消息,包括附加的图像。
如果没有,它仍然可能:正如你从标题中看到的那样,图像是base64编码的。您需要恢复此转换 - 使用您自己的代码(例如PHP具有base64_decode()),或通过在线提供的各种base64解码器(例如this)。要解码的部分是在这种情况下以/9j/4AAQSk
开头的块。重命名生成的文件photo.JPG
(如电子邮件标题中所示),您就完成了。
请注意,这需要您验证是否已将整个base64编码的文件放入解码器 - base64没有用于检测文件末尾的标记。