تحميل وعرض وتحليل ملف MSG

يوضح هذا الموضوع كيفية تحميل ملف رسالة Microsoft Outlook (*.msg). الـ MapiMessage تُستخدم الفئة لتحميل ملفات MSG وتوفر عدة وظائف تحميل ثابتة لسيناريوهات مختلفة. يوضح مقطع الشفرة التالي كيفية تحميل ملفات MSG من ملف أو من تدفق.

تحميل ملفات MSG

يوضح مقطع الشفرة التالي كيفية تحميل ملفات MSG.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String dataDir = RunExamples.getDataDir_Outlook();

// Create an instance of MapiMessage from file
MapiMessage msg = MapiMessage.fromFile(dataDir + "message.msg");

// Get subject
System.out.println("Subject:" + msg.getSubject());

// Get from address
System.out.println("From:" + msg.getSenderEmailAddress());

// Get body
System.out.println("Body" + msg.getBody());

// Get recipients information
System.out.println("Recipient: " + msg.getRecipients());

// Get attachments
for (MapiAttachment att : msg.getAttachments())
{
    System.out.println("Attachment Name: " + att.getFileName());
    System.out.println("Attachment Display Name: " + att.getDisplayName());
}

يوضح مثال الشفرة التالي كيفية استخدام MailMessage لتحميل رسالة بصيغة MSG.

MailMessage eml = MailMessage.load("message.msg");

يجب ملاحظة أن الرسالة الناتجة يتم تحويلها إلى صيغة EML، بما في ذلك مرفقات الرسائل المدمجة. لا تستخدم طريقة التحميل هذه إذا كنت ترغب في الحفاظ على بعض خصائص تنسيق MSG المحددة للرسالة الأصلية.

للحفاظ على تنسيق المرفقات المدمجة الأصلي، استخدم الـ MsgLoadOptions.PreserveEmbeddedMessageFormat خاصية.

MsgLoadOptions msgLoadOptions = new MsgLoadOptions();
msgLoadOptions.setPreserveEmbeddedMessageFormat(true);
MailMessage msg = MailMessage.load(stream, msgLoadOptions);

التحميل من تدفق

يوضح مقطع الشفرة التالي كيفية تحميل ملف من تدفق.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// Create an instance of MapiMessage from file
try (FileInputStream stream = new FileInputStream(dataDir + "message.msg"))
{
    // Create an instance of MapiMessage from file
    MapiMessage msg = MapiMessage.fromStream(stream);

    // Get subject
    System.out.println("Subject:" + msg.getSubject());

    // Get from address
    System.out.println("From:" + msg.getSenderEmailAddress());

    // Get body
    System.out.println("Body" + msg.getBody());

}

تحويل EML إلى MSG مع الحفاظ على تنسيق EML المدمج

يمكن تحميل ملفات EML إلى MapiMessage فئة عن طريق إنشاء كائن من MailMessage الكائن وتمريره إلى MapiMessage.fromMailMessage طريقة. إذا كان ملف EML يحتوي على ملفات EML مدمجة، استخدم MapiConversionOptions.setPreserveEmbeddedMessageFormat للحفاظ على تنسيق ملفات EML المدمجة. يوضح مقطع الشفرة أدناه كيفية تحميل ملفات EML إلى MapiMessage مع الحفاظ على تنسيق ملفات EML المدمجة.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
String dataDir = RunExamples.getDataDir_Email();

MailMessage eml = MailMessage.load(dataDir + "sample.eml", new EmlLoadOptions());

MapiConversionOptions options = MapiConversionOptions.getUnicodeFormat();

//Preserve Embedded Message Format
options.setPreserveEmbeddedMessageFormat(true);

//Convert EML to MSG with Options
MapiMessage msg = MapiMessage.fromMailMessage(eml, options);