1

遵循 Greg Thatcher 对如何使用 R RDCOMClient 检索 Outlook 收件箱电子邮件的回答(已接受的回答) ?,我写了一些代码来搜索我的收件箱并找到我每天收到的电子邮件报告。代码以 -

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.

但是,在尝试进行故障排除时,我遇到了使用 R 从 Outlook 电子邮件中下载附件,我使用它写了 -

library(RDCOMClient)

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

这似乎有效,因为当我这样做时我得到了正确的号码search$Results()$Count()

问题是我不能(或不知道如何)在我的流程中使用第二种方法,因为虽然电子邮件报告主题的开头部分保持不变,但结尾部分一直在变化。第一种方法允许我使用grepl()电子邮件的主题。

如果有人可以帮助我了解导致第一种方法中断的原因或指导我修改第二种方法以使用grepl()

4

1 回答 1

1

电子邮件报告主题的开头部分保持不变,结尾部分不断变化。

您可以like与 then 结合使用%

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())
}

这是上周工作的(...),现在这不起作用。(...)如果有人可以帮助我了解导致第一种方法中断的原因

由于它不可重现,并且您没有提供有关更改内容的信息,因此这将很困难。

于 2018-11-05T18:59:28.857 回答