0

我有 R Studio 3.4.3 版。我在向最少 2 个人(未来超过 100 人)发送电子邮件时遇到问题。

例如:邮寄给一个人。这里一切正常。这是代码:

library(RDCOMClient)
OutApp <- COMCreate("Outlook.Application")
outMail = OutApp$CreateItem(0)
to="a@outlook.pl"
outMail[["To"]] =to
outMail[["subject"]] = "Mail R Studio"
outMail[["body"]] = "body mail"
outMail$Send()

所以,让我们向 2 个人发送邮件。我这样做:

mailing_list <- data.frame(to = c('a@outlook.pl','a@outlook.pl'), 
                       subject = c('Mail R Studio','Mail R Studio'), 
                       body = c('Please, help me','Please, help me') 

for (i in 1:nrow(mailing_list)) {
  OutApp <- COMCreate("Outlook.Application")
  outMail = OutApp$CreateItem(0)
  outMail[["To"]] = mailing_list[i,1]
  outMail[["subject"]] = mailing_list[i,2]
  outMail[["body"]] = mailing_list[i,3]
  outMail$Send()
}

错误代码:

`[[<-`(` tmp `, "To", value = 1L) 中的错误:

无法附加创建通用 COM 对象所需的 RDCOMServer 包另外:警告消息:在库中(包,lib.loc = lib.loc,character.only = TRUE,logical.return = TRUE,:nie ma pakietu o nazwie 'RDCOMServer'</p>

但是当我 install.packages("RDCOMServer") 反馈是:

install.packages 中的警告:

包 'RDCOMServer' 不可用(对于 R 版本 3.4.3)

请帮我这样做!谢谢

4

3 回答 3

0

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

mailing_list <- data.frame(to = c(...), ..., stringsAsFactors = FALSE)
于 2018-08-08T02:54:58.193 回答
0

请在列表中用分号 (;) 分隔电子邮件,它应该可以正常工作。

示例:to="a@outlook.pl;b@outlook"

于 2021-07-22T17:30:49.287 回答
0
向多个用户发送电子邮件的示例代码:
library(RDCOMClient)

初始化 com api

OutApp <- COMCreate("Outlook.Application")

创建电子邮件

outMail = OutApp$CreateItem(0)

配置邮箱参数

outMail[["To"]] = paste ( "samikar@cisco.com"
                          ,"subhdas@cisco.com"
                          ,"ragthumm@cisco.com"
                          ,"snarasgo@cisco.com"
                          ,"dmarwaha@cisco.com"
                          ,"shrenaik@cisco.com"
                          ,"ahabdelj@cisco.com"
                          , sep = ";", collapse = NULL)
outMail[["subject"]] = 'subject'

outMail[["body"]] = 'body'

发送

try(outMail$Send())
于 2018-08-03T15:08:06.120 回答