如何将 MailMesage 保存到 .msg 文件?

How to save MailMesage to .msg file?

我需要将 MailMessage 保存到 .msg 文件。在本文中有一个解决方案,但是当我另存为 .msg 文件时,它在 MS Outlook 中不起作用。只有当我保存 as.eml 文件时它才有效。
How to save MailMessage object to disk as *.eml or *.msg file

请注意,我在打开 .msg 文件时得到:
无法打开文件:路径。该文件可能不存在,您可能没有打开它的权限,或者它可能在另一个程序中打开。右键单击包含该文件的文件夹,然后单击“属性”检查您对该文件夹的权限。
谢谢大家

您究竟是如何创建 MSG 文件的?它与 EML 文件完全不同 - 请参阅

MSG 文件格式为二进制 IStorage 文件,其格式为 documented。您可以解析 EML (MIME) 文件并一次复制一个 属性 到以编程方式创建的 MSG 文件。

如果使用 Redemption is an option (I am its author), you can use Session.CreateMessageFromMsgFile to create a new MSG file and RDOMail.Import 方法导入您现有的 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

在 Interop Outlook 中,这是将邮件本地保存为 .msg 的方法。

mailItem.SaveAs(@"c:\path\to\save\mail.msg", Outlook.OlSaveAsType.olMSG);