从 MIME 消息信息创建 EML 文件
Posted
技术标签:
【中文标题】从 MIME 消息信息创建 EML 文件【英文标题】:Create EML file from MIME Message Information 【发布时间】:2016-06-26 05:37:24 【问题描述】:我可以通过网络邮件访问 IBM Lotus Notes,并希望从网络客户端导出电子邮件。由于公司没有提供工具,所以我决定创建一个工具机制,以EML格式导出重要邮件。我可以访问每封电子邮件的 MIME 消息,如下面的屏幕截图所示。
我想弄清楚的是如何将此 MIME 信息转换为 EML 格式。 我最初将 MIME 消息直接保存为文本文件,以 EML 作为扩展名,它适用于邮件部分在一定程度上,但附件显示不正确。 我想知道从 MIME 到 EML 的转换是否可以通过工具或编程实现。我已经检查了 Go 语言、Perl 和 Java,但无法确定必须将原始 MIME 转换为 EML .
谢谢。
【问题讨论】:
如果“mime 信息”只是指最初的 RFC 822 标头,那么这不足以重建消息。如果是整条消息,那么您应该可以将其保存为 EML 文件。 是的,它可以保存为 EML,但附件似乎没有正确保存,正如我在问题中提到的那样。 那么“MIME 消息信息”框中究竟显示了什么?它是在标头之后停止,还是继续显示消息的其余部分,包括 mime 编码的正文和附件?对于无法访问此网络邮件系统的人来说,您并没有真正提供足够的信息来帮助您。 【参考方案1】:上述问题并不存在。
您的网络邮件软件所称的“MIME 格式”具有误导性。 事实上,这个视图只是“原样”、“原始”地呈现邮件消息(因为它是由邮件代理通过网络传输的)。
定义“MIME”内容的一组 RFC 仅设置了一组关于如何格式化电子邮件消息的约定,以便它们包含非 ASCII 文本、多个部分等。因此它们增加了最初定义的内容RFC 822。
用更简单的话来解释:邮件用户代理(包括您的网络邮件软件)通常会解析每条消息,解释其标题和有效负载部分,并向您展示从消息中提取的信息的高级表示。您演示的这个特定视图仅呈现消息的“源”——因为它存储在邮件服务器上。
现在,“EML 格式”再次具有误导性:这种“格式”的文件仅包含“原始”电子邮件消息。
因此,要根据您的网络邮件为您提供的“EML 格式”邮件消息,您需要做的就是:
-
打开文本编辑器。
获取网络邮件软件中任何邮件的“MIME 视图”。
选择那里的所有文本。
将其粘贴到您的文本编辑器中。
在文本编辑器中保存缓冲区,确保文件名具有“.eml”扩展名。
现在尝试使用任何能够“导入”(或呈现)“EML 格式”文件的软件打开该文件,以确保所有消息数据都在那里(Sylpheed 肯定可以做到)。
因此,您的程序化灵魂将从您的网络邮件中获取“原始”数据并将其按原样保存到文本文件中。
【讨论】:
以上是关于从 MIME 消息信息创建 EML 文件的主要内容,如果未能解决你的问题,请参考以下文章
System.Net.Mail 创建无效的电子邮件和 eml 文件?在主机名中插入额外的点