首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Outlook电子邮件分类

Outlook电子邮件分类
EN

Stack Overflow用户
提问于 2018-05-23 12:47:16
回答 1查看 755关注 0票数 1

当邮件到达时,我使用Outlook来阅读和分类电子邮件。

这是我使用的事件:

代码语言:javascript
复制
 Outlook.Items items;
 items = inbox.
 items.ItemAdd += new Outlook.ItemsEvents_ItemAddEventHandler(items_ItemAdd);

在内部开关语句后面,我有这样的代码:

代码语言:javascript
复制
case "Subject":
    mail.Categories = "Category";
    mail.UnRead = false; break;
default:
    mail.Categories = "Attention needed";
    mail.UnRead = false;
    mail.Save();
    break;

问题是,有时收件箱每秒接收5封电子邮件,只对第一封和最后一封电子邮件进行分类,而另一封则是在没有类别的情况下得到UnRead = false。

还有其他我可以尝试的事情吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-26 22:08:51

当收到多个项时,不会触发ItemAdd事件(典型情况是,超过16项)。这是OOM中已知的。

相反,您需要订阅Application类的Application事件,该事件在收件箱中收到新项时触发。

此事件对Microsoft处理的每个接收到的项触发一次。该项可以是几种不同的项类型之一,例如,MailItemMeetingItemSharingItemEntryIDsCollection字符串包含对应于该项的条目ID。请注意,此行为与事件的早期版本不同,因为“Entry `EntryIDCollection”包含自上次事件触发以来在收件箱中接收的所有项的逗号分隔的条目in列表。

当新消息到达收件箱并在客户端规则处理发生之前,将触发NewMailEx事件。您可以使用EntryIDCollection数组中返回的条目ID来调用NameSpace.GetItemFromID方法并处理该项。使用此方法时要小心,以尽量减少对Outlook性能的影响。但是,根据客户端计算机上的设置,在新邮件到达收件箱后,可以异步地发生垃圾邮件筛选和将新邮件从收件箱移动到另一个文件夹的客户端规则等进程。您不应该假设在这些事件触发后,收件箱中的项目数量总是会增加一项。

此外,您可能会发现以下文章很有帮助:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50488836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档