Convert EML to HTML
Convert EML to HTML
Um E‑Mail‑Inhalte in Web‑Anwendungen zu integrieren, ist die EML‑zu‑HTML‑Konvertierung die richtige Wahl, da sie eine optisch ansprechende Darstellung von E‑Mails ermöglicht.
Um EML in HTML zu konvertieren, benötigen Sie die folgenden Klassen:
- MailMessage Klasse wird verwendet, um ein Objekt zu erstellen, das eine E‑Mail‑Nachricht repräsentiert. Sie ermöglicht den Zugriff auf Nachrichteneigenschaften, wie Betreff, Inhalt, Absender und Empfängeradressen usw. Mit ihren Methoden können Sie E‑Mails erstellen, laden, parsen, ändern, speichern oder weitere Manipulationen durchführen.
- SaveOptions Klasse bietet Optionen zum Speichern von E‑Mail‑Nachrichten in verschiedenen Formaten. Sie ermöglicht es Benutzern, die Art und Weise, wie E‑Mail‑Nachrichten in unterschiedlichen Formaten gespeichert werden, anzupassen. Mit dieser Klasse können Benutzer Optionen für das Speichern von Anhängen, Headern, Metadaten und Eigenschaften von E‑Mail‑Nachrichten festlegen, Kodierungsoptionen einstellen oder wählen, ob Nachrichten verschlüsselt gespeichert werden sollen oder nicht.
Im nachfolgenden Codebeispiel arbeiten diese Klassen zusammen, um eine vorhandene EML-Datei zu laden und das Format der Nachricht als EML anzugeben. Anschließend speichern sie die geladene E‑Mail‑Nachricht als HTML-Datei mit den angegebenen Standardoptionen zum Speichern von HTML:
- Verwenden Sie die MailMessage.Load() Methode, um die bestehende Datei in ein MailMessage-Objekt zu laden und das Nachrichtenformat anzugeben.
- Speichern Sie das geladene MailMessage-Objekt als HTML-Datei mit Hilfe der Speichern Methode. Verwenden Sie SaveOptions.DefaultHtml() um die Speicheroptionen für das HTML-Format anzugeben.
// Initialize and Load an existing EML file by specifying the MessageFormat
var message = MailMessage.Load("myMessage.eml");
message.Save("output.html", SaveOptions.DefaultHtml);
Save EML Resources in a Separate File
Aspose.Email provides the ResourceRenderingMode Aufzählung, die Entwicklern ermöglicht, Ressourcen in einer HTML-Datei zu manipulieren. Im nachfolgenden Codebeispiel wird dieses Enum verwendet, um Ressourcen in einer Datei zu speichern und im HTML das ‘src’-Tag mit dem Pfad zu dieser Datei einzufügen:
- Laden Sie die E‑Mail‑Nachricht aus der Quelldatei mittels der MapiMessage.Load Methode.
- Erstellen Sie eine Instanz von HtmlSaveOptions mit angegebenen Rendering‑ und Ressourcenoptionen.
- Speichern Sie die geladene E‑Mail‑Nachricht als HTML-Datei am Zielort mittels der Speichern Methode mit dem HtmlSaveOptions-Parameter.
var msg = MapiMessage.Load(sourceFileName);
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.SaveToFile,
UseRelativePathToResources = true
};
msg.Save(Path.Combine("target.html"), htmlSaveOptions);
Embed Resources to an HTML File
In einigen Fällen ist es erforderlich, Ressourcen wie Bilder direkt in die HTML-Datei einzubetten, um eine nahtlose Verteilung und Präsentation zu ermöglichen. Mit Aspose.Email für .NET können Sie dies einfach mithilfe der ResourceRenderingMode Aufzählung:
- Laden Sie die E‑Mail‑Nachricht aus der Quelldatei mittels der MapiMessage.Load Methode.
- Erstellen Sie ein neues HtmlSaveOptions Objekt und setzen Sie die Property ResourceRenderingMode auf EmbedIntoHtml.
- Speichern Sie die geladene E‑Mail‑Nachricht als HTML-Datei mit Hilfe der Speichern Methode, wobei der Zielpfad angegeben und das HtmlSaveOptions-Objekt als Parameter übergeben wird, um Ressourcen in die HTML-Datei einzubetten.
var msg = MapiMessage.Load(sourceFileName);
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.EmbedIntoHtml
};
msg.Save(Path.Combine("target.html"), htmlSaveOptions);
Convert EML to ICS
Das folgende Codebeispiel zeigt, wie Kalenderereignisdaten aus einer EML-Datei extrahiert und in einer separaten ICS-Datei für die weitere Verwendung oder Bearbeitung gespeichert werden.
// Load the EML file
var eml = MailMessage.Load("message.eml");
// Find the alternate view with MediaType "text/calendar" (ICS)
var icsView = eml.GetAlternateViewContent("text/calendar");
// If an ICS view is found, save it to a file
if (icsView != null)
{
File.WriteAllText("appointment.ics", icsView);
}
Anpassung
Aspose.Email für .NET stellt Werkzeuge zum Anpassen von aus EML (Electronic Mail)-Dateien extrahierten ICS (iCalendar)-Inhalten bereit.
Customize the event details
Das folgende Codebeispiel zeigt, wie verschiedene Details des Termins festgelegt werden, wie Zusammenfassung, Ort und Beschreibung. Der Code nutzt die Appointment Klasse, die Kalendertermine oder -ereignisse im ICS (iCalendar)-Format repräsentiert. Die Klasse bietet Eigenschaften und Methoden zum programmgesteuerten Erstellen, Ändern und Verwalten von Kalenderereignissen.
// Load the EML file
var eml = MailMessage.Load("message.eml");
// Find the alternate view with MediaType "text/calendar" (ICS)
var icsView = eml.GetAlternateViewContent("text/calendar");
// If an ICS view is found, load it to Appointment class object
var appointment = Appointment.Load(new MemoryStream(Encoding.UTF8.GetBytes(icsView)));
// Customize the event details
appointment.Summary = "Customized Event Summary";
appointment.Location = "Customized Location";
appointment.Description = "Customized Event Description";
// Add or modify attendees as needed
appointment.Attendees.Clear();
appointment.Attendees.Add("custom@example.com");
// Save the customized ICS content to a file
appointment.Save("customized_appointment.ics");
Create a recurrence pattern
Das folgende Codebeispiel zeigt, wie man ein wöchentliches Wiederholungsmuster für einen Termin erstellt, bei dem der Termin alle 5 Wochen samstags stattfindet. Der Code verwendet die Recurrence Eigenschaft des Appointment Klasse, die das Wiederholungsmuster abruft oder festlegt.
var pattern = new WeeklyRecurrencePattern(5, 7);
pattern. EndDate = new DateTime(2023, 8, 7);
appointment.Recurrence = pattern;
Add EML to MBOX
MBOX ist ein häufig verwendetes Format zum Speichern mehrerer E‑Mail‑Nachrichten in einer einzigen Datei und eignet sich für E‑Mail‑Archivierung und -Migration. Verwenden Sie die MboxrdStorageWriter Klasse zum Schreiben von E‑Mail‑Nachrichten in eine MBOX‑Datei. Das folgende Codebeispiel zeigt, wie diese Aufgabe durchgeführt wird:
using (var message = MailMessage.Load("inputFile.eml")){
using (var writer = new MboxrdStorageWriter("output.mbox", false)){
writer.WriteMessage(message);
}
}
Convert EML to MHTML
Mit Aspose.Email für .NET können Sie EML-Dateien einfach in das MHTML-Format für verschiedene Zwecke wie Archivierung, Kompatibilität, Offline‑Anzeige usw. konvertieren. Laden Sie die E‑Mail‑Nachricht mittels der MailMessage.Load, dann verwenden Sie die MhtSaveOptions Klasse als Parameter für die MailMessage.Save Methode zum Festlegen des Ausgabe-Dateiformats, wenn die Nachricht als separate Datei gespeichert wird:
// Initialize and Load an existing EML file by specifying the MessageFormat
var message = MailMessage.Load("myMessage.eml");
var mhtSaveOptions = new MhtSaveOptions;
message.Save("output.mhtml", mhtSaveOptions);
Die MhtSaveOptions Klasse bietet verschiedene Optionen zum Anpassen von Ausgabe-MHTML-Dateien, um Ihren spezifischen Anforderungen gerecht zu werden:
-
Ursprüngliche Datumsformatierung beibehalten. Sie können wählen, die ursprüngliche Formatierung der E-Mails während des Konvertierungsprozesses zu erhalten:
saveOptions.PreserveOriginalDate = true; -
Ausgabekodierung festlegen. Sie können die zu verwendende Kodierung beim Schreiben der MHTML-Ausgabedateien angeben:
saveOptions.OutputEncoding = Encoding.UTF8; -
Anhänge einbeziehen. Das kann hilfreich sein, wenn Sie Anhänge beim Konvertieren von E-Mails in das MHTML-Format beibehalten möchten:
saveOptions.SaveAttachments = true;
Convert EML to MSG
Ob Sie E-Mail-Daten migrieren, Nachrichten archivieren oder in Microsoft Outlook integrieren müssen, Aspose.Email bietet Lösungen, um Ihre Ziele zu erreichen. MSG-Dateien werden von Microsoft Outlook weit verbreitet genutzt. Für die EML-zu-MSG-Konvertierung verwenden Sie die MailMessage.Load Methode zum Laden der bestehenden EML-Datei, wobei angegeben wird, wie sie geladen wird mit EmlLoadOptions.
Das folgende Codebeispiel zeigt, wie EML-Dateien in das MSG-Format konvertiert werden:
// Load mail message
using (var message = MailMessage.Load("sourceFile.eml", new EmlLoadOptions())){
// Save as MSG
var msgSaveOptions = new MsgSaveOptions;
message.Save("output.msg", MsgSaveOptions);
}
Convert EML to OFT
Um EML-Dateien in das Outlook Template (OFT)-Format zu konvertieren, laden Sie die vorhandene E-Mail-Nachricht mit der MailMessage.Load Methode und speichern Sie sie mit MailMessage.Save unter Angabe der Standardoptionen zum Speichern einer Nachricht im OFT-Format:
// load the EML file to be converted
var message = MailMessage.Load("My File.eml");
// save EML as a OFT
message.Save("Saved File.oft", SaveOptions.DefaultOft);
Add EML to PST
Um EML-Dateien in das Personal Storage Table (PST)-Format zu konvertieren, laden Sie die Nachricht mit der MapiMessage.Load Methode zum erstellten Ausgabedatei mit dem PersonalStorage.Create und fügen die E-Mail mithilfe der AddMessage:
using (var msg = MapiMessage.Load("sourceFile.eml", new EmlLoadOptions()))
{
using (var personalStorage = PersonalStorage.Create("outputFile.pst", FileFormatVersion.Unicode))
{
var inbox = personalStorage.RootFolder.AddSubFolder("Inbox");
inbox.AddMessage(msg);
}
}
Add EML to OST
Entwickler können EML-Dateien einfach in das Outlook Offline Storage Table (OST)-Format konvertieren, um die Integration mit Microsoft Outlook zu ermöglichen. Das folgende Codebeispiel zeigt, wie eine EML-Nachricht zu einer OST-Datei hinzugefügt wird:
using (var ost = PersonalStorage.FromFile("storage.ost"))
{
// Load the EML file
var msg = MapiMessage.Load("message.eml", new EmlLoadOptions());
// Add the EML message to the OST file
var folderInfo = ost.RootFolder.GetSubFolder("Inbox");
folderInfo.AddMessage(msg);
}
Die EmlLoadOptions Parameter gibt zusätzliche Optionen zum Laden von EML-Dateien an, z. B. das Beibehalten eingebetteter Nachrichtenformate, das Entfernen von Signaturen und mehr.
Convert EML to VCF
Aspose.Email für .NET bietet Funktionalität zum Konvertieren von EML-Dateien in das vCard-Format (VCF) und ermöglicht Entwicklern das Extrahieren von Kontaktinformationen aus E-Mails. Zu diesem Zweck stellt die Bibliothek die GetAlternateViewContent Methode des MailMessage Klasse, die Entwicklern den Zugriff auf alternative Ansichten innerhalb von E-Mails ermöglicht und VCF-Inhalte, die in EML-Dateien eingebettet sind, für die weitere Verwendung extrahiert:
// Load the EML file
var eml = MailMessage.Load("message.eml");
// Find the alternate view with MediaType "text/vcard" (VCF)
var vcfView = eml.GetAlternateViewContent("text/vcard");
// If an VCF view is found, save it to a file
if (vcfView != null)
{
File.WriteAllText("contact.vcf", vcfView);
}