我正在尝试使用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
在底部):
它还包括其生成的.ics
中的会议.eml
文件:
内容类型:文字/日历;方法=" REQUEST&#34 ;;命名=" meeting.ics的&#34 ;; 字符集=" UTF-8" Content-Transfer-Encoding:base64
然而,问题是,如果是会议取消而非邀请:
如您所见,生成的.eml
不包含会议详细信息,生成的.eml
也不包含任何会议跟踪.ics
(其中{strong 1确实存在于.msg
中。我可以轻松地解析.msg
:
MapiCalendar calendar = (MapiCalendar)msg.ToMapiMessageItem();
为什么在结果.ics
中取消.eml
时,它不是base-64编码?难道我做错了什么?它是Aspose的bug吗?这是正常的行为吗?这里发生了什么?
答案 0 :(得分:1)
您能否在Aspose.Email forum上与我们分享您的输入/输出文件?我们需要了解您采取哪些步骤来加强这个问题,并将进一步帮助您在论坛中。如果我们发现它是API的错误,我们会将其记录下来供我们的产品团队调查。
我与Aspose一起担任开发者布道者。
修改强>:
请尝试mmi.InterpretAsTnef(msg)
。虽然它也应该与Interpret一起使用,但它似乎是API的一个问题。我们正在调查这个问题,但是,你可以同时使用InterpretAsTnef。您可以免费注册www.Aspose.com。无论是付费还是非付费用户,我们的基本支持都是免费的。