E‑Mail‑Nachricht laden und speichern
E‑Mail‑Nachricht laden
Aus EML laden
Dieser Abschnitt beschreibt, wie eine EML‑Datei in ein MailMessage‑Objekt geladen wird mit dem EmlLoadOptions Klasse. Die EmlLoadOptions‑Klasse bietet verschiedene Optionen, um das Laden der EML‑Datei anzupassen, zum Beispiel das Beibehalten eingebetteter Nachrichtenformate oder die Steuerung des Ladens von TNEF‑Anhängen.
- Initialisieren Sie eine Instanz von EmlLoadOptions.
- Konfigurieren Sie die Ladeoptionen nach Bedarf.
- Verwenden Sie die MailMessage.Load() Methode zum Laden der EML‑Datei mit den angegebenen Optionen.
using Aspose.Email;
// Initialize EmlLoadOptions
var loadOptions = new EmlLoadOptions
{
// Configure load options
PreferredTextEncoding = Encoding.UTF8, // Sets preferred encoding for the message
PreserveEmbeddedMessageFormat = true, // Preserve format of embedded messages
PreserveTnefAttachments = true, // Control TNEF attachment loading
RemoveSignature = false // Do not remove the signature
};
// Load the EML file
var eml = MailMessage.Load("file.eml", loadOptions);
Eigenschaften von EmlLoadOptions
- PreferredTextEncoding: Legt die bevorzugte Kodierung für Betreff und Body der Nachricht fest. Standard ist
null. - PreserveEmbeddedMessageFormat: Gibt an, ob das Format eingebetteter Nachrichten beim Laden beibehalten werden soll. Standard ist
false. - PreserveTnefAttachments: Steuert das Laden von TNEF‑Anhängen. Standard ist
false. - RemoveSignature: Gibt an, ob die Signatur beim Laden entfernt werden soll. Standard ist
false.
Einbettungsnachrichtenformat beibehalten
Nachricht mit Signatur/l ohne Signatur laden
Die Signatur-Erhaltung ist standardmäßig beim Laden von EML-Dateien unterstützt. Um die Signatur zu entfernen, können Sie das LoadOptions.RemoveSignature Eigenschaft auf true setzen.
Das untenstehende Codebeispiel zeigt, wie man beim Laden einer Nachricht eine Signatur entfernt:
var msg = MailMessage.Load(fileName, new EmlLoadOptions() { RemoveSignature = true});
Aus EMLX laden
Der folgende Abschnitt behandelt das Laden einer EMLX-Datei mit dem EmlxLoadOptions Klasse. Diese Klasse bietet Optionen ähnlich wie EmlLoadOptions und ermöglicht die Steuerung von Kodierung, Signaturentfernung und mehr.
- Instanziieren Sie die EmlxLoadOptions.
- Konfigurieren Sie die Eigenschaften nach Bedarf.
- Verwenden Sie die MailMessage.Load() Methode zum Laden der EMLX-Datei.
using Aspose.Email;
// Instantiate EmlxLoadOptions
var loadOptions = new EmlxLoadOptions
{
// Configure load options
PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
PreserveEmbeddedMessageFormat = true, // Preserve embedded message formats
RemoveSignature = true // Remove signatures during loading
};
// Load the EMLX file
var emlx = MailMessage.Load("file.emlx", loadOptions);
Eigenschaften von EmlxLoadOptions
- PreferredTextEncoding: Legt die bevorzugte Kodierung für Betreff und Body der Nachricht fest. Standard ist
null. - PreserveEmbeddedMessageFormat: Gibt an, ob das Format eingebetteter Nachrichten beibehalten werden soll. Standard ist
false. - RemoveSignature: Gibt an, ob die Signatur beim Laden entfernt werden soll. Standard ist
false.
Aus HTML laden
Erfahren Sie, wie Sie eine HTML-Datei in eine MailMessage laden mit dem HtmlLoadOptions Klasse. Diese Klasse ist speziell dafür konzipiert, HTML-Inhalte zu verarbeiten, mit Optionen zur Ressourcenverwaltung und zum Hinzufügen von Nur-Text-Ansichten.
- Initialisieren Sie eine Instanz von HtmlLoadOptions.
- Konfigurieren Sie die erforderlichen Eigenschaften.
- Verwenden Sie die MailMessage.Load() Methode, um die HTML-Datei mit den angegebenen Optionen zu laden.
using Aspose.Email;
// Initialize HtmlLoadOptions
var loadOptions = new HtmlLoadOptions
{
// Configure load options
PathToResources = "resources/", // Path to directory containing resource files
PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
ShouldAddPlainTextView = true // Add plain text view of the body
};
// Load the HTML file
var html = MailMessage.Load("file.html", loadOptions);
Eigenschaften von HtmlLoadOptions
- PathToResources: Definiert den Pfad zu dem Verzeichnis, das Ressourcendateien (z. B. Bilder) enthält.
- PreferredTextEncoding: Legt die bevorzugte Kodierung für Betreff und Body der Nachricht fest. Standard ist
null. - PreserveEmbeddedMessageFormat: Bestimmt, ob das Format eingebetteter Nachrichten erhalten bleiben soll. Standard ist
false. - ShouldAddPlainTextView: Gibt an, ob eine Nur-Text-Ansicht des Nachrichtenkörpers hinzugefügt werden soll. Standard ist
false.
Aus MHTML laden
Dieser Abschnitt erklärt, wie man eine MHTML-Datei mittels MhtmlLoadOptions Klasse. Die MhtmlLoadOptions-Klasse bietet Optionen zur Verwaltung der Kodierung, zum Erhalt eingebetteter Nachrichtenformate und zur Handhabung von TNEF-Anhängen.
- Erstellen Sie eine Instanz von MhtmlLoadOptions.
- Konfigurieren Sie die gewünschten Eigenschaften.
- Laden Sie die MHTML-Datei mit der MailMessage.Load() Methode.
using Aspose.Email;
// Create MhtmlLoadOptions
var loadOptions = new MhtmlLoadOptions
{
// Set load options
PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
PreserveEmbeddedMessageFormat = true, // Preserve format of embedded messages
PreserveTnefAttachments = true, // Handle TNEF attachments
RemoveSignature = false // Keep the signature
};
// Load the MHTML file
var mhtml = MailMessage.Load("file.mht", loadOptions);
Eigenschaften von MhtmlLoadOptions
- MessageFormat: Stellt das Nachrichtenformat dar, das EML, MSG oder MHTML sein kann. Standard ist EML.
- PreferredTextEncoding: Legt die bevorzugte Kodierung für Betreff und Body der Nachricht fest. Standard ist
null. - PreserveEmbeddedMessageFormat: Bestimmt, ob das Format eingebetteter Nachrichten erhalten bleiben soll. Standard ist
false. - PreserveTnefAttachments: Steuert das Laden von TNEF‑Anhängen. Standard ist
false. - RemoveSignature: Gibt an, ob die Signatur beim Laden entfernt werden soll. Standard ist
false.
Aus MSG laden
Dieser Abschnitt erklärt, wie man eine MSG-Datei in ein MailMessage-Objekt lädt mit dem MsgLoadOptions Klasse. Die MsgLoadOptions-Klasse bietet verschiedene Eigenschaften zur Handhabung des Ladens von MSG-Dateien, einschließlich Optionen zum Erhalt von RTF-Inhalten oder zur Verwaltung von TNEF-Anhängen.
- Erstellen Sie eine Instanz von MsgLoadOptions.
- Legen Sie die gewünschten Eigenschaften fest, um das Laden anzupassen.
- Laden Sie die MSG-Datei mit dem MailMessage.Load() Methode.
using Aspose.Email;
// Create MsgLoadOptions
var loadOptions = new MsgLoadOptions
{
// Set load options
KeepOriginalEmailAddresses = true, // Preserve original email addresses
PreferredTextEncoding = Encoding.UTF8, // Set preferred encoding
PreserveRtfContent = true, // Keep RTF content in the message
PreserveTnefAttachments = true, // Handle TNEF attachments
RemoveSignature = false, // Keep the signature
Timeout = 5000 // Set timeout to 5 seconds
};
// Load the MSG file
var msg = MailMessage.Load("file.msg", loadOptions);
Eigenschaften von MsgLoadOptions
- KeepOriginalEmailAddresses: Gibt an, ob ursprüngliche E-Mail-Adressen beibehalten werden sollen. Standard ist
false. - PreferredTextEncoding: Definiert die bevorzugte Kodierung für Betreff und Body der Nachricht. Standard ist
null. - PreserveEmbeddedMessageFormat: Bestimmt, ob das Format eingebetteter Nachrichten erhalten bleiben soll. Standard ist
false. - PreserveRtfContent: Gibt an, ob RTF-Body-Inhalt im
MailMessage. Standard istfalse. - PreserveTnefAttachments: Steuert das Laden von TNEF-Anhängen. Standard ist
false. - RemoveSignature: Entscheidet, ob die Signatur beim Laden entfernt werden soll. Standard ist
false. - Timeout: Begrenzt die Formatierungszeit in Millisekunden während der Konvertierung. Standard ist 3000 ms.
Aus TNEF laden
Erfahren Sie, wie Sie eine TNEF eml-Datei laden mit dem TnefLoadOptions Klasse. Diese Klasse bietet Optionen zur Verwaltung der Kodierung und zum Entfernen von Signaturen während des Ladevorgangs.
- Instanziieren Sie die TnefLoadOptions.
- Konfigurieren Sie die Eigenschaften nach Bedarf.
- Verwenden Sie die MailMessage.Load() Methode zum Laden der TNEF‑Datei.
using Aspose.Email;
// Instantiate TnefLoadOptions
var loadOptions = new TnefLoadOptions
{
// Configure load options
PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
PreserveEmbeddedMessageFormat = true, // Preserve embedded message formats
RemoveSignature = true // Remove signatures during loading
};
// Load the TNEF file
var tnef = MailMessage.Load("file.eml", loadOptions);
Eigenschaften von TnefLoadOptions
- MessageFormat: Gibt das Format der Mail‑Nachricht an, z. B. EML, MSG oder MHTML. Standard ist EML.
- PreferredTextEncoding: Legt die bevorzugte Kodierung für Betreff und Body der Nachricht fest. Standard ist
null. - PreserveEmbeddedMessageFormat: Gibt an, ob das Format eingebetteter Nachrichten beibehalten werden soll. Standard ist
false. - RemoveSignature: Gibt an, ob die Signatur beim Laden entfernt werden soll. Standard ist
false.
Erkennen von Dateiformaten
Aspose.Email‑API bietet die Möglichkeit, das Dateiformat der bereitgestellten Nachrichtendatei zu erkennen. Die DetectFileFormat Methode von FileFormatUtil Klasse kann hierfür verwendet werden. Die folgenden Klassen und Methoden können zum Erkennen des geladenen Dateiformats verwendet werden.
- FileFormatType Klasse
- FileFormatInfo Klasse
- FileFormatUtil Klasse
- FileFormatUtil.DetectFileFormat(Stream) Method
- FileFormatUtil.DetectFileFormat(String) Method
Das folgende Code‑Snippet zeigt, wie Dateiformate erkannt werden können.
Nachrichten speichern und konvertieren
Aspose.Email erleichtert die Konvertierung beliebiger Nachrichtentypen in ein anderes Format. Um diese Funktion zu demonstrieren, lädt der Code in diesem Artikel drei Nachrichtentypen von der Festplatte und speichert sie in anderen Formaten zurück. Die Basisklasse SaveOptions und die Klassen EmlSaveOptions, MsgSaveOptions, MhtSaveOptions, HtmlSaveOptions für zusätzliche Einstellungen beim Speichern MailMessage kann zum Speichern von Nachrichten in andere Formate verwendet werden. Der Artikel zeigt, wie diese Klassen verwendet werden, um eine Beispiel‑E‑Mail zu speichern als:
- EML‑Format.
- Outlook‑MSG.
- MHTML‑Format.
- HTML‑Format.
Als EML speichern
Das folgende Code‑Snippet zeigt, wie eine EML‑Nachricht geladen und auf der Festplatte im selben Format gespeichert wird.
Ursprüngliche Grenzen erhalten
Das folgende Code‑Snippet zeigt, wie man EML lädt und als EML speichert, wobei die ursprünglichen Grenzen erhalten bleiben.
TNEF-Anhänge erhalten
Das folgende Code‑Snippet zeigt, wie man als EML speichert und dabei TNEF‑Anhänge beibehält.
EML nach MSG speichern
Das folgende Code‑Snippet zeigt, wie Sie eine EML‑Nachricht laden und mithilfe der passenden Option aus SaveOptions.
Daten erhalten
Die MsgSaveOptions Klasse ermöglicht es Ihnen, die Quellnachricht als Outlook Message-Datei (MSG) zu speichern und dabei Daten beizubehalten. Das folgende Codebeispiel zeigt, wie man als MSG mit beibehaltenen Daten speichert.
EML nach MHTML speichern
Verschiedene MHTML‑Optionen können verwendet werden, um die gewünschten Ergebnisse zu erzielen. Das folgende Code‑Snippet zeigt, wie man eine EML‑Nachricht lädt in MailMessage und in MHTML mit einem Nachrichten‑Datum im UTC‑System konvertieren.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// Set options for MHTML output
MhtSaveOptions saveOptions = SaveOptions.DefaultMhtml;
saveOptions.PreserveOriginalDate = false; // save a message date as UTC date
// Initialize and load an existing EML file
using (MailMessage mailMessage = MailMessage.Load(folderPath + "Message.eml"))
{
mailMessage.Save(folderPath + "Message_out.mhtml", saveOptions);
}
Konvertierungsoptionen
Die MhtSaveOptions Klasse stellt zusätzliche Optionen zum Speichern von E‑Mail‑Nachrichten im MHTML‑Format bereit. Der Aufzählungstyp MhtFormatOptions macht es möglich, zusätzliche E‑Mail‑Informationen in das AusgabemHTML zu schreiben. Die folgenden zusätzlichen Felder können geschrieben werden:
WriteHeader– schreibt die E‑Mail‑Kopfzeile in die Ausgabedatei.WriteOutlineAttachments– schreibt Outline‑Anhänge in die Ausgabedatei.WriteCompleteEmailAddress– schreibt die vollständige E‑Mail‑Adresse in die Ausgabedatei.NoEncodeCharacters– es sollte keine Transferkodierung von Zeichen verwendet werden.HideExtraPrintHeader– blendet zusätzliche Druckkopfzeile am oberen Rand der Ausgabedatei aus.WriteCompleteToEmailAddress– schreibt die vollständige Empfänger‑E‑Mail‑Adresse in die Ausgabedatei.WriteCompleteFromEmailAddress– schreibt die vollständige Absender‑E‑Mail‑Adresse in die Ausgabedatei.WriteCompleteCcEmailAddress– schreibt die vollständigen E‑Mail‑Adressen aller CC‑Empfänger in die Ausgabedatei.WriteCompleteBccEmailAddress– schreibt die vollständige E‑Mail‑Adresse aller BCC‑Empfänger in die Ausgabedatei.RenderCalendarEvent– schreibt Text aus dem Kalenderevent in die Ausgabedatei.SkipByteOrderMarkInBody– schreibt Byte Order Mark (BOM)-Bytes in die Ausgabedatei.RenderVCardInfo– schreibt Text aus VCard‑AlternativeView in die Ausgabedatei.DisplayAsOutlook– zeigt die From‑Kopfzeile an.RenderTaskFields– schreibt spezifische Aufgabenfelder in die Ausgabedatei.None– Keine Einstellung angegeben.
Das folgende Code‑Snippet zeigt, wie EML‑Dateien mit optionalen Einstellungen in MHTML konvertiert werden.
Kalenderevents rendern
Die MhtFormatOptions.RenderCalendarEvent Rendert die Kalendereignisse zur Ausgabe MHTML. Der folgende Codeausschnitt zeigt, wie man Kalendereignisse beim Konvertieren nach MHTML rendert.
Exportieren von E‑Mails nach MHT ohne Inline‑Bilder
Exportieren einer E‑Mail nach MHT mit benutzerdefinierter Zeitzone
MailMessage class provides the TimeZoneOffset Eigenschaft zum Festlegen einer benutzerdefinierten Zeitzone beim Exportieren nach MHT. Das folgende Code‑Snippet zeigt, wie Sie E‑Mails nach MHT mit angepasster Zeitzone exportieren.
Schriftanpassung
EML nach HTML speichern
Die HtmlSaveOptions Klasse ermöglicht den Export des Nachrichtenkörpers nach HTML. Das folgende Code‑Snippet zeigt, wie Sie eine Nachricht als HTML speichern.
Speichern ohne eingebettete Ressourcen
EML nach OFT speichern
Das folgende Code‑Snippet zeigt, wie Sie eine Nachricht als Outlook‑Vorlage (.oft) speichern.
EML in MSG konvertieren (MailMessage zu MapiMessage)
Um ein MailMessage Objekt, das aus einer EML‑Datei geladen wurde, zu einem MapiMessage Objekt, verwenden Sie die MapiConversionOptions Klasse. Diese Konvertierung ist häufig erforderlich, weil diese beiden Objekte unterschiedliche Zwecke erfüllen und verschiedenen Anforderungen in der E‑Mail‑Verarbeitung gerecht werden. MapiMessage ist speziell für die Kompatibilität mit Microsoft Outlook und Exchange Server konzipiert, da es dem Messaging Application Programming Interface (MAPI)‑Format entspricht. Dies stellt sicher, dass in MSG‑Dateien konvertierte E‑Mails vollständig mit Microsoft‑Produkten kompatibel sind und direkt in Outlook geöffnet, bearbeitet und verwaltet werden können.
Diese Konvertierung ist ebenfalls erforderlich, wenn E‑Mails archiviert, indiziert oder von Speichersystemen verarbeitet werden müssen, die das MAPI‑Format, PST/OST, OLM‑Speicher usw. benötigen. Der MapiConversionOptions Klasse ermöglicht es Ihnen, zusätzliche Optionen festzulegen, wie das Beibehalten des ursprünglichen Nachrichtenformats, das Bewahren der Originaldaten und das Komprimieren des RTF‑Körpers während der Konvertierung. Das folgende Codebeispiel zeigt, wie eine E‑Mail aus einer Datei im .eml‑Format geladen und in das Outlook‑Format .msg konvertiert wird, wobei Anpassungen möglich sind, aber sichergestellt wird, dass bestimmte Merkmale der ursprünglichen E‑Mail während der Konvertierung erhalten bleiben.
- Erstellen Sie eine Instanz von
MapiConversionOptionsund seine Eigenschaften konfigurieren. - Konvertiere das
MailMessageObjekt zu einemMapiMessageObjekt unter Verwendung der konfigurierten Konvertierungsoptionen.
MailMessage eml = MailMessage.Load("email.eml", new EmlLoadOptions());
// Create an instance of MapiConversionOptions
var conversionOptions = new MapiConversionOptions
{
// Configure MapiConversionOptions
Format = OutlookMessageFormat.Unicode, // Use Unicode format for MSG
PreserveEmbeddedMessageFormat = true, // Preserve the format of embedded messages
PreserveOriginalAddresses = true, // Keep original email addresses
PreserveOriginalDates = true, // Preserve original dates
PreserveEmptyDates = false, // Generate new dates if original are empty
RemoveSignature = false, // Do not remove the signature
UseBodyCompression = true, // Enable RTF body compression
ForcedRtfBodyForAppointment = false // Disable forced RTF body for appointments
};
// Convert MailMessage to MapiMessage
MapiMessage msg = MapiMessage.FromMailMessage(eml, conversionOptions);
Verfügbare Eigenschaften von MapiConversionOptions
-
ASCIIFormat: Gibt zurück
MapiConversionOptionskonfiguriert mitOutlookMessageFormatals ASCII, mitPreserveSignatureauf false setzen undUseBodyCompressionauf false setzen. Diese Option ist nützlich, wenn Sie eine reine ASCII-Formatkonvertierung benötigen. -
UnicodeFormat: Gibt zurück
MapiConversionOptionsmitOutlookMessageFormatauf Unicode setzen, und sowohlPreserveSignatureundUseBodyCompressionauf false setzen. Verwenden Sie diese Option für umfassendere Zeichenunterstützung in MSG-Dateien. -
ForcedRtfBodyForAppointment: Wenn auf true gesetzt, wird erzwungen, dass für Kalendertermine der RTF-Body verwendet wird. Dies ist nützlich, um die Kompatibilität mit bestimmten Mail‑Clients sicherzustellen. Standard ist true.
-
Format: Gibt das Ausgabeformat für die MSG-Datei an. Es kann entweder
OutlookMessageFormat.ASCIIoderOutlookMessageFormat.Unicode, steuert, ob die konvertierte MSG ASCII- oder Unicode‑Kodierung verwenden soll. -
PreserveEmbeddedMessageFormat: Bestimmt, ob das ursprüngliche EML-Format eingebetteter Nachrichten bei der Konvertierung zu
MapiMessage. Wenn dies auf true gesetzt wird, behalten eingebettete E‑Mails ihre ursprüngliche Struktur. Standard ist false. -
PreserveEmptyDates: Wenn auf true gesetzt, werden die ursprünglichen Erstellungs‑ und Änderungsdaten aus dem EML beibehalten. Andernfalls werden neue Daten generiert, falls die originalen leer sind.
-
PreserveOriginalAddresses: Wenn auf true gesetzt, werden die ursprünglichen E‑Mail‑Adressen ohne Validierung beibehalten. Dies ist nützlich, wenn E‑Mail‑Adressen vorliegen, die nicht den strengen Standards entsprechen, aber unverändert erhalten bleiben müssen. Standard ist false.
-
PreserveOriginalDates: Stellt sicher, dass die ursprünglichen Sende- und Empfangsdatumsangaben während der Konvertierung erhalten bleiben. Wird dies auf true gesetzt, bleiben diese Daten für bessere historische Genauigkeit erhalten.
-
RemoveSignature: Steuert, ob die digitale Signatur, falls vorhanden, während der Konvertierung aus der Nachricht entfernt wird. Standard ist false, das heißt, die Signatur bleibt erhalten, sofern sie nicht ausdrücklich entfernt wird.
-
UseBodyCompression: Aktiviert die RTF-Body-Kompression, wenn auf true gesetzt. Dies kann die Größe der MSG-Datei reduzieren, besonders bei großen Nachrichten mit umfangreicher Formatierung.