Blastula 0.3的电子邮件
我们很高兴宣布blastula,这是一个用于在R中创建漂亮的自定义电子邮件的程序包。在RStudio中,我们喜欢交互式仪表板,但在某些情况下需要使用不同的通信机制。使用囊囊可以:
-
根据代码,代码输出和降价撰写自定义电子邮件正文
-
使用SMTP服务器(甚至是GMail)发送电子邮件,或与RStudio Connect等生产服务集成
Blastula使得从异常检测到幻想篮球结果的一切通知变得容易,而无需离开R。
首先,从CRAN安装blastula:
install.packages('blastula')
创建电子邮件
Blastula的独特优势在于创建可在各种电子邮件客户端(包括移动客户端)中呈现的自定义HTML电子邮件正文。推荐的创建电子邮件的方法是使用blastula的R Markdown输出格式。blastula::blastula_email
。电子邮件的正文将尊重R Markdown输出,包括markdown语法和代码块输出。
---
output: blastula::blastula_email
---
Hi Team,
This *important* forecast needs to go out today.
```{r echo=FALSE}
model <- arima(presidents, c(1, 0, 0))
predict(model, 3)
要从R Markdown文档创建电子邮件,请使用render_email
:
email <- render_email('email.Rmd')
可以在RStudio中预览生成的电子邮件对象。

或者,可以通过使用compose_email
合并文本,图像甚至绘图的功能来创建不带R Markdown的电子邮件:
library(blastula)
library(ggplot2)
library(glue)
plot <- qplot(disp, hp, data = mtcars, colour = mpg)
plot_email <- add_ggplot(plot)
email <- compose_email(
body = md(c(
"Team, How would you plot the relationship between these 3 variables?",
plot_email
))
)

请访问文档以了解如何嵌入图像,设置电子邮件标题和页脚,甚至添加号召性用语按钮。
使用SMTP发送自定义电子邮件
为了发送电子邮件,blastula包含用于访问SMTP服务器(例如GMail,Outlook和Office365)的功能。
首先,安全地告诉blastula有关您的SMTP服务器的信息:
create_smtp_creds_key(
id = "gmail",
user = "user_name@gmail.com",
provider = "gmail"
)
接下来,使用SMTP服务发送您的自定义电子邮件:
email %>%
smtp_send(
from = "personal@email.net",
to = "personal@email.net",
subject = "Testing the `smtp_send()` function",
credentials = creds_key(id = "gmail")
)
使用RStudio Connect发送自定义电子邮件
组织可以在RStudio Connect的生产中使用囊囊。例如,我们使用囊胚来跟踪关键服务,例如支持票数量和员工培训时间表。
一个简单的入门方法是访问RStudio Connect示例:
blastula::prepare_rsc_example_files()
将生成的R Markdown文档发布到RStudio Connect,在此可以 安排定期执行 并分发给利益相关者。

Blastula提供了三个附加功能,可以更轻松地为RStudio Connect创建电子邮件。
-
render_connect_email
自动将页脚添加到电子邮件中,并提供指向RStudio Connect内容的有用链接。 -
attach_connect_email
确保RStudio Connect发送自定义电子邮件,并且还使自定义主题行,添加其他电子邮件附件以及可选地附加报告输出变得容易。 -
suppress_scheduled_email()
允许您跳过发送电子邮件。这种模式非常强大。例如,报告可以每天运行一次,但是仅在满足某些条件时才分发。
这三个功能可以一起用于发送主动通知:
if (demand_forecast > 1000) {
render_connect_email(input = "alert-supply-team-email.Rmd") %>%
attach_connect_email(
subject = sprintf("We need to prepare %d units!", demand_forecast),
attach_output = TRUE,
attachments = c("demand_forecast_data.csv")
)
} else {
suppress_scheduled_email()
}
请确保访问blastula网站以查找其他资源。毕竟,谁不希望他们的收件箱中有ggplot?
网友评论