sendmailR - прикреплено более одного получателя
Мне удалось реализовать функцию sendmailR для отправки одного сообщения одному получателю.
Знаете ли вы, можно ли отправить одно и то же сообщение нескольким получателям в рамках функции? Форма CC'ing?
Если нет, то я думаю, что единственный способ состоит в том, чтобы зацикливаться на переменной, что, как правило, было бы хорошо, но мой текущий код привел бы к циклу внутри цикла и сделал бы вещи справедливыми и, надеюсь, ненужными сложными.
Я не вижу в документации ничего, что могло бы указывать на такую функциональность, как эта -> http://cran.r-project.org/web/packages/sendmailR/sendmailR.pdf
Спасибо за любую помощь, я буду продолжать тестирование, чтобы видеть, есть ли работа вокруг них тем временем!
3 ответа
В исходном коде для sendmail
Говорится...
if (length(to) != 1)
stop("'to' must be a single address.")
Таким образом, это оставляет вам несколько вариантов (все из которых являются циклами). Время выполнения цикла по сравнению с отправкой электронной почты будет незначительным. Пара вариантов:
Опция 1
использование Vectorize
векторизовать to
аргумент sendmail
, что позволяет указать символьный вектор адресов электронной почты для отправки...
sendmailV <- Vectorize( sendmail , vectorize.args = "to" )
emails <- c( "me@thisis.me.co.uk" , "you@whereami.org" )
sendmailV( from = "me@me.org" , to = emails )
Вариант 2
С помощью sapply
перебирать символьный вектор адресов электронной почты, применяя sendmail
функционировать каждый раз...
sapply( emails , function(x) sendmail( to = "me@me.org" , to = x ) )
Вы можете попробовать версию для разработки пакета mailR, доступную на github https://github.com/rpremraj/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)
Это делает трюк для меня: определить от, сообщения, тему, тело отдельно:
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))