使用 Aspose.Email 缺少日历数据的 .msg 到 .eml 文件

.msg to .eml file using Aspose.Email missing Calendar data

我正在尝试使用 Aspose.Email for .NET.msg 文件格式转换为 .eml 文件格式。非常琐碎:

var msg = MapiMessage.FromFile(@"example.msg");
MailMessageInterpretor mmi = MailMessageInterpretorFactory.Instance.GetIntepretor(msg.MessageClass);
MailMessage eml = mmi.Interpret(msg);
eml.Save(@"example.eml");

如果是日历邀请,我会在 .msg 文件和 .eml 文件中看到它,如下所示(.msg 在上面,.eml在底部):

它还在它生成的 .eml 中包含会议 .ics 文件:

Content-Type: text/calendar; method="REQUEST"; name="meeting.ics"; charset="utf-8" Content-Transfer-Encoding: base64

但是,问题是,如果是会议取消而不是邀请:

结果 .eml 如您所见, 包含会议详细信息,结果 .eml 也不包含任何会议痕迹 .ics 存在于 .msg 中)。我可以轻松地为它解析 .msg

MapiCalendar calendar = (MapiCalendar)msg.ToMapiMessageItem();

为什么不对 .ics 进行 base-64 编码以在生成的 .eml 中进行取消?难道我做错了什么?这是一个 Aspose 错误吗?这是正常行为吗?这是怎么回事?

能否在 Aspose.Email forum 上与我们分享您的 input/output 文件?我们需要了解您采取了哪些步骤来引发此问题,并将在论坛中进一步帮助您。如果我们发现它是 API 的错误,我们将记录它以供我们的产品团队进行调查。

我在 Aspose 工作,担任开发人员布道师。

编辑:

请尝试mmi.InterpretAsTnef(msg)。虽然它也应该与 Interpret 一起工作,但它似乎是 API 的问题。我们正在调查这个问题,但是,您可以同时使用 InterpretAsTnef。您可以在 www.Aspose.com 免费注册。我们的基本支持对所有付费用户和非付费用户都是免费的。