Временное решение:
- Мы обнаружили, что воссоздание почтового ящика пользователя решило проблему. Это, конечно, довольно разрушительно, отнимает много времени и вызывает серьезные перебои для конечного пользователя.
Затем я попросил клиента взять таблицу EventHistory для затронутого почтового ящика. Дополнительную информацию об использовании и доступе к таблице EventHistory для почтовых ящиков и баз данных можно найти здесь:
http://blogs.technet.com/b/exchange/archive/2013/06/24/adventures-in-querying-the-eventhistory-table.aspx
Таблица EventHistory, по сути, позволяет вам точно видеть, что меняется (какие события происходят) в почтовом ящике или базе данных. В этом случае мы хотели отследить, что происходило с приглашением на встречу в календаре при получении почтовым ящиком, и удалялось ли что-то, перемещалось и т.д.
После захвата таблицы EventHistory мы смогли найти приглашение, и это ParentEntryId. Согласно блогу выше, ParentEntryId - это папка, в которой находится элемент. Большой!
Мы вошли в MFCMapi (http://mfcmapi.codeplex.com/) и смогли использовать ParentEntryid, чтобы выяснить, куда отправляются сообщения!
Итак, оказалось, что сообщения собирались в папку «Расписание».
А?
Папка «Расписание» - это папка в почтовом ящике, расположенная в корневом каталоге (скрытая от Outlook и других клиентов). Обычно это папка, используемая для информации Свободен / Занят, но она не предназначена для доставки почты. Почему мы доставляли в эту папку?
Затем я попросил клиента собрать дополнительный след. Для тех из вас, кто не знает, дополнительная трассировка - это инструментальная поддержка, позволяющая увидеть, что код делает на очень высоком уровне. Думайте об этом как - читая комментарии в коде - они дают вам представление о том, что происходит, но не обязательно почему.
Но в этом случае Экстра дал мне золото. Когда сообщение было сброшено в почтовый ящик драйвером магазина, я увидел следующее:
overridden by receive-folder table: True
В своей лаборатории и с другими приглашениями на встречи в календаре, отправленными незатронутым пользователям в среде Заказчика, я всегда видел:
overridden by receive-folder table: False
В почтовом ящике есть таблица, называемая таблицей получения папок, а именно таблица классов сообщений и папок, в которые они должны доставляться. Сторонние разработчики программного обеспечения могут воспользоваться этим, чтобы пользовательские типы сообщений, которые пользователь не должен видеть, могли доставляться и приниматься их программным обеспечением (https://msdn.microsoft.com/en-us/library/ office / cc815405.aspx). Вы можете увидеть эту таблицу в MFCMapi:
И Бинго - была ассоциация класса IPM.SCHEDULE.MEETING:
Итак, чтобы удалить ассоциацию в MFCMapi:
Затем:
После этого пользователь, наконец, получил приглашения на встречи в календаре, доставленные в папку «Входящие».
Таким образом, в конце концов, у нас есть решение, кроме воссоздания почтового ящика, однако никакой реальной причины не существует.
источник