Читать электронные письма из почтового ящика outlook - PullRequest
0 голосов
/ 14 февраля 2020

Версия продукта Outlook: 16.0.1073020348

Поэтому я создал скрипт для чтения электронных писем и их вставки в БД.

Проблема: в данный момент сценарий выполняет чтение из моей папки «Входящие» (красный флаг), а не из общего почтового ящика (синий флаг)

Желаемое решение: Проверьте общий почтовый ящик (синий флаг)

My Outlook App

В настоящее время мой код выглядит примерно так:

Set objOutlook = CreateObject("Outlook.Application")

Set objNamespace = objOutlook.GetNamespace("MAPI")
'PROBLEM HERE I GUESS
Set objFolder = objNamespace.GetDefaultFolder(6) 'Inbox

Set colItems = objFolder.Items

Set colFilteredItems = colItems.Restrict("[Unread]=true")

Set colFilteredItems = colFilteredItems.Restrict("[Subject] = SUBJECT")


For k = colFilteredItems.Count to 1 step -1 
    set objMessage  = colFilteredItems.Item(k)
    '....
next

Любая помощь приветствуется

Пробовал метод, предложенный @josefZ, но продолжайте бороться с ним с 1-й попытки (с ошибкой в ​​последней строке):

Set myRecipient = objNamespace.CreateRecipient("mailbox@mail.com")

myRecipient.Resolve

Set objFolder = objNamespace.GetSharedDefaultFolder(myRecipient,olFolderInbox).Folders("Bandeja de Entrada")

error wscript

Ответы [ 2 ]

1 голос
/ 16 февраля 2020

Вы можете использовать GetSharedDefaultFolder или, поскольку хранилище делегатов уже открыто в профиле, извлечь почтовый ящик делегата из коллекции Namespace.Stores и использовать Store.GetDefaultFolder вместо Namespace.GetDefaultFolder.

0 голосов
/ 14 февраля 2020

Как это работает:

Set myRecipient = objNamespace.CreateRecipient("mailbox@mail.com")

myRecipient.Resolve

Set objFolder = objNamespace.GetSharedDefaultFolder(myRecipient,6) 'inbox
...