VSTO Outlook用户属性(自定义)未同步

时间:2014-10-18 16:01:29

标签: c# vsto exchange-server sync outlook-addin

我遇到的问题是,当我向Outlook UserProperty添加自定义MailItem时,它不会同步到其他已连接的Outlook。

如何强制Outlook同步整个电子邮件?

我的一些问题: 我有一个共享的Exchange邮箱,在两个客户端上打开(在Outlook中) 我想锁定一个邮件项目,如果它在一个Outlook中打开并向第二个Outlook用户显示一条消息,例如"用户XX当前正在阅读此电子邮件"

我解决问题的方法: 创建Outlook插件。 当用户" A"正在打开电子邮件,我正在添加一个" LockingUser"对UserProperty对象MailItem。如果用户" B"正在试图打开电子邮件,我首先要看一下" LockingUser"财产存在。 我已禁用缓存模式。 我试图更新电子邮件的主题:这完美地工作并立即同步(但不是我的问题的解决方案)

private void SetLockingUser(Outlook.MailItem mail)
{
    var lockingUserProperty = mail.UserProperties.Find("LockingUser");
    if (lockingUserProperty != null)
    {
        MessageBox.Show("Email locked by: " + lockingUserProperty.Value);
        return;
    }

    var identity = System.Security.Principal.WindowsIdentity.GetCurrent();
    var username = identity != null ? identity.Name : "";

    lockingUserProperty = mail.UserProperties.Add("LockingUser", Outlook.OlUserPropertyType.olText, false, 1);
    lockingUserProperty.Value = username;
    mail.Save();
}

1 个答案:

答案 0 :(得分:1)

请显示代码的相关代码段,并确保调用MailItem.Save。另请注意,如果使用缓存模式,更改将花费几分钟时间同步到Exchange,然后再转移到其他用户,因此始终存在延迟。你最好使用一些外部同步机制而不是用户属性。