2014-06-21 7 views
6

생성 된 문서를 전자 메일의 본문으로 보내려면 어떻게해야합니까?mailR : 전자 메일에서 본문으로 rmarkdown 문서를 보내는 방법은 무엇입니까?

mailR으로 성공적으로 시도했지만 대신 (신형) - 패키지로 html- 보고서를 생성하면 실패합니다.

library(mailR) 
send.mail(
    from = "[email protected]", 
    to = "[email protected]", 
    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 
) 

오류 : 캔트는 다음과 같은 파일 리소스를 해결 :/사용자/사용자 이름/MyFolder에 /./ 데이터 :

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 

내가이 다음 행과 관련이있다 생각 이미지/PNG; base64?

나는 어떤 종류의지도에도 감사하고 있습니다.

+0

(오래된) markdown 패키지를 사용하여 생성 된 경우에도 이미지가 포함되어있을 때 비슷한 메시지가 나타납니다. –

+0

이미지가 메시지 본문에 포함되지 않은 경우 매우 자주 다음과 같은 오류가 발생합니다. "org.apache.commons.mail.EmailException : 다음 서버로 이메일을 보내지 못했습니다 : aspmx.l.google.com:25 이 메시지는 원치 않는 메일 일 가능성이 있습니다. Gmail에 보낸 스팸의 양을 줄이기 위해이 메시지는 차단되었습니다. " –

답변

9

mailR은 현재 데이터 URI 스키마 (http://en.wikipedia.org/wiki/Data_URI_scheme)를 사용하여 인코딩 된 인라인 이미지를 해결하는 것을 지원하지 않습니다.

당분간 문제를 해결하기 위해 다음 해결책을 제안합니다. 장래에, 나는 이것을 기본적으로 지원하기 위해 메일러를 조사 할 것이다. 이제 결과 HTML을 보낼 수 있습니다

library(knitr) 
knit2html("my_report.Rmd",options="") 

을 :

첫째는 R 터미널에서 HTML 파일을 생성 (여기에서 중요한 것은 옵션 ?markdown::markdownHTMLOptions를 참조 --- "base64_images"를 포함하지 않는다는 것입니다) 파일을 통해 mailR :

send.mail(from = "[email protected]", 
      to = "[email protected]", 
      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) 
+2

감사합니다. 미래의 원주민 지원을 고대하고 있습니다. – reinholdsson

+0

이것은 나를 위해 2015 년 늦게 작동합니다. 좋은 대답 – Nelson

+0

@ RahulPremraj file.choose() 또는 반짝 이는에서 fileInput 파일을 첨부 할 수 있습니까? – Apricot