سؤال

سأقوم بإنشاء ملف EML مع مرفق باستخدام Javamail.

لقد قمت بإنشاء ملف EML بسيط بنجاح ، لكن إضافة مرفق لا يعمل بشكل صحيح. سأضيف ملف PDF. سيتم إنشاء ملف EML الخاص بي بنجاح. إذا قمت بفتح ملف EML الذي تم إنشاؤه باستخدام Outlook ، فسأجد ملف PDF الخاص بي كمرفق ولكن سأجد ملف EML نفسه كمرفق. لا أحد لديه فكرة؟

لقد جربت نوعين (مع نفس النتيجة) ، استخدمت FileDataSource الفصل والطريقة البسيطة مع MimeBodyPart#attachFile(File).

سأقوم بنشر مثال:

File pdfFile = new File("somePdfFile");

Properties p = System.getProperties();
Session session = Session.getInstance(p);
MimeMessage message = new MimeMessage(session);
// MimeBodyPart txt = new MimeBodyPart();
// txt.setText("");
MimeBodyPart mbp = new MimeBodyPart();
mbp.attachFile(attachment);
// FileDataSource fds = new FileDataSource(attachment);
// fds.setFileTypeMap(new FileTypeMap() {
//    
//   @Override
//   public String getContentType(String arg0) {
//     return "application/pdf";
//   }
//    
//    @Override
//    public String getContentType(File file) {
//      return "application/pdf";
//    }
//      
//  });
//  mbp.setDataHandler(new DataHandler(fds));
//  mbp.setFileName("\"" + attachment.getName() + "\"");
//  mbp.setDisposition(MimePart.ATTACHMENT);
//  mbp.setHeader("Content-ID", "Attachment");
Multipart mp = new MimeMultipart();
//  mp.addBodyPart(txt);
mp.addBodyPart(mbp);
message.setContent(mp);
File emlFile = new File("message.eml");
emlFile.createNewFile();
message.writeTo(new FileOutputStream(emlFile));

// do something with the EML file
// Desktop.getDesktop().open(emlFile);

إنشاء ملف .eml (البريد الإلكتروني) في جافا


شكرا لردكم. لقد قمت بتحميل ملف PDF (الذي أستخدمه للاختبار ، إنه عبارة عن HelloWorld بسيط تم إنشاؤه مع تقارير Crystal) وملف EML الذي تم إنشاؤه والذي يجب أن يتضمن ملف PDF.

لقد لاحظت للتو أنه إذا فتحت ملف EML المرتبط مع Apple Mail أو مع Outlook Express ، فهو يعمل (ولكن بدون إمكانية تحرير). ربما تكون مسألة Microsoft Outlook؟

تتم إزالة الروابط

هل كانت مفيدة؟

المحلول

يجب أن تحاول إضافة خطوط الرأس التي ذكرتها إلى أعلى الرسالة ومعرفة كيف تتعامل Outlook معها بعد ذلك. أضف To:, From:, Subject: وربما حتى أ Date: مع وجود بيانات حقيقية فيها ، ومن المرجح أن يعاملها Outlook كرسالة ، بل مجرد ملف.

نصائح أخرى

Zubi ، يبدو أن المشكلة هي أن نوع المحتوى الموجود على المرفق يتم تعيينه على "تطبيق/ثماني الثماني". لذلك ، يبدو أن قارئ البريد يأخذ ملف PDF كعرض بديل لجسم "النص" للرسالة غير الموجودة ، (إنه فارغ فقط).

سيتعين عليك أن تسامحني ، لقد مر أكثر من عام منذ أن تعاملت مع MIME ، لكنني أعتقد أنك تريد أن تضع بعض نص الجسم في الرسالة ، ب) تأكد من النوع الموجود على المرفق تم تعيينه على التطبيق/PDF. نأمل أن يمنع هذا من قراءة البريد من محاولة عرض PDF باعتباره الهيئة الأساسية للرسالة.

بخلاف ذلك ، يبدو الأمر طبيعيًا ... الآن ، قد تكون Outlook العاهرة لأنه لا توجد رؤوس RFC 822 في الجسم الرئيسي. قد ترغب في إضافة ما لا يقل عن أ From:, To:, ، و Subject:.

اجتازت الرسالة رمز تحليل MIME الخاص بي ...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top