Erstellen und Speichern von Outlook‑Dateien
Aspose.Email unterstützt das Erstellen von Outlook‑Message‑(MSG‑)Dateien. Dieser Artikel erklärt, wie man:
- Outlook‑Nachrichten erstellen und speichern
- MSG‑Dateien mit Anhängen erstellen
- MSG‑Dateien mit RTF‑Body erstellen
- Nachricht im Entwurfsstatus speichern
Outlook‑Nachrichten erstellen und speichern
Die MailMessage Klasse hat die Save() 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 Save() Methode nimmt den Dateinamen als Argument. Zusätzlich können Outlook‑Nachrichten mit einem komprimierter RTF‑Body unter Verwendung der MapiConversionOptions.
- Erstellen Sie eine neue Instanz von MailMessage Klasse akzeptiert und die From-, To-, Subject‑ und Body‑Eigenschaften festlegt.
- Rufen Sie die MapiMessage Klasse FromMailMessage Methode, die das Objekt des MailMessage Typ. Die FromMailMessage Methode konvertiert das MailMessage in ein MapiMessage (MSG).
- Rufen Sie die MapiMessage.Save() Methode, um die MSG‑Datei zu speichern.
Fügen Sie den folgenden Code im Click‑Ereignis der Schaltflächen‑Steuerung der Windows‑Anwendung ein.
MSG‑Dateien mit Anhängen erstellen
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. Anhänge hinzufügen, indem die Add()‑Methode auf dem MailMessage.Attachments Sammlung hinzugefügt. Fügen Sie der oben erstellten Form eine Listbox hinzu und zwei Schaltflächen, eine zum Hinzufügen und eine zum Entfernen von Anhängen. Die Anwendung, die Anhänge hinzufügt, funktioniert so:
- Wenn die Schaltfläche Add Attachment geklickt wird, erscheint ein Open File Dialog, um Benutzern das Durchsuchen und Auswählen des Anhangs zu ermöglichen.
- Nachdem eine Datei ausgewählt wurde, wird der vollständige Pfad einer Liste hinzugefügt.
- Wenn die MSG‑Datei erstellt wird, werden die Anhangspfade aus der Liste übernommen und zum MailMessage.Attachments Sammlung.
Schreiben Sie den folgenden Code in das Klick‑Ereignis des Add Attachment‑Buttons.
Wenn der Remove Attachment‑Button geklickt wird, entfernen Sie die ausgewählten Elemente aus der Listbox. Schreiben Sie den folgenden Code in das Klick‑Ereignis des Remove Attachment‑Buttons.
Fügen Sie den Code zum Hinzufügen der Anhänge zu dem MailMessage Instanz. Der endgültige Code für die Write‑Msg‑Funktion ist unten geschrieben.
MSG‑Dateien mit RTF‑Body erstellen
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.
RTF‑Komprimierung für MAPI‑Nachrichtenkörper
HINWEIS: Der Komprimierungsprozess kann die Leistung beim Erstellen von Nachrichten verlangsamen. Durch das Verständnis dieses Umstands und die Konfiguration des Komprimierungsflags basierend auf spezifischen Anforderungen und dem Kompromiss zwischen Dateigröße und Leistung können Entwickler die Erstellung von MSG‑ und PST‑Dateien beim Umgang mit E‑Mail‑Nachrichten effektiv steuern.
Die RTF-Komprimierung soll die Größe einer Nachricht sowie die resultierenden PST‑Dateien (Personal Storage Table) reduzieren, die Microsoft Outlook zur Speicherung von E‑Mail‑Nachrichten und anderen Daten verwendet. Durch die Verwendung der RTF‑Komprimierung beim Konfigurieren des Nachrichtenkörpers können Entwickler den für die Speicherung von E‑Mail‑Nachrichten benötigten Speicher reduzieren oder die Netzwerkbandbreite beim Übertragen von Nachrichten optimieren.
Zu diesem Zweck wurden zwei überladene Methoden entwickelt:
-
MapiMessageItemBase.SetBodyContent(string content, BodyContentType contentType, bool compression): Diese Methode ermöglicht das Festlegen des Nachrichtenkörpers mit dem angegebenen String‑Content und Angabe des body‑contentType (z. B. Klartext, HTML usw.). Der optionale Parameter compression ist ein Wert, der angibt, ob der Inhalt mit RTF‑Kompression komprimiert werden soll. Ist compression true, wird der Inhalt komprimiert, was zu einer kleineren Nachrichtengröße führt.
-
MapiMessageItemBase.SetBodyRtf(string content, bool compression): Diese Methode setzt speziell den Inhalt des Nachrichtenkörpers im RTF‑Format. Der Parameter content ist ein String, der den RTF‑Inhalt darstellt, der als Nachrichtenkörper festgelegt wird. Wie bei der vorherigen Methode bestimmt der Parameter compression, ob RTF‑Kompression auf den Inhalt angewendet werden soll. Ist compression true, wird der RTF‑Inhalt komprimiert, um die Größe zu reduzieren.
Das folgende Codebeispiel zeigt, wie man den HTML‑Body setzt und komprimiert hält:
var msg = new MapiMessage("from@doamin.com", "to@domain.com", "subject", "body");
// set the html body and keep it compressed
// this will reduce the message size
msg.SetBodyContent(htmlBody, BodyContentType.Html, true);
Es gibt auch ein MapiConversionOptions.UseBodyCompression Eigenschaft. Wenn diese Eigenschaft aktiviert ist, wird bei der Konvertierung von MailMessage zu MapiMessage eine RTF‑Body‑Kompression angewendet, was zu einer kleineren MSG‑Dateigröße führt. Im folgenden Codebeispiel wird dies gezeigt:
var message = MailMessage.Load(fileName);
var options = new MapiConversionOptions();
options.UseBodyCompression = true;
var msg = MapiMessage.FromMailMessage(message, options);
Nachricht im Entwurfsstatus speichern
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.