Outlook изменить и сохранить () MailItems - медленно

Мне нужно изменить многие MailItems в Outlook 2007.

Мне нужно, чтобы письма немедленно обновлялись в основной сетке Outlook - единственный найденный способ сделать это - вызвать MailItem.Save().

foreach (var item in folder.Items)
{
    var mail = item as MailItem;
    if (mail != null)     // process only MailItems
    {
        setUserProperty(mail, userPropKey, "speed test");  
        mail.Save();      // Save() to make the grid row redraw
        if (++cnt == 10)  // stop after 10 mails
            break;
    }
}

Проблема в том, что Save () работает медленно для учетной записи IMAP - 1 с на 1 вызов Save (), вероятно, из-за связи с сервером. На POP3 аккаунте все нормально.

Модификация, которую я должен сделать в каждом письме, это просто изменение свойства пользователя. У меня есть пользовательский вид, определенный в Outlook, который показывает столбец с этим свойством.

Есть ли способ:

  • сделать свойство пользователя локальным по отношению к PST, чтобы при Save () не происходило взаимодействие с сервером?
  • сделать все вызовы Save () в одном пакете?

Я устанавливаю свойство пользователя на электронные письма, как это:

void setUserProperty(Outlook.MailItem item, string key, string value)
{
     item.UserProperties.Add(key, Outlook.OlUserPropertyType.olText, true, Outlook.OlFormatText.olFormatTextText);
     item.UserProperties[key].Value = value;
}

0 ответов

Другие вопросы по тегам