Memuat, Menampilkan, dan Mengurai file MSG

Topik ini menjelaskan cara memuat file Pesan Microsoft Outlook (*.msg). MapiMessage kelas digunakan untuk memuat file MSG dan menyediakan beberapa fungsi pemuatan statis untuk berbagai skenario. Cuplikan kode berikut menunjukkan cara memuat file MSG dari file atau dari aliran.

Memuat File MSG

Cuplikan kode berikut menunjukkan cara memuat file 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());
}

Contoh kode berikut menunjukkan cara menggunakan MailMessage untuk memuat pesan dalam format MSG.

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

Perlu dicatat bahwa pesan yang dihasilkan dikonversi ke format EML, termasuk lampiran pesan yang disematkan. Jangan gunakan metode pemuatan ini jika Anda ingin mempertahankan beberapa properti format msg tertentu dari pesan asli.

Untuk mempertahankan format asli lampiran pesan yang disematkan, gunakan MsgLoadOptions.PreserveEmbeddedMessageFormat properti.

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

Memuat dari Stream

Cuplikan kode berikut menunjukkan cara memuat file dari aliran.

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

}

Mengonversi EML ke MSG Sambil Mempertahankan Format EML yang Disematkan

File EML dapat dimuat ke dalam MapiMessage kelas dengan menginstansiasi sebuah MailMessage objek dan melewatkannya ke MapiMessage.fromMailMessage metode. Jika file EML berisi file EML yang disematkan, gunakan MapiConversionOptions.setPreserveEmbeddedMessageFormat untuk mempertahankan format file EML yang disematkan. Cuplikan kode di bawah ini menunjukkan cara memuat file EML ke dalam MapiMessage sementara mempertahankan format file EML yang disematkan.

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