我需要在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中定义了一个自定义视图,该视图显示了具有此属性的列。
有办法:
我在这样的电子邮件上设置用户属性:
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;
}