sendmailR - 附加多个收件人

时间:2013-09-17 12:42:33

标签: r sendmail sendmailr

我已成功设法实现sendmailR功能,向一个收件人发送一条消息。

您知道是否可以将相同的消息发送给该功能中的多个收件人? CC'ing的一种形式?

如果不是,我认为唯一的方法是循环一个变量,这通常是可以的但是对于我当前的代码会导致循环中的循环并使事情公平,并希望不必要的复杂

我无法在文档中看到任何表明此类功能的内容 - > http://cran.r-project.org/web/packages/sendmailR/sendmailR.pdf

感谢您的帮助,我会继续测试,看看在此期间是否有解决方法!

3 个答案:

答案 0 :(得分:6)

sendmail的源代码中,它声明了......

if (length(to) != 1) 
        stop("'to' must be a single address.")

所以这给你留下了几个选项(所有这些都是循环)。与发送电子邮件相比,循环的执行时间可以忽略不计。有两种选择:

选项1

使用Vectorize向量化to的{​​{1}}参数,允许您提供要发送到的电子邮件地址的字符向量...

sendmail

选项2

使用sendmailV <- Vectorize( sendmail , vectorize.args = "to" ) emails <- c( "me@thisis.me.co.uk" , "you@whereami.org" ) sendmailV( from = "me@me.org" , to = emails ) 迭代每次应用sapply函数的电子邮件地址的字符向量...

sendmail

答案 1 :(得分:1)

您可以尝试在github https://github.com/rpremraj/mailR

上提供的mailR包的开发版本

使用mailR,您可以发送HTML格式的电子邮件,如下所示:

send.mail(from = "sender@gmail.com",
          to = c("recipient1@gmail.com", "recipient2@gmail.com"),
          cc = c("CCrecipient1@gmail.com", "CCrecipient2@gmail.com"),
          subject = "Subject of the email",
          body = "<html>The apache logo - <img src=\"http://www.apache.org/images/asf_logo_wide.gif\"></html>",
          html = TRUE,
          smtp = list(host.name = "smtp.gmail.com", port = 465, user.name = "gmail_username", passwd = "password", ssl = TRUE),
          authenticate = TRUE,
          send = TRUE)

答案 2 :(得分:0)

这对我有用: 分别定义来自,消息,主题,主体:

from <- sprintf("<sendmailR@%s>", Sys.info()[4]) 
.....
TO <- c("<adres1@domain.com>", "<adres2@domain.com>")
sapply(TO, function(x) sendmail(from, to = x, subject, msg, body))