Используя RDCOMClient, как я могу использовать функцию advancedsearch() для поиска в разных почтовых ящиках?

В учетной записи Outlook, которую я использую, настроено несколько почтовых ящиков, и хотя следующий ответ, кажется, показывает, как использовать эту функцию, я не могу заставить ее работать, поскольку у меня есть несколько почтовых ящиков с папкой «Входящие». Загрузите вложение из электронной почты Outlook с помощью R

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

OutApp = COMCreate("Outlook.Application")
outlookNameSpace = OutApp$GetNameSpace("MAPI")
folder = outlookNameSpace$Folders(14)$Folders("Inbox")

Похоже, мне нужна еще одна строка или около того, прежде чем звонить в почтовый ящик ниже:

search = OutApp$AdvancedSearch("Inbox", "urn:schemas:httpmail:subject = 'test subject'")

person JHardy16    schedule 08.02.2019    source источник
comment
Было бы интуитивно понятно, если бы вы могли заменить "inbox" на folder, но это не работает. Я не нашел никакой документации для AdvancedSearch, которая помогла бы описать, какую форму мог бы принять аргумент.   -  person Mark Neal    schedule 07.01.2020
comment
Привет, какие-нибудь обновления с этим? У меня такая же проблема, когда мне нужно иметь две почтовые учетные записи, связанные с моим Outlook, и мне нужно брать вложения из определенной учетной записи и папки. Заранее спасибо.   -  person Bury    schedule 15.06.2020


Ответы (1)


Это сработало для меня. Не забудьте заключить путь в одинарные кавычки как часть строки пути.

outlookNameSpace = outlook_app$GetNameSpace("MAPI")
mailbox <- outlookNameSpace$Folders(2)
path <- mailbox$Folders("Inbox")$FolderPath()

search <- outlook_app$AdvancedSearch(
  paste0("'", path, "'"), "urn:schemas:httpmail:subject = 'test'"
)
person E. Ooka    schedule 25.07.2020