Erstellen und Speichern von MSG‑Dateien

Aspose.Email unterstützt das Erstellen von Outlook‑Message‑(MSG‑)Dateien. Dieser Artikel erklärt, wie man:

  • Erstellen Sie MSG‑Nachrichten.
  • Erstellen Sie MSG‑Nachrichten mit Anhängen.
  • Erstellen Sie eine MSG‑Nachricht mit einem RTF‑Body.
  • Speichern Sie eine Nachricht als Entwurf.
  • Arbeiten mit Body‑Kompression.

Erstellen und Speichern von Outlook‑Nachrichten

Die MailMessage Klasse hat die Speichern Methode, die Outlook‑MSG‑Dateien auf Festplatte oder Stream speichern kann. Die Code‑Snippets unten erstellen eine Instanz der MailMessage Klasse, setzen Sie Eigenschaften wie from, to, subject und body. Die Speichern Methode nimmt den Dateinamen als Argument. Zusätzlich können Outlook‑Nachrichten mit einem komprimierter RTF‑Body unter Verwendung der MapiConversionOptions.

  1. Erstellen Sie eine neue Instanz von MailMessage Klasse akzeptiert und die From-, To-, Subject‑ und Body‑Eigenschaften festlegt.
  2. Rufen Sie die MapiMessage Klasse fromMailMessage Methode, die das Objekt des MailMessage Typ. Die fromMailMessage Methode konvertiert das MailMessage in ein MapiMessage (MSG).
  3. Rufen Sie die MapiMessage.save Methode, um die MSG‑Datei zu speichern.
// 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 = "outlook/";

// Create an instance of the MailMessage class
MailMessage mailMsg = new MailMessage();

// Set from, to, subject and body properties
mailMsg.setFrom(MailAddress.to_MailAddress("sender@domain.com"));
mailMsg.setTo(MailAddressCollection.to_MailAddressCollection("receiver@domain.com"));
mailMsg.setSubject("This is test message");
mailMsg.setBody("This is test body");

// Create an instance of the MapiMessage class and pass MailMessage as argument
MapiMessage outlookMsg = MapiMessage.fromMailMessage(mailMsg);

// Save the message (MSG) file
String strMsgFile = "CreatingAndSavingOutlookMessages_out.msg";
outlookMsg.save(dataDir + strMsgFile);

Erstellen von MSG‑Dateien mit Anhängen

Im obigen Beispiel, haben wir eine einfache MSG‑Datei erstellt. Aspose.Email unterstützt außerdem das Speichern von Nachrichten‑Dateien mit Anhängen. Alles, was Sie tun müssen, ist, die Anhänge zur MailMessage Instanz. Fügen Sie Anhänge hinzu, indem Sie die addItem-Methode auf der MailMessage.Attachments Sammlung.

// 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 = "outlook/";

String[] files = new String[2];
files[0] = "attachment.doc";
files[1] = "attachment.png";

// Create an instance of the MailMessage class
MailMessage mailMsg = new MailMessage();

// Set from, to, subject and body properties
mailMsg.setFrom(MailAddress.to_MailAddress("sender@domain.com"));
mailMsg.setTo(MailAddressCollection.to_MailAddressCollection("receiver@domain.com"));
mailMsg.setSubject("This is test message");
mailMsg.setBody("This is test body");

// Add the attachments
for (String strFileName : files)
{
    mailMsg.getAttachments().addItem(new Attachment(strFileName));
}

// Create an instance of MapiMessage class and pass MailMessage as argument
MapiMessage outlookMsg = MapiMessage.fromMailMessage(mailMsg);
String strMsgFile = "CreateMessagesWithAttachments.msg";
outlookMsg.save(dataDir + strMsgFile);

Erstellen von MSG‑Dateien mit RTF‑Body

Sie können mit Aspose.Email auch Outlook‑Message‑(MSG‑)Dateien mit Rich‑Text‑(RTF‑)Body erstellen. Der RTF‑Body unterstützt Textformatierung. Erstellen Sie einen, indem Sie die MailMessage.HtmlBody Eigenschaft. Wenn Sie ein MailMessage Instanz in ein MapiMessage In diesem Fall wird der HTML‑Body in RTF konvertiert. Auf diese Weise bleibt die Formatierung des E‑Mail‑Bodies erhalten.

Das folgende Beispiel erstellt eine MSG‑Datei mit einem RTF‑Body. Im HTML‑Body gibt es eine Überschrift sowie fette und unterstrichene Formatierungen. Diese Formatierungen bleiben erhalten, wenn das HTML in RTF konvertiert wird.

// 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 = "outlook/";

// Create an instance of the MailMessage class
MailMessage mailMsg = new MailMessage();

// Set from, to, subject and body properties
mailMsg.setFrom(MailAddress.to_MailAddress("sender@domain.com"));
mailMsg.setTo(MailAddressCollection.to_MailAddressCollection("receiver@domain.com"));
mailMsg.setSubject("This is test message");
mailMsg.setHtmlBody("<h3>rtf example</h3><p>creating an <b><u>outlook message (msg)</u></b> file using Aspose.Email.</p>");

MapiMessage outlookMsg = MapiMessage.fromMailMessage(mailMsg);
outlookMsg.save(dataDir + "CreatingMSGFilesWithRTFBody_out.msg");

Speichern der Nachricht im Entwurfsstatus

E‑Mails werden als Entwürfe gespeichert, wenn jemand mit deren Bearbeitung begonnen hat, aber später zurückkehren möchte, um sie fertigzustellen. Aspose.Email unterstützt das Speichern von E‑Mail‑Nachrichten im Entwurfsstatus durch Setzen eines Nachrichten‑Flags. Unten steht ein Beispielcode, um eine Outlook‑E‑Mail‑Nachricht (MSG) als Entwurf zu speichern.

// 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 = "outlook/";

// Change properties of an existing MSG file
String strExistingMsg = "message.msg";

// Load the existing file in MailMessage and Change the properties
MailMessage msg = MailMessage.load(dataDir + strExistingMsg, new MsgLoadOptions());
msg.setSubject(msg.getSubject() + " NEW SUBJECT (updated by Aspose.Email)");
msg.setHtmlBody(msg.getHtmlBody() + " NEW BODY (udpated by Aspose.Email)");

// Create an instance of type MapiMessage from MailMessage, Set message flag to un-sent (draft status) and Save it
MapiMessage mapiMsg = MapiMessage.fromMailMessage(msg);
mapiMsg.setMessageFlags(MapiMessageFlags.MSGFLAG_UNSENT);
mapiMsg.save(dataDir + "SavingMessageInDraftStatus_out.msg");

Auswirkungen der Body‑Kompression

Die RTF‑Body‑Kompressionsmethode kann verwendet werden, um eine kleinere MSG‑Dateigröße zu erzeugen. Dies führt jedoch zu einer langsameren Erstellungszeit. Um Nachrichten mit schnellerer Erstellung zu erzeugen, setzen Sie das Flag auf false. Dieses Flag wirkt sich wiederum auf die erstellten PSTs aus: kleinere MSG‑Dateien führen zu kleineren PSTs, und große MSG‑Dateien führen zu langsameren PST‑Erstellungen.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
String fileName = "outlook/test.msg";

MailMessage message = MailMessage.load(fileName);
MapiConversionOptions options = new MapiConversionOptions();
options.setUseBodyCompression(true);
MapiMessage ae_mapi = MapiMessage.fromMailMessage(message, options);