【问题标题】:Save 'MailItem' object as .msg file将“MailItem”对象保存为 .msg 文件
【发布时间】:2013-03-21 15:14:54
【问题描述】:

按照here概述的代码

如何将MailItem 对象保存为.msg 文件?

或者另一种说法是:如何使用MailItem 对象的属性(发件人、抄送、密件抄送、主题、正文等)创建.msg 文件?

【问题讨论】:

    标签: c# outlook


    【解决方案1】:
    mailItem.SaveAs(savepath);
    

    其中 mailItem 是 Outlook MailItem,保存路径例如:

    String savepath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\" + filename + ".msg";
    

    如果您希望使用 MailItem 主题作为文件名,您可能希望删除文件名的无效字符:

    String filename = mailItem.Subject;
    string invalid = new string(Path.GetInvalidFileNameChars()) + new string(Path.GetInvalidPathChars());
    
    foreach (char c in invalid)
    {
        filename = filename.Replace(c.ToString(), "");
    }
    

    【讨论】:

    • 不客气,我刚刚自己编写了一个相当大的 Outlook 插件,其中也包含此代码。
    • 我会选择您的答案以获得在使用主题作为文件名时引发无效字符问题的额外信息。再次感谢 Toon!
    【解决方案2】:

    使用MailItem.SaveAs(..., olMsg) - 请参阅http://msdn.microsoft.com/en-us/library/office/bb175283(v=office.12).aspx

    或者您的意思是您想从头开始创建一个 MSG 文件,而没有实际的 MailItem 对象驻留在某个 Outlook 文件夹中?在这种情况下,您可以使用Redemption(我是它的作者)及其RDOSession.CreateMessageFromMsgFile 方法(返回RDOMail 对象)。

    【讨论】:

    • 谢谢德米特里!这就是我所期待的>>使用 MailItem.SaveAs(..., olMsg)!
    • 如果这是在 C# 中会很好。目前这是基于 COM 对象的。
    • 您在翻译成 C# 时遇到了什么问题?
    猜你喜欢
    • 1970-01-01
    • 2011-01-26
    • 1970-01-01
    • 2010-11-18
    • 2022-01-09
    • 1970-01-01
    • 2019-11-13
    • 1970-01-01
    • 2016-09-23
    相关资源
    最近更新 更多