Outlook 修改和 Save() MailItems - 速度慢
我需要修改 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;
}
I need to modify many MailItems in Outlook 2007.
I need the mails to immediately refresh in the main Outlook grid - the only way to do this I found is to call 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;
}
}
The problem is that Save() is slow on IMAP account - 1s per 1 Save() call, probably due to communication with server. On POP3 account it is ok.
The modification I need to make on every email is just changing a User property. I have a custom View defined in Outlook that shows a column with this property.
Is there a way to:
- make the user property local to PST, so that no communication with server is done on Save() ?
- do all the Save() calls in one batch ?
I'm setting user property on emails like this:
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;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论