Загрузка вложения из Outlook в R - PullRequest
0 голосов
/ 05 ноября 2018

После ответа Грега Тэтчера (принятого ответа) на Как получить электронные письма из Outlook с помощью R RDCOMClient? , я написал код для поиска в папке входящих сообщений и поиска отчета по электронной почте, который я получаю каждый день. Код начинается с -

library(RDCOMClient)

folderName = "Inbox"

OutApp = COMCreate("Outlook.Application")
outlookNameSpace = OutApp$GetNameSpace("MAPI")
folder = outlookNameSpace$Folders(1)$Folders(folderName)
emails = folder$Items

Это работало на прошлой неделе, но системы обычно перезагружались в выходные, и теперь это не работает, и я понятия не имею, почему. Я получаю сообщение об ошибке от второй до последней строки во фрагменте кода outlookNameSpace$Folders(1)$Folders(folderName) -

<checkErrorInfo> 80020009 
No support for InterfaceSupportsErrorInfo
checkErrorInfo -2147352567
Error: Exception occurred.

Однако, пытаясь устранить неполадки, я наткнулся на Скачать вложение из электронного письма Outlook, используя R , используя который я выписал -

library(RDCOMClient)

OutApp = COMCreate("Outlook.Application")
search = OutApp$AdvancedSearch("Inbox", "urn:schemas:httpmail:subject = 'Finding Memo - Specific Theme'")

Кажется, это работает, потому что я получаю правильное число, когда я search$Results()$Count().

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

Если кто-то может помочь мне понять, что приводит к поломке первого метода, или подсказать, как изменить второй метод для работы с grepl()?

1 Ответ

0 голосов
/ 05 ноября 2018

в то время как начальная часть темы сообщения электронной почты остается то же самое, конец постоянно меняется.

Вы можете использовать like в сочетании с %, затем:

library(RDCOMClient)
OutApp <- COMCreate("Outlook.Application")
search <- OutApp$AdvancedSearch("Inbox", "urn:schemas:httpmail:subject like 'Finding Memo%'")
while (search$Results()$Count() == 0) TRUE 
for (x in seq_len(search$Results()$Count())) {
  print(search$Results()$Item(x)$Subject())
}

Это работало на прошлой неделе (...), а теперь это не работает. (...) Если кто-то может помочь мне понять, что вызывает первый метод перерыв

Поскольку это не воспроизводимо, и вы не сообщили о том, что изменилось, это будет сложно.

...