0

我已经用几种不同的方式尝试了这段代码,并不断收到同样的错误。我不相信代码是问题所在,我想知道我是否缺少 RDCOMClient 的功能。该功能有效,因为我通过它发送了许多电子邮件。循环功能不起作用。

我只是想遍历一个 DataFrame 的向量并发送一封与它正在循环的电子邮件相对应的电子邮件。

(例如,应向 email1 发送电子邮件,应向 email2 发送电子邮件等)

test.df <- data.frame(
                      "email" = c("email1", "email2", "email3")
                      ,"name" = c("name1", "name2", "name3")
                      )
mail_fun <- function(mail) {
  outMail = OutApp$CreateItem(0)
  ## configure  email parameter
  outMail[["To"]] = mail
  outMail[["subject"]] = "Project hours for next week"
  outMail[["HTMLBody"]] = paste0("<p>Testing sending hours through R</>")
  ## send it
  outMail$Send()
}

sapply(test.df$email, mail_fun)

这是我收到的错误:

[[<-( , "To", value = 2L)中的错误*tmp*:无法附加创建通用 COM 对象所需的 RDCOMServer 包此外:警告消息:在库中(包,lib.loc = lib.loc,character.only =真,逻辑。返回=真,:

[[<-( , "To", value = 2L)中的错误*tmp*:无法附加创建通用 COM 对象所需的 RDCOMServer 包

4

1 回答 1

0

名为 test.df 的 data.frame 包含因子,而不是字符串。因此,您将一个因子的值分配给 outMail[["To"]]。该值是一个整数,在本例中为 1L。所以这是错误的。正如上面的答案所说,制作这些字符串。利用:

test.df <- data.frame(to = c(...), ..., stringsAsFactors = FALSE)
于 2019-12-04T17:58:56.057 回答