
HTML ist ein weit verbreitetes und leicht zugängliches Format, das von einer Vielzahl von Plattformen und Webbrowsern, einschließlich Desktop-Computern und mobilen Geräten, angezeigt werden kann. Im Gegensatz dazu erfordern EML- und MSG-Dateien möglicherweise spezielle Software oder E-Mail-Clients, um sie anzuzeigen, was den Zugriff und die Anzeige im Laufe der Zeit erschweren kann. Daher macht das Konvertieren von MSG- oder EML-Dateien in HTML sie einfacher anzusehen, insbesondere für Empfänger, die möglicherweise keine kompatiblen E-Mail-Clients oder Software haben.
Darüber hinaus sind HTML-Dateien leichter zu archivieren und bleiben in einem durchsuchbaren, indizierten Format.
Dieser Artikel präsentiert einen Algorithmus zum schnellen und einfachen Konvertieren von MSG- oder EML-Dateien in HTML-Format mit C#, unabhängig vom zugrunde liegenden Zweck. Unsere zuverlässige Methode garantiert, dass der Inhalt der E-Mail, einschließlich eingebetteter Bilder, vollständig erhalten bleibt, ohne dass Daten verloren gehen. Dies stellt sicher, dass die Integrität der E-Mail während des gesamten Konvertierungsprozesses gewahrt bleibt.
Der Artikel behandelt die folgenden Themen:
- C# API zum Konvertieren von EML/MSG-Dateien in HTML
- Konvertieren von EML/MSG-Dateien in HTML und Speichern von Bildern separat
- Konvertieren von EML/MSG-Dateien in HTML und Speichern von Bildern im HTML
- Speichern von HTML mit einem Header
C# API zum Konvertieren von EML/MSG-Dateien in HTML
Für die Konvertierung von EML/MSG-Dateien in HTML verwenden wir Aspose.Email für .NET. Es handelt sich um eine API zur Verarbeitung von E-Mails, mit der Sie E-Mails bearbeiten und mit Dateiformaten gängiger E-Mail-Clients wie Thunderbird, Outlook usw. arbeiten können. Sie können die DLL der API herunterladen oder sie über NuGet mit dem folgenden Befehl installieren:
PM> Install-Package Aspose.Email
Konvertieren von EML/MSG-Dateien in HTML und Speichern von Bildern separat
Eine typische MSG-Datei hat die folgende Ansicht:

Mit unserer API können Sie ein beliebiges Verzeichnis auf Ihrem Gerät festlegen und die Ziel-HTML-Datei mit Bildern in einem separaten Ordner speichern:

Verwenden Sie das folgende Codebeispiel, um eine E-Mail-Nachricht im MSG- oder EML-Format in eine HTML-Datei mit Bildern zu konvertieren, die in ein Zielverzeichnis gespeichert werden. Der Code führt die folgenden Schritte aus:
- Zuerst werden die Quell- und Zielpfade für die Quell-MSG/EML-Datei und die HTML-Datei sowie das Zielverzeichnis für die Ressourcen angegeben.
- Die MSG- oder EML-Datei wird mit der MailMessage.Load-Methode geladen.
- Ein HtmlSaveOptions-Objekt wird erstellt und die ResourceRenderingMode-Eigenschaft auf SaveToFile gesetzt.
- Ein Delegat für das SaveResourceHandler-Ereignis von HtmlSaveOptions wird definiert.
- Ein Zielverzeichnis für die Ressourcen innerhalb des Delegaten wird erstellt, falls es noch nicht existiert.
- Jede Ressource wird mit einem Dateinamen innerhalb des Delegaten basierend auf dem Inhaltstyp der Ressource in einer Datei gespeichert.
- Die Save-Methode der MailMessage-Instanz wird aufgerufen, wobei der Ziel-HTML-Dateiname und die HtmlSaveOptions-Instanz übergeben werden, um die E-Mail im HTML-Format zu speichern.
// MSG or EML filename | |
var msgFileName = Path.Combine(sourcePath, "A Day in the Park.msg"); | |
// target HTML | |
var htmlFileName = Path.Combine(targetPath, "A Day in the Park.html"); | |
// target directory to save images | |
var resourceDir = Path.Combine(targetPath, "A Day in the Park"); | |
// Load MSG or EML | |
var msg = MailMessage.Load(msgFileName); | |
// Create HTML save options | |
var htmlSaveOptions = new HtmlSaveOptions | |
{ | |
ResourceRenderingMode = ResourceRenderingMode.SaveToFile | |
}; | |
htmlSaveOptions.SaveResourceHandler += | |
(AttachmentBase attachment, out string resourceFileName) => | |
{ | |
if (!Directory.Exists(resourceDir)) | |
{ | |
Directory.CreateDirectory(resourceDir); | |
} | |
resourceFileName = Path.Combine(resourceDir, attachment.ContentType.Name); | |
attachment.Save(resourceFileName); | |
}; | |
msg.Save(htmlFileName, htmlSaveOptions); |
Konvertieren von EML/MSG-Dateien in HTML und Speichern von Bildern im HTML
Manchmal möchten Sie EML/MSG-Dateien in HTML konvertieren und die eingebetteten Bilder im HTML beibehalten.

Das folgende Code-Snippet zeigt, wie man eine MSG- oder EML-Datei in HTML-Format in C# konvertiert und die Bilder im HTML speichert. Der Code führt die folgenden Schritte aus:
- Definiert die Quell- und Zielpfade für die E-Mail-Datei und die HTML-Ausgabe.
- Lädt die MSG- oder EML-Datei mit der MailMessage.Load-Methode.
- Erstellt eine neue Instanz der HtmlSaveOptions-Klasse, mit der Sie konfigurieren können, wie die E-Mail als HTML gespeichert wird.
- Konfiguriert die HtmlSaveOptions-Instanz, um die Ressourcen, einschließlich Bilder, direkt in das HTML einzubetten.
- Ruft die Save-Methode der MailMessage-Instanz auf, übergibt den Ziel-HTML-Dateinamen und die HtmlSaveOptions-Instanz, um die E-Mail im HTML-Format zu speichern.
// MSG or EML filename | |
var msgFileName = Path.Combine(sourcePath, "A Day in the Park.msg"); | |
// target HTML | |
var htmlFileName = Path.Combine(targetPath, "A Day in the Park.html"); | |
// Load MSG or EML | |
var msg = MailMessage.Load(msgFileName); | |
// Create HTML save options | |
var htmlSaveOptions = new HtmlSaveOptions | |
{ | |
ResourceRenderingMode = ResourceRenderingMode.EmbedIntoHtml | |
}; | |
msg.Save(htmlFileName, htmlSaveOptions); |
Speichern von HTML mit einem Header
Als optionale Variante können Sie ein HTML mit einem Header speichern. Das folgende Code-Snippet demonstriert, wie man ein HTML mit einem Header in C#:
// Create HTML save options | |
var htmlSaveOptions = new HtmlSaveOptions | |
{ | |
ResourceRenderingMode = ResourceRenderingMode.EmbedIntoHtml, | |
HtmlFormatOptions = HtmlFormatOptions.WriteHeader | |
}; |
Als Ergebnis wird ein Textheader zur Ziel-HTML hinzugefügt:

Fazit
Zusammenfassend haben Sie aus diesem Artikel gerade die Vorteile des HTML-Formats für die Archivierung und Verwaltung Ihrer Dateien sowie die Durchführung der Konvertierung von EML oder MSG in C# unter Verwendung der Aspose.Email für .NET-Bibliothek gelernt. Sie konnten sehen, wie schnell und einfach der Konvertierungsprozess mit nur wenigen Codezeilen ist. Falls Sie Fragen haben, können Sie sich gerne an unser kostenloses Support-Forum wenden. Sie können auch mehr über Aspose.Email für .NET, seine Funktionen und Möglichkeiten aus unserer Dokumentation erfahren.