3

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

4

2 回答 2

7

只需添加另一个附件行:

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(.))
于 2017-01-26T21:27:37.990 回答
0

我想我知道如何解决这个问题。我几乎每天都使用 R 一次发送多个附件。

首先,在执行 for 函数之前,您必须将工作目录设置为保存文件的目录,然后您就可以运行代码了。

setwd("path")
      for(j in 1:length(dir())){
          outMail[["Attachments"]]$Add(paste(path,dir()[j],sep="/"))
      }

抱歉,如果我不够清楚,这是 StackOverFlow 上的第一个答案。希望你得到它!

于 2016-06-30T15:03:05.237 回答