بارگذاری، مشاهده و تجزیه فایل 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);

بارگذاری از جریان

قطعه کد زیر نشان می‌دهد چگونه یک فایل را از یک جریان (stream) بارگذاری کنید.

// 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);