обновление: Brandon Bertelsen отвечает:
Ответ Брэндона дает следующий результат. Он не создает приятные таблицы или выделяет код, например Rstudio, и он сбой в некоторых html файлах с помощью unicode, поэтому я не использую его для автоматизации моих сообщений электронной почты.
Мой текущий подход заключается в компиляции с Rstudio в html, откройте html-документ в chrome, а затем скопируйте и вставьте html-документ в gmail. Это работает очень хорошо, см. Этот принцип: https://gist.github.com/nelsonauner/a68b5a808c232ce7817e
оригинальный вопрос:
Есть ли простой способ отправить документ с отметкой R как тело письма, так что тело письма похоже на результаты использования Rstudio "Knit HTML"?
Здесь приведен базовый воспроизводимый пример с использованием knitr
, rmarkdown
и mailR
example.Rmd
---
title: "Report for email"
output:
html_document:
self_contained: no
---
```{r}
summary(cars)
```
You can also embed plots, for example:
```{r, echo=FALSE}
plot(cars)
```
Я использую self_contained: no
, так как кодировка base64 по умолчанию не работает с mailR
(рекомендуется Yihui в this SO post)
knit_and_send.R
# compile using rmarkdown
library(rmarkdown)
rmarkdown::render("example.Rmd")
library(mailR)
send.mail(from = "[email protected]",
to = "[email protected]",
subject = "R Markdown Report - rmarkdown",
html = T,
inline = T,
body = "example.html",
smtp = list(host.name = "smtp.gmail.com", port = 465, user.name = "me", passwd = "password", ssl = T),
authenticate = T,
send = T)
#compile using knitr
library(knitr)
knit2html("example.Rmd",options="")
send.mail(from = "[email protected]",
to = "[email protected]",
subject = "R Markdown Report - knitr",
html = T,
inline = T,
body = "example.html",
smtp = list(host.name = "smtp.gmail.com", port = 465, user.name = "me", passwd = "password", ssl = T),
authenticate = T,
send = T)
Оба письма успешно отправляются.
Вязаная электронная почта выглядит следующим образом:
и электронная почта rmarkdown выглядит так. (Обратите внимание, что он также включает в себя кучу файлов javascript - я думаю, мне пришлось бы написать некоторые скрипты, чтобы удалить их)
Но ни один из них не выглядит таким же приятным, как отчет, созданный Rstudio "Вязать как HTML", который выглядит следующим образом:
Любые предложения?
Я думаю, что истинное исправление может включать некоторую постобработку html файла, который включает стиль CSS в удобном для электронной почты способе, удаляя файлы javascript.
В настоящее время я использую пакет knitr
.
Пожалуйста, дайте мне знать, если что-то неясно, и я улучшу вопрос.
Соответствующие сообщения SO:
В R есть способ отправить файл RMarkdown v2 html в виде тела электронной почты
mailR: как отправить документы rmarkdown как тело по электронной почте?