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 Methode GetViewInfo() 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.GetViewInfo auf und casten Sie das Ergebnis in den Typ MailMessageViewInfo, um die Metadaten zu erhalten: die Felder Sent, Subject und From.
  • 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 Methode Viewer.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.