Outlook 2010使用兑换保存之前设置发送邮件标志

时间:2014-08-27 19:15:14

标签: c# outlook-2010 outlook-redemption

背景

我已成功将电子邮件从较旧的(专有电子邮件系统)转换为Outlook邮件(2010)。这些转换后的电子邮件将作为.msg文件保存在服务器(不是Exchange服务器,只是文件服务器)上。我正在编写一个应用程序,它将显示这些保存的消息供用户浏览(独立应用程序。不是Outlook)。在做了一些测试并查看Outlook文档后,我意识到保存的消息将显示为草稿/撰写模式。我还意识到我需要在第一次保存创建的消息之前设置发送标志(以及其他可能的其他字段)(可能使用扩展MAPI而不是Outlook对象模型)。这将使消息显示为已发送。目前,我只是将赎回视为一种选择(似乎是一个很棒的工具)。我正在使用C#,Outlook 2010,我的应用程序的兑换dll。

我正在探索的解决方案:

  1. 逐步完成转换后的消息,制作新项目。然后用 兑换以创建SafeMailItem并将必要的字段复制到 Redemption邮件项目并设置适当的标志。

    解决方案1的问题:

    • a)转换后的消息也可以是用户发送给我们的电子邮件 在我们的交换服务器GAL之外。似乎Redemption不允许 sentonbhalfof(只在兑换中读取)被设置为outlook对象模型。有没有人有类似的问题,你尝试过什么工作?
  2. 使用扩展MAPI创建消息并设置所需的消息 属性。

    解决方案2的问题:

    a)是否有人使用扩展MAPI创建Outlook邮件(.msg文件)并设置必要的已发送属性?如果您不介意包含示例或示例的链接,将不胜感激。

  3. 我很感激任何有助于(解决方法,推荐,批评)与我想要实现的目标的输入。感谢您抽出宝贵时间阅读我的问题。

1 个答案:

答案 0 :(得分:0)

为什么需要使用SafeMailItem对象?它与Outlook对象模型一起工作(您需要设置SafeMailItem.Item属性)? Safe * Item对象仅公开Outlook对象模型阻止的属性和方法。

为什么不使用RDO系列对象?使用RDOSession。GetMessageFromMsgFile(返回RDOMail对象),将RDOMail.Sent属性设置为true,然后调用RDOMail.Save。