Načítání, prohlížení a parsování MSG souboru

Toto téma vysvětluje, jak načíst soubor Microsoft Outlook zprávy (*.msg). MapiMessage třída se používá k načítání souborů MSG a poskytuje několik statických funkcí načítání pro různé scénáře. Následující úryvek kódu vám ukáže, jak načíst MSG soubory ze souboru nebo ze streamu.

Načítání souborů MSG

Následující úryvek kódu vám ukáže, jak načíst soubory 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());
}

Následující příklad kódu ukazuje, jak použít MailMessage k načtení zprávy ve formátu MSG.

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

Je třeba poznamenat, že výsledná zpráva je převedena do formátu EML, včetně vložených příloh zprávy. Nepoužívejte tuto metodu načítání, pokud chcete zachovat některé specifické vlastnosti formátu MSG původní zprávy.

Chcete‑li zachovat původní formát vložených příloh zprávy, použijte MsgLoadOptions.PreserveEmbeddedMessageFormat vlastnost.

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

Načítání ze streamu

Následující úryvek kódu ukazuje, jak načíst soubor ze streamu.

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

}

Převod EML na MSG při zachování formátu vložených EML

Soubory EML mohou být načteny do MapiMessage třída vytvořením instance MailMessage objekt a předání jej MapiMessage.fromMailMessage metoda. Pokud soubor EML obsahuje vložené soubory EML, použijte MapiConversionOptions.setPreserveEmbeddedMessageFormat pro zachování formátu vložených souborů EML. Níže uvedený úryvek kódu ukazuje, jak načíst soubory EML do MapiMessage při zachování formátu vložených souborů 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);