【问题标题】:Outlook doesn't show date on the preview when eml is converted to msg using msgkit使用 msgkit 将 eml 转换为 msg 时,Outlook 不会在预览中显示日期
【发布时间】:2022-04-29 11:44:26
【问题描述】:

我尝试使用 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/vikramarsid/msg_parser/blob/master/msg_parser/properties/ms_props_id_map.py提供不同的属性@

【问题讨论】:

  • msgkit 带有完整的源代码,为什么不单步执行它,看看它的作用呢?
  • @Dmitry 我确实介入并看到它做了什么我确实解决了一些问题,但由于所有子字符串字段都在在线转换的和msg kit转换的复合文件看起来一样

标签: c# .net outlook


【解决方案1】:

确保已设置 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();

【讨论】:

    猜你喜欢
    • 2015-10-27
    • 2015-06-12
    • 2023-03-14
    • 2018-06-23
    • 2011-09-18
    • 2018-11-22
    • 2019-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多