背景
我已成功将电子邮件从较旧的(专有电子邮件系统)转换为Outlook邮件(2010)。这些转换后的电子邮件将作为.msg文件保存在服务器(不是Exchange服务器,只是文件服务器)上。我正在编写一个应用程序,它将显示这些保存的消息供用户浏览(独立应用程序。不是Outlook)。在做了一些测试并查看Outlook文档后,我意识到保存的消息将显示为草稿/撰写模式。我还意识到我需要在第一次保存创建的消息之前设置发送标志(以及其他可能的其他字段)(可能使用扩展MAPI而不是Outlook对象模型)。这将使消息显示为已发送。目前,我只是将赎回视为一种选择(似乎是一个很棒的工具)。我正在使用C#,Outlook 2010,我的应用程序的兑换dll。
我正在探索的解决方案:
逐步完成转换后的消息,制作新项目。然后用 兑换以创建SafeMailItem并将必要的字段复制到 Redemption邮件项目并设置适当的标志。
解决方案1的问题:
使用扩展MAPI创建消息并设置所需的消息 属性。
解决方案2的问题:
a)是否有人使用扩展MAPI创建Outlook邮件(.msg文件)并设置必要的已发送属性?如果您不介意包含示例或示例的链接,将不胜感激。
我很感激任何有助于(解决方法,推荐,批评)与我想要实现的目标的输入。感谢您抽出宝贵时间阅读我的问题。
答案 0 :(得分:0)
为什么需要使用SafeMailItem对象?它与Outlook对象模型一起工作(您需要设置SafeMailItem.Item属性)? Safe * Item对象仅公开Outlook对象模型阻止的属性和方法。
为什么不使用RDO系列对象?使用RDOSession。GetMessageFromMsgFile(返回RDOMail对象),将RDOMail.Sent属性设置为true,然后调用RDOMail.Save。