如何使用R在收件箱中检索Outlook电子邮件的正文



我经常使用R包RDCOMClient直接从R发送电子邮件,但有没有办法使用它将收件箱中的电子邮件正文导入R?

我在这里看到了一些答案。。。如何使用RDCOMClient检索Outlook收件箱电子邮件?

但这些似乎都不起作用,它们都是相当古老的答案,或者在我运行它们时出现了错误。

我也找不到任何关于如何在Outlook电子邮件中真正使用RDCOMClient的教程或文档。如有任何帮助,将不胜感激

这里有一种可以考虑的方法:

library(RDCOMClient)
## create outlook object
OutApp <- COMCreate("Outlook.Application")
outlookNameSpace <- OutApp$GetNameSpace("MAPI")
fld <- outlookNameSpace$GetDefaultFolder(6)
# Check that we got the right folder
Cnt <- fld$Items()$Count()
emails <- fld$items
list_Text_Body <- list()
for(i in 1 : Cnt)
{
print(i)
list_Text_Body[[i]] <- emails(i)[["Body"]]
}

要按时间对电子邮件进行排序,可以使用字段ReceivedTime,如下所示:

library(RDCOMClient)
## create outlook object
OutApp <- COMCreate("Outlook.Application")
outlookNameSpace <- OutApp$GetNameSpace("MAPI")
fld <- outlookNameSpace$GetDefaultFolder(6)
# Check that we got the right folder
Cnt <- fld$Items()$Count()
emails <- fld$items
list_Text_Body <- list()
list_Received_Time <- list()
for(i in 1 : Cnt)
{
print(i)
list_Text_Body[[i]] <- emails(i)[["Body"]]
list_Received_Time[[i]] <- tryCatch(emails(i)[["ReceivedTime"]], error = function(e) NA)
}
vector_Text_Body <- unlist(list_Text_Body)
vector_Received_Time <- unlist(list_Received_Time)
vector_Text_Body_Ordered <- vector_Text_Body[order(vector_Received_Time)]

最新更新