sendmailR (часть 2): отправка файлов в виде почтовых вложений

Следуя указаниям, приведенным в этом связанном с вопросе, я смог отправить html форматированные почтовые сообщения , Теперь вопрос в следующем: как мне изменить следующий код, чтобы прикрепить один или несколько файлов (любого типа) к этому сообщению?

library(sendmailR)

from <- ""
to <- c("","")
subject <- iconv("Message Title", to = "utf8")

msg <- "
This email was sent automatically using sendmailR.
Please do not reply directly to this e-mail.
" msg <- iconv(msg, to = "utf8") sapply(to,function(x) sendmail(from, x, subject, msg, control=list(smtpServer="###.###.###.###"), headers=list("Content-Type"="text/html; charset=UTF-8; format=flowed")))

21
задан Community 23 May 2017 в 12:17
поделиться

1 ответ

Рабочая (по крайней мере для меня) функция:

sendMessage<-function(contents,subject,from,to,attMIME,attachment,control){    
   msg<-list(contents,sendmailR:::.file_attachment(attachment,attachment,attMIME));
   sendmail(from=from,to=to,subject=subject,msg=msg,control=control);
}

Можно использовать так:

png('a.png');hist(rnorm(700));dev.off()
sendMessage('Here you have a nice histogram:',
'Nice picture',
'from@example.com',
'to@example.com',
'image/png',
'a.png',list(smtpServer="..."))

Имейте в виду, что сообщение, отправленное этим примером, вероятно, будет помечено как спам, так как это короткий текст и большая картинка - тем не менее, для больших сообщений и, скажем, вложений в формате pdf оно должно пройти. Если нет, вы можете рассмотреть возможность добавления текстовой версии сообщения.

РЕДАКТИРОВАТЬ (сейчас менее актуально): наиболее глубокое понимание того, как создавать сообщения MIME, можно найти здесь.

7
ответ дан 29 November 2019 в 21:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: