2014-10-18 2 views
0

У меня возникла проблема: при добавлении пользовательского UserProperty в Outlook MailItem он не синхронизируется с другими подключенными Outlook.VSTO Outlook Пользовательские свойства (пользовательские) не синхронизируются

Что я могу сделать, чтобы заставить Outlook синхронизировать всю электронную почту?

Моей Overal проблема: У меня есть общий почтовый ящик обмена, открытая на два клиентов (в 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

Пожалуйста, покажите соответствующий фрагмент кода и убедитесь, что вы звоните MailItem .Сохранить. Также имейте в виду, что всегда будет отставание, так как изменения будут занимать пару минут для синхронизации с Exchange, а затем с другим пользователем, если используется кешированный режим. Вам лучше использовать какой-то внешний механизм синхронизации, а не пользовательский.

+0

Спасибо! Я обновил свой вопрос: я работаю в не кешированном режиме. Когда я меняю тему письма, она синхронизируется сразу (1-2 секунды), поэтому я предполагаю, что нужно также синхронизировать другую информацию !? – Gerwald

+0

Если у другого пользователя есть одно и то же сообщение, открытое или указанное в коде, Outlook не увидит изменения до тех пор, пока сообщение не будет полностью разыменовано и не будет повторно открыто. Вы можете увидеть изменения в другом почтовом ящике в OutlookSpy (нажмите кнопку «Сообщение»)? –

Смежные вопросы