我在StackOverflow上经历了或多或少类似的问题。 最能回答我问题的是这个Downloading attachment from Outlook into R
在Outlook中,我有一个名为“ 47MY Daily Report”的自定义文件夹,其中包含具有相同电子邮件标题的每日报告,并且每个报告都有一个zip附件。
该文件夹中每天可能有数百封电子邮件,每个电子邮件都有一个zip附件。
我想做的是 1.下载所有这些zip附件。 2.解压缩 3.根据收到的日期时间重命名每个zip附件中包含的excel文件(daily_report_20190913-1530.xls) 4.将这些excel文件保存在一个文件夹中。
我仍然在第一步中挣扎,我需要从每封电子邮件中下载所有这些zip文件。
下面是我目前拥有的
library(RDCOMOutlook)
# search emails and store as tibble
df_47MY <- RDCOMOutlook::search_emails(folder = 'Inbox', search_term = '47MY Daily Report')
# prepare filename for each attachment
df_47MY$filename <- paste(gsub(':','',gsub('-','',gsub(' ','_',gsub("GMT", "", df_47MY$received)))), '.xls',sep = '')
答案 0 :(得分:0)
我设法使用RDCOMOutlook软件包找到了解决方案。 它在RDMCOMClient之上提供了更高级别的功能。
library(RDCOMOutlook)
# look for all the emails with this title
df_47JB_KPI <- RDCOMOutlook::search_emails(folder = 'Inbox', search_term = '47JB Migration KPI Report')
# prepare filename for each attachment
df_47JB_KPI$filename <- paste(gsub(':','',gsub('-','',gsub(' ','_',gsub("GMT", "", df_47JB_KPI$received)))), '.xls',sep = '')
# function that download, unzip, and rename the attachment
download_unzip_rename <- function(x, y) {
file.rename(unzip(RDCOMOutlook::save_attachments(x,target_dir = getwd())),y)
}
dfs <- df_47JB_KPI[1:nrow(df_47JB_KPI),]
# run function to download all attachments, rename them
for (i in seq_along(dfs$email)) {
print(i)
email <- dfs$email[[i]]
filename <- dfs$filename[i]
download_unzip_rename(email, filename)
}