2014-06-21 4 views
6

आर का उपयोग करते हुए ईमेल में किसी निकाय के रूप में जेनरेट किए गए दस्तावेज़ कैसे भेजें?मेलआर: ईमेल में बॉडी के रूप में रमार्कडाउन दस्तावेज़ कैसे भेजें?

मैं सफलतापूर्वक mailR साथ knitr की कोशिश की है, लेकिन जब बजाय (नया) साथ एचटीएमएल-रिपोर्ट उत्पन्न -package यह विफल रहता है।

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 
) 

त्रुटि:

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 

मुझे लगता है कि यह निम्न पंक्ति के साथ क्या करना है: नहीं कर सकते निम्न फ़ाइल संसाधन हल:/उपयोगकर्ता/उपयोगकर्ता नाम/MyFolder /./ डेटा: image/png; बेस 64?

मैं किसी भी प्रकार के मार्गदर्शन के लिए आभारी हूं।

+0

मुझे समान संदेश मिलते हैं जब HTML फ़ाइल में छवियां होती हैं, भले ही इसे (पुराने) मार्कडाउन पैकेज का उपयोग करके उत्पन्न किया गया हो। –

+0

ऐसे मामलों में जहां संदेश निकाय में छवियां शामिल नहीं हैं, अक्सर मुझे निम्नलिखित विफलता मिलती है: "org.apache.commons.mail.EmailException: निम्न सर्वर पर ईमेल भेजना विफल: aspmx.l.google.com:25 हमारे सिस्टम ने पाया है कि यह संदेश अनचाहे मेल की संभावना है। जीमेल को भेजे गए स्पैम की मात्रा को कम करने के लिए, यह संदेश अवरुद्ध कर दिया गया है " –

उत्तर

9

मेलआर वर्तमान में डेटा यूआरआई योजना (http://en.wikipedia.org/wiki/Data_URI_scheme) का उपयोग करके एन्कोड किए गए इनलाइन छवियों को हल करने का समर्थन नहीं करता है।

समय के लिए, मैं आपकी समस्या का समाधान करने के लिए निम्नलिखित समाधान का सुझाव देता हूं। भविष्य में, मैं इस मूल रूप से समर्थन करने के लिए मेलर प्राप्त करने में देखूंगा।

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

अब आप जिसके परिणामस्वरूप HTML भेज सकते हैं:

पहले, आर टर्मिनल से HTML फ़ाइल बनाने (यहां महत्वपूर्ण बात यह है कि विकल्प शामिल नहीं होते "base64_images" --- ?markdown::markdownHTMLOptions देखना है) मेलआर के माध्यम से फ़ाइल:

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 क्या मैं फाइलों का उपयोग कर सकता हूं। फ़ाइल (फ़ाइल) या फाइल इनपुट को चमकदार फाइलों से जोड़ने के लिए? – Apricot

संबंधित मुद्दे