邮件主题
您可以自定义生成报表的电子邮件时使用的主题行。英格兰vs伊朗让球RStudio Connect使用名为rsc_email_subject
电子邮件主题。一份没有rsc_email_subject
条目使用其发布的文档名称。
使用YAML头来指定电子邮件主题的一个简单的静态文本覆盖:
---标题:“报告标题”rmd_output_metadata:rsc_email_subject:“我的邮件主题转到这里”---
如果你需要动态构建邮件主题,在R代码块中设置邮件主题:
changePercent < -20.主题< -粘贴(“销售变更”changePercent,“%”,9月="") rmarkdown::output_metadata$集(rsc_email_subject =主题)
的RSC_EMAIL_SUBJECT
环境变量包含已发布报告的名称,该名称也充当默认的电子邮件主题。如果您希望添加但不完全替换主题,则此环境变量非常有用。
的价值RSC_EMAIL_SUBJECT
在呈现报告时计算。对报告名称的更改将合并到后续的渲染中。
changePercent < -20.defaultSubject < -Sys.getenv(“RSC_EMAIL_SUBJECT”)课题< -sprintf("%s已被%d%%", defaultSubject, changePercent::output_metadata$集(rsc_email_subject =主题)
还可以从输出元数据中读取当前主题,以增量方式组成最终主题。
changePercent < -20.主题< -rmarkdown::output_metadata$得到(“rsc_email_subject”)课题< -sprintf("%s已被%d%%", subject, changePercent::output_metadata$集(rsc_email_subject =主题)
邮件正文
报表可以自定义为该报表发送电子邮件时使用的消息体。英格兰vs伊朗让球RStudio Connect使用名为rsc_email_body_text
对于纯文本体和rsc_email_body_html
对HTML的身体。没有任何条目的报表使用自动生成的纯文本主体,并带有到报表URL的链接。
短信的身体
使用YAML头来指定一个简单的静态文本覆盖邮件正文:
---标题:“报告标题”rmd_output_metadata:rsc_email_body_text:“这是我的自定义邮件信息。YAML需要像上面这样的全空行来开始新的行。”---
邮件客户端的消息看起来类似如下:
这是我的自定义电子邮件信息。YAML需要像上面那样的全空行来开始新行。
如果你需要动态构建消息,在R代码块中设置主体文本:
changePercent < -20.身体< -粘贴(“销售变更”changePercent,“%”。,9月="") rmarkdown::output_metadata$集(rsc_email_body_text =身体)
您还可以从输出元数据中读取当前主体,以增量地组成最终主体。
widgetOrders < -42身体< -rmarkdown::output_metadata$得到(“rsc_email_body_text”)身体< -sprintf(“% s\ n \ n有%d个部件销售。”, body, widgetOrders) rmarkdown::output_metadata$集(rsc_email_body_text =身体)
的胶水
包可以帮助进行更复杂的格式化。
图书馆(胶水)widgetOrders < -42changePercent < -20.身体< -胶水(“销售额变化为{changePercent}%。”\ n \ n',“有{widgetOrders}小部件的销售。”) rmarkdown::output_metadata$集(rsc_email_body_text =身体)
HTML消息体
的rsc_email_body_html
属性指定html格式的消息体。英格兰vs伊朗让球RStudio Connect设置消息的内容类型,以便大多数电子邮件客户端能够正确地显示HTML消息。
使用rsc_email_body_text
在一起rsc_email_body_html
提供旧的电子邮件客户端可以显示的文本,同时允许新客户端显示您的丰富内容。
YAML头可以指定一个简单的静态HTML覆盖邮件正文:
---标题:“报告标题”rmd_output_metadata:rsc_email_body_html:“新报告准备好了!”< / >强”---
你可以动态构建HTML消息:
图书馆(htmltools changePercent < -)20.身体< -粘贴(h1(“销售更新”),p(“销售变更”,新兴市场(paste0(changePercent“%”))),9月="\ n") rmarkdown::output_metadata$集(rsc_email_body_html =身体)
编写和样式化HTML电子邮件消息与构建传统网页不同。电子邮件消息不能嵌入脚本或引用外部样式表。电子邮件客户端可能实现额外的限制。
并不是所有的电子邮件客户端显示HTML消息都完全相同。给自己发送一条测试消息,检查基本格式,然后与听众确认消息在他们的电子邮件客户端中显示正确。
在HTML电子邮件中嵌入图像
控件可以在HTML电子邮件中嵌入图像,例如图形rsc_email_images
属性rmd_output_metadata
.嵌入的图像必须有一个Content ID,该ID在HTML主体中使用,并在向其提供图像时使用rsc_email_images
,并且图像本身必须是base64编码的。下面是一个例子:
图书馆(ggplot2)图书馆(htmltools)#创建一个情节。car_plot < -ggplot(data =mtcars,aes(x =disp,y =惠普,颜色=wt,大小=英里/加仑)+geom_point()#将图片以PNG格式保存到磁盘。ggplot2::ggsave(“plot.png”,情节=car_plot,设备=“png”,宽度=5,身高=5,dpi =“屏幕”)#将PNG图像编码为base64。plot_base64 < -base64enc::base64encode(“plot.png”)#构建HTML电子邮件信息。消息< -粘贴(h1(“mtcars数据阴谋”),#使用文件名"plot.png"作为内容ID,使用"cid:"#在图像标签的“src”属性:p(img(src =“cid: plot.png”)),9月="\ n")#创建数据结构来保存嵌入的图像。图片< -列表(plot.png =plot_base64)连接HTML邮英格兰vs伊朗让球件的消息和图像数据。rmarkdown::output_metadata$集(rsc_email_body_html =消息)rmarkdown::output_metadata$集(rsc_email_images =图像)
囊胚
的方法可以简化此过程。
使用Blastula简化HTML邮件创建
的囊胚
它可以在不同的客户端上正确呈现你的消息样式,并且它可以处理HTML结构和嵌入图像的许多细节。
使用囊胚
版本0.2.1或更新。
# Blastula示例改编自https://github.com/rich-iannone/blastula图书馆(囊胚)图书馆(formattable)#创建数据帧。df < -data.frame(Name =c(“Bob”,“阿什利”,“詹姆斯”,“大卫”,“珍妮”,“汉斯”,“狮子座”,“约翰。”,“艾米丽”,“李”),整体=c(“C”,“一个”,“一个”,“C”,“B”,“B”,“B”,“一个”,“C”,“C”),Q1_Sales =c(8.9,9.5,9.6,8.9,9.1,9.3,9.3,9.9,8.5,8.6),Q2_Sales =c(9.1,9.1,9.2,9.1,8.9,8.5,9.2,9.3,9.1,8.8),投影=c(9,9.3,9.4,9,9,8.9,9.25,9.6,8.8,8.7),跟踪=c(真正的,假,真正的,假,真正的,真正的,真正的,假,假,假),stringsAsFactors =假)#使用' format_table() '创建一个HTML表。formatted_table < -format_table(x =df,列表(整体=格式化程序(“跨越”,风格=x~ifelse(x= =“一个”,风格(颜色=“绿色”,字体。重量=“大胆”),NA)),区域(坳=c(Q1_Sales Q2_Sales))~normalize_bar(“粉红色”,0.2),投影=格式化程序(“跨越”,风格=x~风格(颜色=ifelse(排名(-x)< =3.,“绿色”,“灰色”x)),~sprintf(“%。2f (rank: %02d)", x,排名(-x)))跟踪=格式化程序(“跨越”,风格=x~风格(颜色=ifelse(x,“绿色”,“红色”x)),~icontext(ifelse(x,“ok”,“删除”),ifelse(x,“是的”,“不”)) ) ) )#创建Blastula邮件对象。消息< -compose_email(身体="嗨,吉姆,本财季将于下周结束。这是\ \销售代表号码。\ \{formatted_table}< br / >干杯,
销售副总裁")#在RStudio Connect中使用Blastula的消息作为邮件主体。英格兰vs伊朗让球rmarkdown::output_metadata$集(rsc_email_body_html =消息$html_str) rmarkdown::output_metadata$集(rsc_email_images =消息$图像)
输出将被格式化为电子邮件客户端:
图书馆(囊胚)图书馆(ggplot2)#创建一个ggplot plot对象。car_plot < -ggplot(data =mtcars,aes(x =disp,y =惠普,颜色=wt,大小=英里/加仑)+geom_point()#在邮件正文中使用' add_ggplot() '辅助函数。电子邮件< -compose_email(身体="新数据可用!这张图总结了新数据:{add_ggplot(plot_object = car_plot, width = 5, height = 5)}干杯")#给RStudio Connect HTML邮件数据。英格兰vs伊朗让球rmarkdown::output_metadata$集(rsc_email_body_html =电子邮件$html_str) rmarkdown::output_metadata$集(rsc_email_images =电子邮件$图像)
电子邮件< -囊胚::compose_email(…)rmarkdown::output_metadata$集(rsc_email_body_html =电子邮件$html_str) rmarkdown::output_metadata$集(rsc_email_images =电子邮件$图像)
看到囊胚
网站在https://github.com/rich-iannone/blastula了解更多信息和示例。
包括url和其他细节
您可能希望使用RStudio Connect中报告位置的链接来定制您的电子邮件,或者为电子邮件收件人提供一种管理其电子邮件订阅的方法。英格兰vs伊朗让球英格兰vs伊朗让球RStudio Connect提供R Markdown渲染,其中包含可以从代码引用的环境变量。
RSC_REPORT_NAME |
“季度销售总结” |
RSC_REPORT_RENDERING_URL |
“http://example.com/content/42/_rev1/” |
RSC_REPORT_SUBSCRIPTION_URL |
“http://example.com/connect/ /应用程序/ 42 /订阅” |
RSC_REPORT_URL |
“http://example.com/content/42/” |
的价值RSC_REPORT_NAME
在呈现报告时计算。对报告名称的更改将合并到后续的渲染中。
在呈现之前,URL环境变量的最终值是未知的。英格兰vs伊朗让球RStudio Connect使用这些环境变量的占位符值呈现文档。在构造最后的电子邮件消息时替换占位符值。这些url不适合在报告主体中使用。
使用Sys.getenv ()
函数获取报告中这些环境变量的值。在RStudio Connect之外呈现报表时,这些环境变量将没有值。英格兰vs伊朗让球使用第二个参数Sys.getenv ()
提供一个临时值。
在本地渲染时使用示例URL(不是在RStudio Connect中)。英格兰vs伊朗让球rendering_url < -Sys.getenv(“RSC_REPORT_RENDERING_URL”,“http://example.com/content/42/_rev123/”)
你可以在邮件正文或页脚的任何地方使用这些变量。下面的示例使用这些变量构建文本或HTML消息页脚。
图书馆(胶水)report_name < -Sys.getenv(“RSC_REPORT_NAME”) report_url < -Sys.getenv(“RSC_REPORT_URL”) rendering_url < -Sys.getenv(“RSC_REPORT_RENDERING_URL”,“http://example.com/content/42/_rev123/”) subscription_url < -Sys.getenv(“RSC_REPORT_SUBSCRIPTION_URL”) widget_orders < -42change_percent < -20.身体< -胶水(粘贴(“销售额变化了{change_percent}%。”\ n',“有{widget_orders}小部件销售。\ n',“——”,'此{report_name}文档可在{rendering_url}中使用',“最新发布的版本总是在{report_url}中可用”,“要停止接收这些邮件,请在这里取消订阅:{subscription_url}”,9月='\ n') rmarkdown::output_metadata$集(rsc_email_body_text =身体)
抑制预定邮件
计划报表可以配置为在生成输出后自动发送电子邮件。报告的作者可以通过给出rsc_email_suppress_scheduled
元数据属性是逻辑(布尔)值。
使用YAML头来设置一个默认值rsc_email_suppress_scheduled
.如果设置为真正的
并且不被下游代码更改,报告将永远不允许在计划执行后发送电子邮件。任何试图在RStudio Connect仪表板中配置更新后电子邮件的尝试都不会产生任何效果。英格兰vs伊朗让球
---标题:“报告标题”rmd_output_metadata:rsc_email_suppress_scheduled:真正的---
您可以根据报告中可用的数据动态地做出此决定。本示例假设电子邮件在默认情况下是被抑制的(如上面的YAML所示),但在超过某些业务条件时被触发。
changePercent < -compute_weekly_sales_change()如果(changePercent<5||changePercent>5) {#邮件实质性销售变化。rmarkdown::output_metadata$集(rsc_email_suppress_scheduled =假)}
禁止将报告附加到电子邮件
默认情况下,Connect将生成的文档作为附件添加到该报告的电子邮件消息中。你可以通过给你的R Markdown报告防止这个附件rsc_email_suppress_report_attachment
元数据属性是逻辑(布尔)值。
使用YAML头来设置一个默认值rsc_email_suppress_report_attachment
.一个真正的
后续未调整的值表示生成的内容永远不会附加到电子邮件中。
---标题:“报告标题”rmd_output_metadata:rsc_email_suppress_report_attachment:真正的---
您还可以在R代码中做出“附加或不附加”的决定。
rmarkdown::output_metadata$集(rsc_email_suppress_report_attachment =真正的)
配置的附件rsc_email_attachments
元数据属性(8.4.4)仍然附有,且不受rsc_email_suppress_report_attachment
设置。