में लिखने के बिना एक जैवमेल के माइमेमेसेज के अनुलग्नक के रूप में एक अपाचे पीओआई वर्कबुक जोड़ें, मैं WorkBook
(अपाचे पीओआई लाइब्रेरी से) "सीधे" MimeMessage
ऑब्जेक्ट (जावाम लाइब्रेरी से) को कैसे पास करना है, यह जानने का प्रयास कर रहा हूं।) एक अनुलग्नक के रूप में, इसे सीधे फाइल सिस्टम में लिखने के बिना।फाइल सिस्टम
यह करने के लिए सबसे आसान तरीका लगता है निम्नलिखित:
File attachmentSource = new File("tmpsource.xls");
WorkBook tmpWorkbook = new HSSFWorkBook();
//Do stuff with workbook
tmpWorkBook.write(new FileOutputStream(attachmentSource));
//Create all the Session, MimeMessage and MimeMultipart
MimeBodyPart attachment = new MimeBodyPart();
attachment.setDataHandler(new DataHandler(new FileDataSource(attachmentSource)));
attachment.setFileName(attachmentSource.getName());
//Do stuff with the message and send it
इस तरह यह काम करता है, लेकिन मैं नीचे एफएस में फ़ाइल में लिखने के लिए मजबूर कर रहा हूँ।
संबंधित प्रश्नों को पढ़ते समय मैं के बारे में ByteArrayInputStream
और ByteArrayOutputStream
पता चला और मेरी समस्या का समाधान करने के लिए (जब तक फ़ाइल 2GB
जो बहुत संभावना नहीं लगता है के लिए तक पहुँच जाती है) लग रहा था।
मुझे उम्मीद है कि मैंने खुद को समझाया है, मुझे लगता है कि बाइटएरे धाराएं चाल चलती हैं, जिस तरह से किसी भी मदद या सलाह की सराहना की जाती है!
[2011/09/29] मैं एक बहुत ही सरल DataSource
कार्यान्वयन कहा जाता है (लगता है क्या) ByteArrayDataSource
बनाया, तो मैं स्वत: हेडर सेटअप और Base64 एन्कोडिंग की है।
ठीक है, मैं सच में आशा व्यक्त की कि इस तरह से काम किया लेकिन बाइनरी डेटा में सीधे लिखा है मेल बॉडी, इसलिए कोई कूल स्वचालित हेडर सेट अप नहीं है और कोई ठंडा बेस 64 एन्कोडिंग नहीं है। :(क्या मैं कुछ भूल रहा हूँ? – Minkiele