我们有一个网络应用程序,允许用户查看电子邮件在一个表和双击他们打开他们在outlook。
为此,我们使用(简化的)代码段:
var email = Session.OpenSharedItem(filename) as MailItem;这适用于.msg消息,但表中也列出了.eml文件。OpenSharedItem方法无法打开.eml文件(https://msdn.microsoft.com/en-us/library/bb176433(v=office.12).aspx )
因此,我们希望将这些.eml文件转换为.msg文件。
到目前为止,我们只在付费的第三方库(如赎罪 )中找到答案,而我们无法这样做。还有其他解决方案吗?
编辑:更清楚地表明,我们不能使用付费第三方库。
发布于 2022-04-26 02:18:58
您可以使用IConverterSession对象(本机Outlook转换器),但它只能在C++或Delphi中访问。还请注意,在Outlook 2016中,只有在运行outlook.exe地址空间(例如从COM加载项)运行时,才能创建该对象的实例。
您还可以创建自己的转换器,并使用第三方库一次创建一个MIME头的EML文件(我过去使用过卢米索夫特 )。
如果使用赎罪 (我是它的作者)是一个选项,它可以在服务中运行,与Outlook对象模型不同),并且转换非常简单
set Session = CreateObject("Redemption.RDOSession")
set Msg = Session.GetMessageFromMsgFile("c:\temp\test.msg")
Msg.SaveAs "c:\temp\test.eml", 1031https://stackoverflow.com/questions/29493393
复制相似问题