我有一个R脚本,我希望在完成完成后使用Microsoft Outlook自动发送电子邮件。我正在使用“RDCOMClient”软件包,我想在电子邮件中添加多个附件。
这是我正在尝试使用的代码:
library(RDCOMClient)
OutApp <- COMCreate("Outlook.Application")
outMail = OutApp$CreateItem(0)
outMail[["To"]] = paste("recipient@account.com","another@gmail.com", sep=";", collapse=NULL)
outMail[["subject"]] = "some subject"
outMail[["body"]] = "some body"
outMail[["attachments"]]$Add("C:/Path/To/The/Attachment/File.ext")
outMail$Send()
我尝试使用粘贴作为附件,如“收件人”选项,但我99%确定这是打破附件的原因,因为它只适用于一个。它非常适合添加多个收件人。有谁知道如何使用这个包添加多个附件?
答案 0 :(得分:5)
只需添加其他附件行:
outMail[["attachments"]]$Add("C:/Path/To/The/Attachment/File.ext")
outMail[["attachments"]]$Add("C:/Path/To/The/Attachment/File2.ext")
或map
(循环)在附件对象上:
attachments <- c("C:/Path/To/The/Attachment/File.ext",
"C:/Path/To/The/Attachment/File2.ext")
purrr::map(attachments, ~ outMail[["attachments"]]$Add(.))
答案 1 :(得分:0)
我想我知道如何解决这个问题。我几乎每天都使用R。
一次发送多个附件首先,在执行for函数之前,必须将工作目录设置为保存文件的目录,然后运行代码即可。
setwd("path")
for(j in 1:length(dir())){
outMail[["Attachments"]]$Add(paste(path,dir()[j],sep="/"))
}
很抱歉,如果我不够清楚,它是StackOverFlow的第一个答案。希望你明白!