2014-02-07 4 views
4

Я работаю над надстройкой надстройки, где мне нужно установить настраиваемый заголовок. Я использую VS2010 для своего развития.Настройка пользовательского заголовка в Outlook MailItem

Я пытаюсь использовать следующий код, но он не работает.

private void AddUserProperty(Outlook.MailItem mail, string folderEmailId) 
{ 

    Outlook.PropertyAccessor mailPropertyAccessor = null; 
    try 
    { 

     if (string.IsNullOrEmpty(folderEmailId)) 
      return; 

     mailPropertyAccessor = mail.PropertyAccessor; 
     mail.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/string/{00020386-0000-0000-C000-000000000046}/X-WorksiteFolderEmailId", folderEmailId); 

     mail.Save(); 

     try 
     { 
      MessageBox.Show("Existing :" + mail.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/string/{00020386-0000-0000-C000-000000000046}/X-WorksiteFolderEmailId")); 
     } 
     catch (System.Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
    } 
    catch (System.Exception ex) 
    { 
     Logger.Error(ex); 
     MessageBox.Show(ex.Message); 
    } 
    finally 
    { 
     if (mailPropertyAccessor != null) 
      Marshal.ReleaseComObject(mailPropertyAccessor); 
    } 
} 

После сохранения элемента почты, я пытаюсь извлечь тот же пункт для проверки, но это бросает исключение говоря свойство не найдено.

+0

Вы не используете свой mailPropertyAccessor для установки чего-либо. – ohlmar

+0

Вы видите свойство, если вы просматриваете сообщение с помощью OutlookSpy (нажмите кнопку «Сообщение»)? –

ответ

1

Я не вижу проблемы с вашим кодом, хотя получение ссылки непосредственно на PropertyAccessor не требуется. Попытка:

string prop = "http://schemas.microsoft.com/mapi/string/{00020386-0000-0000-C000-000000000046}/X-WorksiteFolderEmailId"; 
    mail.PropertyAccessor.SetProperty(prop, folderEmailId); 

    mail.Save(); 
Смежные вопросы