如何使用R RDCOMClient检索Outlook收件箱电子邮件?

Afi*_*ari 9 email outlook r rdcomclient

library(RDCOMClient)
## create outlook object
OutApp <- COMCreate("Outlook.Application")
Run Code Online (Sandbox Code Playgroud)

我想从名为"AUX"的Outlook文件夹中检索今天的电子邮件.解析电子邮件的标题,如果符合某些条件,我想解析某些字符串的电子邮件内容.

我设法写了一封来自R的电子邮件并将其发送出去,但到目前为止还无法检索电子邮件.

Gre*_*her 9

以下是我通过反复试验工作的一些示例代码:

library(RDCOMClient)

folderName = "AUX"

## create outlook object
OutApp <- COMCreate("Outlook.Application")
outlookNameSpace = OutApp$GetNameSpace("MAPI")

folder <- outlookNameSpace$Folders(1)$Folders(folderName)
# Check that we got the right folder
folder$Name(1)

emails <- folder$Items

# Can't figure out how to get number of items, so just doing first 10
for (i in 1:10)
{
  subject <- emails(i)$Subject(1)
  # Replace "#78" with the text you are looking for in Email Subject line
  if (grepl("#78", subject)[1]){
    print(emails(i)$Body())
    break
  } 
}
Run Code Online (Sandbox Code Playgroud)

抱歉,但我不知道为什么这些COM对象中的某些需要参数(如Subject(1)),但其他COM对象不需要(如Body()).这在Outlook 2013上适用于我,但它也适用于2007年以来的所有Outlook版本.

要获得有关Outlook对象模型的更多信息,我建议您获取Ken Slovak的Outlook 2007书籍(对于更高版本的Outlook仍然相关),或者查看我的个人网站http://www.gregthatcher.com(查看"脚本"部分 - 我多年来一直在编译它们.)