1. Úvod
GroupDocs.Viewer for .NET knihovna vám umožňuje importovat e‑mailovou zprávu v libovolném populárním formátu, vykreslit ji do HTML, PNG, JPEG a PDF a také extrahovat základní vlastnosti e‑mailové zprávy bez skutečného vykreslování.
Ve skutečnosti by si uživatelé při práci s e‑mailovými zprávami v GroupDocs.Viewer měli být vědomi dvou typů specifických pro e‑mail:
Options.EmailOptionstřída – umožňuje řídit, jak je zpráva vykreslena (velikost stránky, formát data, pole atd.).Results.MailMessageViewInfo— je vytvořen knihovnou GroupDocs.Viewer po zavolání metodyGetViewInfo()a obsahuje metadata o načtené e‑mailové zprávě.
Níže je velmi stručný průvodce, který ukazuje, jak vykreslit e‑mailové zprávy a získat jejich metadata.
2. Načtení e‑mailové zprávy a vykreslení do všech výstupních formátů
Níže uvedený krátký ukázkový kód ukazuje načtení vstupní e‑mailové zprávy „sample.eml“ do instance třídy Viewer a následné vykreslení do všech 4 podporovaných výstupních formátů: HTML, PDF, PNG a JPEG. Jak vidíte, na začátku jsou vytvořeny všechny 4 třídy možností zobrazení, poté je „sample.eml“ načtena do instance Viewer pomocí cesty k souboru a nakonec jsou provedena 4 volání Viewer.View().
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. Ladění možností e‑mailu pro vykreslení
Výše uvedený příklad ukazuje vykreslení se všemi možnostmi nastavenými na výchozí hodnoty. Existuje však třída EmailOptions, která je dostupná ve všech 4 možnostech zobrazení (HtmlViewOptions, PdfViewOptions, PngViewOptions, JpgViewOptions) prostřednictvím vlastnosti EmailOptions. Není nutné ručně vytvářet instanci třídy EmailOptions a přiřazovat ji k možnostem zobrazení přes vlastnost EmailOptions – vše je již nastaveno, uživatel pouze potřebuje v případě potřeby upravit hodnoty vlastností.
V třídě EmailOptions je několik vlastností, které jsou vysvětleny níže.
3.1. Velikost stránky
Řídí velikost výstupní stránky. Ve výchozím nastavení je Unspecified – GroupDocs.Viewer přizpůsobí velikost nejvhodnější. Lze ji nastavit následujícím způsobem, například:
PdfViewOptions pdfOptions = new PdfViewOptions("Output.pdf");
pdfOptions.EmailOptions.PageSize = PageSize.A1;
3.2. Formát data a času a časové pásmo
E‑mailové zprávy obvykle obsahují datum „Odesláno“. Vlastnost DateTimeFormat umožňuje řídit, jak bude tato hodnota data a času formátována, a TimeZoneOffset umožňuje aplikovat kladný nebo záporný posun na tento čas. Příklad níže:
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
Pokud ponecháte DateTimeFormat jako null nebo prázdný řetězec, GroupDocs.Viewer použije aktuální formát systému.
3.3. Úprava polí
E‑mailová zpráva obsahuje tělo zprávy a pole jako předmět, datum a čas odeslání, odesílatele atd. GroupDocs.Viewer umožňuje uživatelům přepsat popisky těchto polí pomocí vlastnosti FieldTextMap, která mapuje hodnotu výčtu Field (např. Field.Subject) na text, který se zobrazí ve výstupu. Uživatel tak může nahradit jakýkoli záznam nebo přidat nové:
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. Načtení e‑mailu a získání informací o zobrazení
Je možné získat některé hodnoty polí e‑mailové zprávy programově bez samotného vykreslování zprávy. K tomu by měl uživatel načíst dokument e‑mailu do instance Viewer a poté použít metodu instance Viewer.GetViewInfo(), jak je ukázáno níže:
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());
}
Je vidět, že metoda Viewer.GetViewInfo() vrací instanci společné třídy ViewInfo, která je následně přetypována na třídu MailMessageViewInfo. Prozatím jsou podporována pouze pole From, Subject a Sent.
| Vlastnost | Typ | Význam |
|---|---|---|
Sent |
DateTime |
Přesný čas, kdy byl e‑mail odeslán. |
Subject |
string |
Text, který se zobrazuje v předmětu e‑mailu. |
From |
string |
E‑mailová adresa odesílatele jako prostý řetězec. |
Všechny tři vlastnosti jsou jen pro čtení.
5. Shrnutí
- Vytvořte instanci
Viewera do jejího konstruktoru zadejte soubor vstupní e‑mailové zprávy pomocí cesty nebo proudu. - Zavolejte metodu
Viewer.GetViewInfoa poté přetypujte její výsledek na typMailMessageViewInfo, abyste získali metadata: poleSent,SubjectaFrom. - Použijte
EmailOptionske změně velikosti stránky, formátu data, posunu časového pásma nebo textového popisku zobrazeného pro libovolné pole a poté zavolejte metoduViewer.View().
Tyto kroky vám poskytují základní vlastnosti e‑mailu a umožňují kontrolovat, jak bude zpráva při vykreslení vypadat. Není potřeba žádné další knihovny ani složitý kód.
Viz také
Získat bezplatnou zkušební verzi
Bezplatnou zkušební verzi GroupDocs.Viewer pro .NET si můžete stáhnout z releases.groupdocs.com. Také můžete získat dočasnou licenci, abyste si vyzkoušeli všechny funkce a možnosti bez omezení, na této stránce.