现在,我正在使用带有PowerShell的Exchange Web服务API从交换中提取特定电子邮件并将其另存为EML文件。这很好用;但是,用户/客户要求电子邮件采用msg格式。我见过有两种方法可以做到这一点:
还有其他选择吗?如果可能的话,我想坚持使用PowerShell,但似乎EWS可能仅限于编写EML文件。
MSG与EML要求(合规性)没有灵活性。
修改 这将在服务器上运行;所以我希望如果没有安装Outlook就可以完成。
答案 0 :(得分:0)
您仍然可以将PowerShell与Outlook对象模型(OOM)一起使用,如果这是您所希望的。
您还可以使用Redemption,它具有比OOM更多的功能(它也可以在服务中运行,不会触发Outlook安全提示等)。
答案 1 :(得分:0)
您可以在代码中显式创建MSG文件(它是一个OLE存储(IStorage)文件,其格式为documented) - 解析EML文件,然后在MSG文件中填充各种MAPI属性。 / p>
您也可以使用Redemption。将EML文件转换为MSG就像
一样简单 RDOSession Session = new RDOSession();
RDOMail Msg = Session.CreateMessageFromMsgFile(@"c:\temp\YourMsgFile.msg");
Msg.Import(@"c:\temp\YourEmlFile.eml", rdoSaveAsType.olRFC822);
Msg.Save();