【问题标题】:How to save MailMesage to .msg file?如何将 MailMessage 保存到 .msg 文件?
【发布时间】:2016-09-23 20:13:51
【问题描述】:

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

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

【问题讨论】:

  • 您将文件保存在哪里?是C:驱动器吗?您是否有机会按照错误消息中的说明检查权限?
  • @EugeneAstafiev 我保存到 D:,但这没问题。我可以使用和发送我的应用程序创建的那些文件。我只是在主题邮件中显示越南语字符有问题。谢谢。

标签: c# outlook mailmessage msg eml


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    您究竟是如何创建 MSG 文件的?它与 EML 文件完全不同 - 请参阅 Difference between a .msg file and a .eml file

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

    如果使用Redemption 是一个选项,您可以使用Session.CreateMessageFromMsgFile 创建一个新的MSG 文件和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
    

    【讨论】:

    猜你喜欢
    • 2010-11-18
    • 2011-01-26
    • 2011-09-11
    • 2015-10-19
    • 1970-01-01
    • 2021-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多