仅在本地保存邮件属性(Outlook)

时间:2010-02-12 21:23:04

标签: outlook vsto add-in exchange-server mapi

Outlook加载项如何在邮件上设置MAPI属性(例如,正文内容),但只将其保存在本地缓存中(而不是将其发送回交换服务器)?我已经通过一些加密插件看到了这一点。

我愿意使用几乎任何可以解决问题的API。

谢谢!

1 个答案:

答案 0 :(得分:1)

所以我在MSDN中发现了这一点。 How to: Manage a Message in an OST Without Invoking a Synchronization in Cached Exchange Mode斯蒂芬格里芬在2005年首次谈到这一点here

我还没有机会测试它,但看起来你可以修改OST而不是触发同步。诀窍是使用IID_IMessageRaw而不是IID_IMessage请求消息,就像通常那样。

您可能遇到的唯一问题是它似乎需要使用扩展MAPI,因此需要使用C ++。问题列表VSTO上的标签,所以我不确定要求可能仍然是什么。

提供的示例是:

HRESULT HrOpenRawMessage (
    LPMDB lpMSB, 
    ULONG cbEntryID, 
    LPENTRYID lpEntryID, 
    ULONG ulFlags, 
    LPMESSAGE* lpMessage)
{
    ULONG ulObjType = NULL;

    HRESULT hRes = lpMDB->OpenEntry(
        cbEntryID,
        lpEntryID,
        IID_IMessageRaw,
        ulFlags,
        &ulObjType,
        (LPUNKNOWN*) lpMessage));

   return hRes;
}