我已成功设法实现sendmailR功能,向一个收件人发送一条消息。
您知道是否可以将相同的消息发送给该功能中的多个收件人? CC'ing的一种形式?
如果不是,我认为唯一的方法是循环一个变量,这通常是可以的但是对于我当前的代码会导致循环中的循环并使事情公平,并希望不必要的复杂
我无法在文档中看到任何表明此类功能的内容 - > http://cran.r-project.org/web/packages/sendmailR/sendmailR.pdf
感谢您的帮助,我会继续测试,看看在此期间是否有解决方法!
答案 0 :(得分:6)
在sendmail
的源代码中,它声明了......
if (length(to) != 1)
stop("'to' must be a single address.")
所以这给你留下了几个选项(所有这些都是循环)。与发送电子邮件相比,循环的执行时间可以忽略不计。有两种选择:
使用Vectorize
向量化to
的{{1}}参数,允许您提供要发送到的电子邮件地址的字符向量...
sendmail
使用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))