Laden, Anzeigen und Parsen von MSG‑Dateien

Dieses Thema erklärt, wie man eine Microsoft Outlook‑Nachrichtendatei (*.msg) lädt. Die MapiMessage Klasse wird verwendet, um MSG‑Dateien zu laden und bietet mehrere statische Lademethoden für verschiedene Szenarien. Das folgende Code‑Snippet zeigt, wie man MSG‑Dateien aus einer Datei oder aus einem Stream lädt.

Laden von MSG‑Dateien

Das folgende Code‑Snippet zeigt, wie man MSG‑Dateien lädt.

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

Das folgende Code‑Beispiel zeigt, wie man MailMessage verwendet, um eine Nachricht im MSG‑Format zu laden.

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

Es sollte beachtet werden, dass die resultierende Nachricht in das EML‑Format konvertiert wird, einschließlich eingebetteter Nachrichtenanhänge. Verwenden Sie diese Lademethode nicht, wenn Sie bestimmte MSG‑Formateigenschaften der Originalnachricht beibehalten wollen.

Um das Originalformat eingebetteter Nachrichtenanhänge beizubehalten, verwenden Sie die MsgLoadOptions.PreserveEmbeddedMessageFormat Eigenschaft.

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

Laden aus Stream

Das folgende Code‑Snippet zeigt, wie man eine Datei aus einem Stream lädt.

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

}

Konvertieren von EML zu MSG unter Beibehaltung des eingebetteten EML‑Formats

EML‑Dateien können geladen werden in MapiMessage Klasse, indem man ein MailMessage Objekt und übergeben es an MapiMessage.fromMailMessage Methode. Wenn die EML‑Datei eingebettete EML‑Dateien enthält, verwenden Sie MapiConversionOptions.setPreserveEmbeddedMessageFormat um das Format eingebetteter EML‑Dateien beizubehalten. Das nachstehende Code‑Snippet zeigt, wie EML‑Dateien in MapiMessage unter Beibehaltung des Formats eingebetteter EML‑Dateien.

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