我尝试使用 msgkit 在 C# 中将 .eml 转换为 .msg,所以我的
.eml
文件看起来像这样
Date: Thu, 30 Jan 2020 12:09:26 +0530
它是一个简单的 .eml 文件,我尝试使用在线转换器将 .eml 转换为 .msg,当从 ole 复合查看器查看时,文件看起来几乎相同,但 msgkit 转换后的文件在打开时不会在预览中显示收到的日期外表。在线转换显示正确的接收日期,但使用 msgkit 转换的显示
None
。我想知道 Outlook 在预览时获取收到的日期时会查找什么参数。我也尝试从 https://github.com/vikramersid/msg_parser/blob/master/msg_parser/properties/ms_props_id_map.py 提供不同的属性
确保已设置
PR_CLIENT_SUBMIT_TIME
(0x00390040
) 和 PR_MESSAGE_DELIVERY_TIME
(0x0E060040
) MAPI 属性。
您可以在 OutlookSpy(我是其作者)中查看生成的 MSG 文件及其属性 - 单击 OpenIMsgOnIStg 按钮。
另外,如果使用 Redemption (我也是它的作者)是一个选项,那么将 EML 转换为 MSG 就像
一样简单RDOSession session = new RDOSession();
RDOMail msg = session.CreateMessageFromMsgFile(@"c:\temp\test.msg");
msg.Import(@"c:\temp\test.eml", rdoSaveAsType.olRFC822);
msg.Save();