rei*_*son 6 email r sendmailr r-markdown
如何rmarkdown使用R在电子邮件中将生成的文档作为正文发送?
我已成功尝试knitr过mailR,但是当使用(新)rmarkdown-package 生成html-report时,它失败了.
library(mailR)
send.mail(
from = "FROM@gmail.com",
to = "TO@gmail.com",
subject = "MyMail",
html = T,
inline = T,
body = "my_report.html",
smtp = list(host.name = "smtp.gmail.com", port = 465,
user.name = "USERNAME", passed = "PASSWORD", ssl = T),
authenticate = T,
send = T
)
Run Code Online (Sandbox Code Playgroud)
错误:
org.apache.commons.mail.EmailException: Building the MimeMessage failed
at org.apache.commons.mail.ImageHtmlEmail.buildMimeMessage(ImageHtmlEmail.java:110)
at org.apache.commons.mail.Email.send(Email.java:1436)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at RJavaTools.invokeMethod(RJavaTools.java:386)
Caused by: java.io.IOException: Cant resolve the following file resource :/Users/USERNAME/myfolder/./data:image/png;base64,iVBORw0KGg …
(…)
… SuQmCC
at org.apache.commons.mail.resolver.DataSourceFileResolver.resolve(DataSourceFileResolver.java:105)
at org.apache.commons.mail.resolver.DataSourceFileResolver.resolve(DataSourceFileResolver.java:79)
at org.apache.commons.mail.ImageHtmlEmail.replacePattern(ImageHtmlEmail.java:149)
at org.apache.commons.mail.ImageHtmlEmail.buildMimeMessage(ImageHtmlEmail.java:103)
... 6 more
Error: EmailException (Java): Building the MimeMessage failed
Run Code Online (Sandbox Code Playgroud)
我想这与以下行做:广东话解决以下文件资源:/用户/用户名/ MyFolder中/./数据:图像/ PNG;的base64?
我对任何指导都非常感激.
Rah*_*raj 10
mailR当前不支持解析使用数据URI方案(http://en.wikipedia.org/wiki/Data_URI_scheme)编码的内嵌图像.
目前,我建议使用以下解决方案来解决您的问题.在将来,我将考虑让mailr本地支持这个.
首先,从R终端创建HTML文件(这里重要的是选项不包括" base64_images"---见?markdown::markdownHTMLOptions):
library(knitr)
knit2html("my_report.Rmd",options="")
Run Code Online (Sandbox Code Playgroud)
现在您可以通过mailR发送生成的HTML文件:
send.mail(from = "FROM@gmail.com",
to = "TO@gmail.com",
subject = "MyMail",
html = T,
inline = T,
body = "my_report.html",
smtp = list(host.name = "smtp.gmail.com", port = 465, user.name = "USERNAME", passwd = "PASSWORD", ssl = T),
authenticate = T,
send = T)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3964 次 |
| 最近记录: |