VSTO Outlook用户属性(自定义)未同步
本文关键字:同步 自定义 Outlook 用户 属性 VSTO | 更新日期: 2023-09-27 18:27:03
我遇到一个问题,当我将自定义UserProperty
添加到Outlook MailItem
时,它不会同步到其他连接的Outlook。
我可以做些什么来强制Outlook同步整个电子邮件?
我的总体问题:我有一个共享的Exchange邮箱,在两个客户端上打开(在Outlook中)我想锁定一个邮件项目,如果它在一个Outlook中打开,并向第二个Outlook用户显示一条消息,如"用户XX当前正在阅读此电子邮件"
我解决问题的方法:正在创建Outlook插件。当用户"A"打开电子邮件时,我将向MailItem
对象添加一个"LockingUser"UserProperty
。如果用户"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();
}
请显示代码的相关片段,并确保调用MailItem.Save。还要记住,始终会有延迟,因为如果使用缓存模式,更改将需要几分钟的时间同步到Exchange,然后同步到另一个用户。您最好使用一些外部同步机制,而不是用户属性。