我遇到的问题是,当我向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();
}
答案 0 :(得分:1)
请显示代码的相关代码段,并确保调用MailItem.Save。另请注意,如果使用缓存模式,更改将花费几分钟时间同步到Exchange,然后再转移到其他用户,因此始终存在延迟。你最好使用一些外部同步机制而不是用户属性。