1. Introduction
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‑Nachrichten‑Eigenschaften ohne tatsächliches Rendern.
Tatsächlich sollten Benutzer, die mit E‑Mail‑Nachrichten in GroupDocs.Viewer arbeiten, ü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— wird von GroupDocs.Viewer nach Aufruf der MethodeGetViewInfo()erzeugt und enthält die Metadaten der geladenen E‑Mail‑Nachricht.
Im Folgenden finden Sie eine kurze Anleitung, die zeigt, wie E‑Mail‑Nachrichten gerendert und deren Metadaten abgerufen werden.
2. Load an email message and render it to all output formats
Das nachstehende kurze Codebeispiel zeigt das Laden einer Eingabe‑E‑Mail‑Nachricht „sample.eml“ in eine Instanz der Viewer‑Klasse und anschließend das Rendern in alle vier unterstützten Ausgabeformate: HTML, PDF, PNG und JPEG. Wie Sie sehen, werden zu Beginn alle vier View‑Option‑Klassen instanziiert, dann wird „sample.eml“ über den Dateipfad in die Viewer‑Instanz geladen und anschließend vier Aufrufe von Viewer.View() ausgefü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. Tuning email options for rendering
Das obige Beispiel zeigt das Rendern, bei dem alle Optionen auf ihre Standardwerte gesetzt sind. Es gibt jedoch eine EmailOptions‑Klasse, die in allen vier View‑Optionen (HtmlViewOptions, PdfViewOptions, PngViewOptions, JpgViewOptions) über die Eigenschaft EmailOptions verfügbar ist. Es ist nicht nötig, manuell eine Instanz der EmailOptions‑Klasse zu erstellen und sie 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. Page size
Steuert die Größe der Ausgabeseite. Standardmäßig ist sie Unspecified – GroupDocs.Viewer passt die Größe an die am besten geeignete an. Sie kann beispielsweise wie folgt gesetzt werden:
PdfViewOptions pdfOptions = new PdfViewOptions("Output.pdf");
pdfOptions.EmailOptions.PageSize = PageSize.A1;
3.2. Date and time format and time zone
E‑Mail‑Nachrichten besitzen in der Regel ein „Sent“-Datum. Die Eigenschaft DateTimeFormat ermöglicht die Steuerung, wie dieser Datums‑Zeit‑Wert formatiert wird, und TimeZoneOffset erlaubt, einen positiven oder negativen Versatz auf diesen Zeitpunkt anzuwenden. Beispiel unten:
JpgViewOptions jpegOptions = new JpgViewOptions("image-page{0}.jpeg");
jpegOptions.EmailOptions.DateTimeFormat = "MM d yyyy HH:mm tt zzz"; // completely custom format
jpegOptions.EmailOptions.TimeZoneOffset = TimeSpan.FromHours(-5); // Add shift to 5 hours earlier
Wenn Sie DateTimeFormat null oder einen leeren String lassen, verwendet GroupDocs.Viewer das aktuelle Systemformat.
3.3. Adjusting fields
Eine E‑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 Eigenschaft FieldTextMap zu überschreiben, die einen Field‑Enum‑Wert (z. B. Field.Subject) dem Text zuordnet, der in der gerenderten Ausgabe 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. Load an email and get its view information
Es ist möglich, einige Feldwerte der E‑Mail‑Nachricht programmgesteuert abzurufen, 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());
// explicit casting
MailMessageViewInfo mailMessageInfo = (MailMessageViewInfo)generalInfo;
Console.WriteLine("From: {0}; Subject: {1}; Sent: {2}.", mailMessageInfo.From, mailMessageInfo.Subject, mailMessageInfo.Sent);
// Render to any output format if needed
viewer.View(HtmlViewOptions.ForEmbeddedResources());
}
Man kann sehen, dass die Methode Viewer.GetViewInfo() eine Instanz der allgemeinen Klasse ViewInfo zurückgibt, die dann in die Klasse MailMessageViewInfo umgewandelt 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. Summary
- Erstellen Sie eine
Viewer‑Instanz und geben Sie im Konstruktor den Pfad oder Stream der Eingabe‑E‑Mail‑Datei an. - Rufen Sie die Methode
Viewer.GetViewInfoauf und casten Sie das Ergebnis in den TypMailMessageViewInfo, um die Metadaten zu erhalten: die FelderSent,SubjectundFrom. - Verwenden Sie
EmailOptions, um die Seitengröße, das Datumsformat, den Zeitzonen‑Versatz oder die Textbezeichnung eines beliebigen Feldes zu ändern, und rufen Sie anschließend die MethodeViewer.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 werden keine zusätzlichen Bibliotheken oder komplexer Code benötigt.
See Also
Get a free trial
Sie können eine kostenlose Testversion von GroupDocs.Viewer für .NET von releases.groupdocs.com herunterladen. Sie können außerdem eine temporäre Lizenz erwerben, um alle Funktionen und Features uneingeschränkt auszuprobieren, über hier.