将文本格式的JPEG从电子邮件消息源转换回JPEG

时间:2011-11-08 09:07:15

标签: email jpeg attachment

前一段时间我收到了一封电子邮件,上面附有图片附件。从那时起,似乎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的。

这段文字是否代表我遗失的图片?我不相信有一个程序可以为我转换这个,所以我愿意编写我自己的程序来做到这一点。问题是,这甚至可能吗?

1 个答案:

答案 0 :(得分:5)

是的,这完全可以通过各种方法实现。如果您拥有整个消息源,则可以将其保存到文件(类似*.eml)中并在邮件客户端(例如Mozilla Thunderbird)中打开;这应该显示整个消息,包括附加的图像。

如果没有,它仍然可能:正如你从标题中看到的那样,图像是base64编码的。您需要恢复此转换 - 使用您自己的代码(例如PHP具有base64_decode()),或通过在线提供的各种base64解码器(例如this)。要解码的部分是在这种情况下以/9j/4AAQSk开头的块。重命名生成的文件photo.JPG(如电子邮件标题中所示),您就完成了。

请注意,这需要您验证是否已将整个base64编码的文件放入解码器 - base64没有用于检测文件末尾的标记。