Outlook修改和Save()MailItems - 慢

时间:2009-10-07 16:22:09

标签: performance outlook vsto outlook-2007 outlook-addin

我需要在Outlook 2007中修改许多MailItem。

我需要邮件立即在主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次Save()调用1次,可能是由于与服务器的通信。在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 个答案:

没有答案