Outlook VBA для прослушивания почты - не видя темы mailitem

У меня есть код VBA на основе Outlook, который читает все входящие письма.
Этот код использует MailItem для просмотра каждой почты, просматривающей отправителя, также и темы и для вложений.
В основе кода используется urn:schemasфункция, которая выполняет запрос sql в папке «Входящие».
Таким образом, если новая почта приходит, процесс, который запускает, смотрит на весь почтовый ящик каждый раз, а не только на эту почту. (Входящие сохраняются в порядке и элементы перемещаются при обработке).

Сердце запроса выглядит так:

Dim Filter as String 
Filter = "urn:schemas:mailheader:subject  like  '%That report - %'"

Dim iMailMatch As Object
Set iMailMatch = Inbox.items.Find(Filter)

Проблема, с которой я сталкиваюсь, заключается в том, что (иногда), когда машина заблокирована (не вышла из системы), макрос будет запускаться в новое почтовое событие, но он не найдет ничего, даже если есть письма, которые соответствуют.
Когда я разблокирую терминал, и приходит новая почта - процесс срабатывает, и он автоматически поднимает / обрабатывает почту, чего ранее не видел.

Проблема очевидна только тогда, когда терминал заблокирован. Таким образом, я могу только думать, что это связано с привилегиями доверия.
Бывают случаи, когда огонь успешно завершен, когда терминал заблокирован, но похоже, что только когда почта приходит вскоре после того, как терминал заблокирован.

vba,email,outlook,outlook-vba,

1

Ответов: 1


0

Не искать. Событие NewMailEx передает идентификатор записи нового элемента в обработчик событий - откройте элемент Namespace.GetItemFromID, затем прочитайте MailItem.Subjectсвойство.

VBA, электронная почта, прогноз, прогноз-VBA,
Похожие вопросы