2009-10-22 14 views
7

का उपयोग कर एक HTML ईमेल में फ़ाइल को कैसे संलग्न करें I Apache Commons Email 1.1 का उपयोग कर रहा हूं और मैं यह नहीं समझ सकता कि फ़ाइल को HtmlEmail में कैसे संलग्न किया जाए। अगर मैं नीचे दिया गया कोड चलाता हूं, तो मुझे एक अनुलग्नक वाला ईमेल मिलता है, लेकिन HTML संदेश संलग्नक के रूप में भी आता है।अपाचे कॉमन्स ईमेल

यदि मैं ईमेल.टाच() को कॉल नहीं करता हूं, तो HTML संदेश आते हैं जैसा कि आप उम्मीद करेंगे, लेकिन मुझे HTML संदेश दोनों को अटैचमेंट और आने की आवश्यकता है। मैं क्या खो रहा हूँ?

HtmlEmail email = new HtmlEmail(); 
    email.setHostName("localhost"); 
    email.addTo("[email protected]", "Test"); 
    email.setFrom("[email protected]", "Test App"); 
    email.setSubject("Test message"); 
    email.setHtmlMsg("<div style='font-size: 20px; color: green;'>This is html email</div>"); 

    EmailAttachment attachment = new EmailAttachment(); 
    attachment.setPath(pdfPath); 
    attachment.setDisposition(EmailAttachment.ATTACHMENT); 
    email.attach(attachment); 

    email.send(); 
+0

ओह .. वैसे, मैं अपने परीक्षण ग्राहक के रूप में जीमेल उपयोग कर रहा था। – delux247

+0

क्या आपने email.setContent (javax.mail.internet.MimeMultipart aMimeMultipart) करके सामग्री प्रकार को मजबूर करने का प्रयास किया था? यह शायद अनावश्यक है लेकिन शॉट – Bostone

+0

@ droidin-net के लायक है मुझे यकीन नहीं है कि मैं समझता हूं कि आपका क्या मतलब है। हालांकि, अपाचे कॉमन्स ईमेल का पूरा बिंदु आपको MimeMultipart सामान से सारणी देना था। – delux247

उत्तर

12
email.attach(new ByteArrayDataSource(pdfBytes, "application/pdf"), 
     "document.pdf", "Document description", 
     EmailAttachment.ATTACHMENT); 

इस commons- साथ काम करता है ईमेल 1.1।

pdfBytesbyte[] होना चाहिए जो पीडीएफ दस्तावेज़ के बाइट्स हो। यदि यह आपके अनुरूप नहीं है, तो आप अन्य DataSource कार्यान्वयन का प्रयास कर सकते हैं, लेकिन मैं गारंटी नहीं दे सकता कि वे काम करेंगे (हालांकि उन्हें चाहिए)।

(एक से ऊपर है org.apache.commons.mail.ByteArrayDataSource)

3

मैं तुम्हें 1.1 के रूप में वर्तमान रिलीज उम्मीदवार v1.2 RC2 (मुझे लगता है कि आपको लगता है कि का उपयोग करें) की कोशिश का सुझाव है कुछ html लेआउट समस्याओं

commons-email 1.2 RC2

4

ध्यान दें कि का उपयोग करते हुए:

email.attach(new ByteArrayDataSource(pdfBytes, "application/pdf"), 
     "document.pdf", "Document description", 
     EmailAttachment.ATTACHMENT); 
पर एक HtmlEmail जिसके परिणामस्वरूप ईमेल कॉमन्स-ईमेल 1.1 का उपयोग कर का कारण बनता है अपने संदेश (पाठ या HTML) के लिए एक के रूप में संलग्न

लगाव।

MultiPartEmail पर स्विच करने से यह तय हो गया।

0

मैं HtmlEmail # एम्बेड (यूआरएल, स्ट्रिंग) पद्धति का उपयोग:

File pdf = new File(pdfPath); 
email.embed(pdf.toURI().toURL(), pdf.getName) 
संबंधित मुद्दे