Следуя указаниям, приведенным в этом связанном с вопросе, я смог отправить 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")))
Рабочая (по крайней мере для меня) функция:
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, можно найти здесь.