使用RDCOMClient和Outlook通过电子邮件发送多个附件

时间:2016-06-27 17:22:30

标签: r email outlook rdcomclient

我有一个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%确定这是打破附件的原因,因为它只适用于一个。它非常适合添加多个收件人。有谁知道如何使用这个包添加多个附件?

2 个答案:

答案 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的第一个答案。希望你明白!