我需要将MailMessage保存到.msg文件中。在本文中有一个解决方案,但当我保存为.msg文件时,它在MS Outlook中不起作用。保存as.eml文件时,这只是很棒的工作
How to save MailMessage object to disk as *.eml or *.msg file
请注意,我在打开.msg文件时得到:
无法打开文件:路径。该文件可能不存在,您可能没有权限打开它,或者它可能在另一个程序中打开。右键单击包含该文件的文件夹,然后单击“属性”,检查该文件夹的权限。
谢谢大家。
答案 0 :(得分:4)
在Interop Outlook中,这是将邮件本地保存为.msg。
的方法mailItem.SaveAs(@"c:\path\to\save\mail.msg", Outlook.OlSaveAsType.olMSG);
答案 1 :(得分:2)
您是如何创建MSG文件的?它与EML文件完全不同 - 请参阅Difference between a .msg file and a .eml file
MSG文件格式是二进制IStorage文件,其格式为documented。您可以解析您的EML(MIME)文件,并一次将一个属性复制到以编程方式创建的MSG文件。
如果使用Redemption是一个选项,您可以使用Session.CreateMessageFromMsgFile创建新的MSG文件和RDOMail。导入方法以导入现有的EML文件。
set Session = CreateObject("Redemption.RDOSession")
set Msg = Session.CreateMessageFromMsgFile("c:\temp\test.msg")
Msg.Sent = true '//since Import does not copy this property
Msg.Import("c:\temp\test.eml", 1024) ' //1024 is olRfc822
Msg.Save