1. Einführung
GroupDocs.Viewer for .NET‑Bibliothek ermöglicht das Importieren von E‑Mail‑Nachrichten in jedem gängigen Format, das Rendern in HTML, PNG, JPEG und PDF sowie das Extrahieren grundlegender E‑Mail‑Eigenschaften, ohne die Nachricht tatsächlich zu rendern.
Beim Arbeiten mit E‑Mail‑Nachrichten in GroupDocs.Viewer sollten Benutzer jedoch über zwei e‑mail‑spezifische Typen Bescheid wissen:
Options.EmailOptions‑Klasse – ermöglicht die Steuerung, wie die Nachricht gerendert wird (Seitengröße, Datumsformat, Felder usw.).Results.MailMessageViewInfo‑Klasse – wird von GroupDocs.Viewer nach Aufruf derGetViewInfo()‑Methode erzeugt und enthält Metadaten zur geladenen E‑Mail‑Nachricht.
Im Folgenden finden Sie eine sehr kurze Anleitung, die zeigt, wie E‑Mail‑Nachrichten gerendert und deren Metadaten abgerufen werden können.
2. Laden einer E‑Mail‑Nachricht und Rendern in alle Ausgabeformate
Der untenstehende sehr kurze Code‑Beispiel zeigt das Laden der Eingabe‑E‑Mail‑Datei sample.eml in eine Instanz der Viewer‑Klasse und anschließend das Rendern in alle 4 unterstützten Ausgabeformate: HTML, PDF, PNG und JPEG. Wie Sie sehen, werden zu Beginn alle 4 View‑Option‑Klassen instanziiert, dann wird sample.eml über den Dateipfad in die Viewer‑Instanz geladen und anschließend 4 Aufrufe von Viewer.View() durchgeführt.
using GroupDocs.Viewer;
using GroupDocs.Viewer.Options;
HtmlViewOptions htmlOptions = HtmlViewOptions.ForEmbeddedResources("html-page{0}.html");
PdfViewOptions pdfOptions = new PdfViewOptions("Output.pdf");
PngViewOptions pngOptions = new PngViewOptions("image-page{0}.png");
JpgViewOptions jpegOptions = new JpgViewOptions("image-page{0}.jpeg");
using (Viewer viewer = new Viewer("sample.eml"))
{
viewer.View(htmlOptions);
viewer.View(pdfOptions);
viewer.View(pngOptions);
viewer.View(jpegOptions);
}
3. Anpassen der E‑Mail‑Optionen für das Rendern
Das obige Beispiel zeigt das Rendern, wobei alle Optionen auf ihren Standardwerten gesetzt sind. Es gibt jedoch eine EmailOptions‑Klasse, die in allen 4 View‑Optionen (HtmlViewOptions, PdfViewOptions, PngViewOptions, JpgViewOptions) über die EmailOptions‑Eigenschaft verfügbar ist. Es ist nicht nötig, manuell eine Instanz der EmailOptions‑Klasse zu erstellen und sie über die EmailOptions‑Eigenschaft den View‑Optionen zuzuweisen – das ist bereits erledigt, der Benutzer muss nur bei Bedarf die Eigenschaftswerte anpassen.
In der EmailOptions‑Klasse gibt es mehrere Eigenschaften, die im Folgenden erläutert werden.
3.1. Seitengröße
Das Enum PageSize steuert die Größe der Ausgabeseite. Standardmäßig ist Unspecified – GroupDocs.Viewer passt die Größe an die am besten geeignete an. Es kann beispielsweise wie folgt gesetzt werden:
PdfViewOptions pdfOptions = new PdfViewOptions("Output.pdf");
pdfOptions.EmailOptions.PageSize = PageSize.A1;
3.2. Datums‑ und Zeitformat sowie Zeitzone
E‑Mail‑Nachrichten besitzen in der Regel ein „Sent“-Datum. Die DateTimeFormat‑Eigenschaft ermöglicht die Steuerung, wie dieser Datums‑Zeit‑Wert formatiert wird, und TimeZoneOffset erlaubt, einen positiven oder negativen Versatz auf diesen Wert anzuwenden. Beispiel unten:
JpgViewOptions jpegOptions = new JpgViewOptions("image-page{0}.jpeg");
jpegOptions.EmailOptions.DateTimeFormat = "MM d yyyy HH:mm tt zzz"; // komplett benutzerdefiniertes Format
jpegOptions.EmailOptions.TimeZoneOffset = TimeSpan.FromHours(-5); // Verschiebung um 5 Stunden zurück
Wenn Sie DateTimeFormat auf null oder einen leeren String setzen, verwendet GroupDocs.Viewer das aktuelle Systemformat.
3.3. Anpassen von Feldern
Eine Mail‑Nachricht enthält den Nachrichtentext sowie Felder wie Betreff, Sendedatum, Absender usw. GroupDocs.Viewer ermöglicht es Benutzern, die Bezeichnungen dieser Felder über die FieldTextMap‑Eigenschaft zu überschreiben, die einen Field‑Enum‑Wert (z. B. Field.Subject) auf den Text abbildet, der im gerenderten Ergebnis über das Dictionary erscheint. Der Benutzer kann also jeden Eintrag ersetzen oder neue hinzufügen:
PngViewOptions pngOptions = new PngViewOptions("image-page{0}.png");
pngOptions.EmailOptions.FieldTextMap[Field.Subject] = "Email Subject";
pngOptions.EmailOptions.FieldTextMap[Field.Sent] = "Mail was sent at";
pngOptions.EmailOptions.FieldTextMap[Field.From] = "Sender";
4. Laden einer E‑Mail und Abrufen ihrer Ansichtsinformationen
Es ist möglich, einige Feldwerte der E‑Mail‑Nachricht programmgesteuert zu erhalten, ohne die Nachricht selbst zu rendern. Dazu sollte der Benutzer das E‑Mail‑Dokument in die Viewer‑Instanz laden und anschließend die Instanzmethode Viewer.GetViewInfo() verwenden, wie unten gezeigt:
using System;
using GroupDocs.Viewer;
using GroupDocs.Viewer.Options;
using GroupDocs.Viewer.Results;
// ...
using (Viewer viewer = new Viewer("sample.eml"))
{
ViewInfo generalInfo = viewer.GetViewInfo(ViewInfoOptions.ForHtmlView());
// explizites Casting
MailMessageViewInfo mailMessageInfo = (MailMessageViewInfo)generalInfo;
Console.WriteLine("From: {0}; Subject: {1}; Sent: {2}.", mailMessageInfo.From, mailMessageInfo.Subject, mailMessageInfo.Sent);
// Bei Bedarf in ein beliebiges Ausgabeformat rendern
viewer.View(HtmlViewOptions.ForEmbeddedResources());
}
Es ist ersichtlich, dass die Methode Viewer.GetViewInfo() eine Instanz der gemeinsamen ViewInfo‑Klasse zurückgibt, die anschließend zu MailMessageViewInfo gecastet wird. Derzeit werden nur die Felder From, Subject und Sent unterstützt.
| Eigenschaft | Typ | Bedeutung |
|---|---|---|
Sent |
DateTime |
Der genaue Zeitpunkt, zu dem die E‑Mail gesendet wurde. |
Subject |
string |
Der Text, der in der Betreffzeile der E‑Mail erscheint. |
From |
string |
Die E‑Mail‑Adresse des Absenders als einfacher String. |
Alle drei Eigenschaften sind schreibgeschützt.
5. Zusammenfassung
- Erstellen Sie eine
Viewer‑Instanz und geben Sie die Eingabe‑E‑Mail‑Datei im Konstruktor per Pfad oder Stream an. - Rufen Sie die Methode
Viewer.GetViewInfo()auf und casten Sie das Ergebnis zuMailMessageViewInfo, um die MetadatenSent,SubjectundFromzu erhalten. - Verwenden Sie
EmailOptions, um Seitengröße, Datumsformat, Zeitzonen‑Versatz oder die Textbezeichnung eines Feldes zu ändern, und rufen Sie anschließendViewer.View()auf.
Diese Schritte liefern Ihnen die wichtigsten E‑Mail‑Eigenschaften und ermöglichen die Kontrolle darüber, wie die Nachricht beim Rendern erscheint. Es sind keine zusätzlichen Bibliotheken oder komplexer Code erforderlich.
Siehe auch
Holen Sie sich eine kostenlose Testversion
Sie können eine kostenlose Testversion von GroupDocs.Viewer for .NET von releases.groupdocs.com herunterladen. Sie können außerdem eine temporäre Lizenz erwerben, um alle Funktionen und Features uneingeschränkt zu testen, über hier.