Классификация электронной почты Outlook - PullRequest
0 голосов
/ 23 мая 2018

Я использую Outlook Interop для чтения и категоризации электронной почты, когда они приходят.

Это событие, которое я использую:

 Outlook.Items items;
 items = inbox.
 items.ItemAdd += new Outlook.ItemsEvents_ItemAddEventHandler(items_ItemAdd);

А внутри оператора Switch позже у меня естькод, подобный следующему:

case "Subject":
    mail.Categories = "Category";
    mail.UnRead = false; break;
default:
    mail.Categories = "Attention needed";
    mail.UnRead = false;
    mail.Save();
    break;

Проблема в том, что иногда папка «Входящие» получает 5 электронных писем в секунду и классифицирует только первое и последнее электронное письмо, в то время как другие просто получают UnRead = false безКатегория.

Могу ли я попробовать еще какие-нибудь события?

1 Ответ

0 голосов
/ 27 мая 2018

Событие ItemAdd не вызывается при получении нескольких элементов (обычно более шестнадцати).Это известный выпуск в OOM.

Вместо этого необходимо подписаться на событие NewMailEx класса Application, которое запускается при получении нового элемента в папке «Входящие».

Это событие запускается один раз для каждого полученного элемента, который обрабатывается Microsoft Outlook.Элемент может быть одним из нескольких различных типов элементов, например, MailItem, MeetingItem или SharingItem.Строка EntryIDsCollection содержит идентификатор записи, соответствующий этому элементу.Обратите внимание, что это поведение изменилось по сравнению с предыдущими версиями события, когда EntryIDCollection содержал список разделенных запятыми идентификаторов записи всех элементов, полученных в папке «Входящие» с момента последнего запуска события.

The NewMailEx Событие возникает, когда новое сообщение поступает в папку «Входящие» и до обработки правила клиента.Вы можете использовать идентификатор записи, возвращенный в массиве EntryIDCollection, чтобы вызвать метод NameSpace.GetItemFromID и обработать элемент.Используйте этот метод с осторожностью, чтобы минимизировать влияние на производительность Outlook.Однако, в зависимости от настроек на клиентском компьютере, после поступления нового сообщения в папку «Входящие» такие процессы, как фильтрация нежелательной почты и правила клиента, которые перемещают новое сообщение из папки «Входящие» в другую папку, могут происходить асинхронно.Не следует полагать, что после возникновения этих событий вы всегда получите увеличение количества элементов в папке «Входящие» на один элемент.

Также вам могут пригодиться следующие статьи:

...