1. Wprowadzenie
GroupDocs.Viewer for .NET umożliwia importowanie wiadomości e‑mail w dowolnym popularnym formacie, renderowanie jej do HTML, PNG, JPEG i PDF oraz wyodrębnianie podstawowych właściwości wiadomości e‑mail bez rzeczywistego renderowania.
W rzeczywistości, pracując z wiadomościami e‑mail w GroupDocs.Viewer, użytkownicy powinni znać dwa typy specyficzne dla e‑maili:
- klasa
Options.EmailOptions– pozwala kontrolować sposób renderowania wiadomości (rozmiar strony, format daty, pola itp.). - klasa
Results.MailMessageViewInfo— jest tworzona przez GroupDocs.Viewer po wywołaniu metodyGetViewInfo()i zawiera metadane o załadowanej wiadomości e‑mail.
Poniżej znajduje się bardzo szybki przewodnik, który pokazuje, jak renderować wiadomości e‑mail i pobierać ich metadane.
2. Ładowanie wiadomości e‑mail i renderowanie jej do wszystkich formatów wyjściowych
Krótki przykład kodu poniżej pokazuje, jak wczytać wiadomość e‑mail „sample.eml” do instancji klasy Viewer i następnie wyrenderować ją do wszystkich 4 obsługiwanych formatów wyjściowych: HTML, PDF, PNG i JPEG. Jak widać, na początku tworzone są wszystkie 4 klasy opcji widoku, potem „sample.eml” jest ładowany do instancji Viewer przy użyciu ścieżki do pliku, a na końcu wykonywane są 4 wywołania 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. Dostosowywanie opcji e‑mail dla renderowania
Powyższy przykład pokazuje renderowanie ze wszystkimi opcjami ustawionymi na wartości domyślne. Istnieje jednak klasa EmailOptions, dostępna we wszystkich 4 opcjach widoku (HtmlViewOptions, PdfViewOptions, PngViewOptions, JpgViewOptions) poprzez właściwość EmailOptions. Nie ma potrzeby ręcznego tworzenia instancji klasy EmailOptions i przypisywania jej do opcji widoku przez właściwość EmailOptions — wszystko to jest już zrobione, użytkownik musi jedynie dostosować wartości właściwości w razie potrzeby.
W klasie EmailOptions znajduje się kilka właściwości, opisanych poniżej.
3.1. Rozmiar strony
Enum PageSize kontroluje rozmiar wyjściowej strony. Domyślnie jest to Unspecified — GroupDocs.Viewer dostosowuje rozmiar do najbardziej odpowiedniego. Można go ustawić w następujący sposób, na przykład:
PdfViewOptions pdfOptions = new PdfViewOptions("Output.pdf");
pdfOptions.EmailOptions.PageSize = PageSize.A1;
3.2. Format daty i czasu oraz strefa czasowa
Wiadomości e‑mail zazwyczaj mają datę „Sent”. Właściwość DateTimeFormat pozwala kontrolować, w jaki sposób ta wartość daty i czasu będzie formatowana, a TimeZoneOffset umożliwia zastosowanie dodatniego lub ujemnego przesunięcia do tej daty i czasu. Przykład poniżej:
JpgViewOptions jpegOptions = new JpgViewOptions("image-page{0}.jpeg");
jpegOptions.EmailOptions.DateTimeFormat = "MM d yyyy HH:mm tt zzz"; // całkowicie własny format
jpegOptions.EmailOptions.TimeZoneOffset = TimeSpan.FromHours(-5); // Dodaj przesunięcie o 5 godzin wstecz
Jeśli pozostawisz DateTimeFormat jako null lub pusty ciąg, GroupDocs.Viewer użyje bieżącego formatu systemowego.
3.3. Dostosowywanie pól
Wiadomość e‑mail zawiera treść oraz pola takie jak temat, data wysłania, nadawca itp. GroupDocs.Viewer pozwala użytkownikom nadpisać etykiety tych pól poprzez właściwość FieldTextMap, która mapuje wartość wyliczenia Field (np. Field.Subject) na tekst wyświetlany w renderowanym wyniku za pomocą Dictionary. Użytkownik może więc zamienić dowolny wpis lub dodać nowe:
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. Ładowanie e‑maila i pobieranie informacji o widoku
Możliwe jest pobranie niektórych wartości pól wiadomości e‑mail programowo, bez renderowania samej wiadomości. W tym celu użytkownik powinien wczytać dokument e‑mail do instancji Viewer, a następnie użyć metody instancyjnej Viewer.GetViewInfo(), jak pokazano poniżej:
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());
// jawne rzutowanie
MailMessageViewInfo mailMessageInfo = (MailMessageViewInfo)generalInfo;
Console.WriteLine("From: {0}; Subject: {1}; Sent: {2}.", mailMessageInfo.From, mailMessageInfo.Subject, mailMessageInfo.Sent);
// Renderowanie do dowolnego formatu wyjściowego, jeśli jest potrzebne
viewer.View(HtmlViewOptions.ForEmbeddedResources());
}
Widać, że metoda Viewer.GetViewInfo() zwraca instancję wspólnej klasy ViewInfo, która następnie jest rzutowana na klasę MailMessageViewInfo. Obecnie obsługiwane są tylko pola From, Subject i Sent.
| Właściwość | Typ | Znaczenie |
|---|---|---|
Sent |
DateTime |
Dokładny moment, w którym e‑mail został wysłany. |
Subject |
string |
Tekst wyświetlany w wierszu tematu e‑maila. |
From |
string |
Adres e‑mail nadawcy jako zwykły ciąg znaków. |
Wszystkie trzy właściwości są tylko do odczytu.
5. Podsumowanie
- Utwórz instancję
Vieweri podaj plik wejściowy wiadomości e‑mail w konstruktorze, używając ścieżki lub strumienia. - Wywołaj metodę
Viewer.GetViewInfo(), a następnie rzutuj jej wynik na typMailMessageViewInfo, aby uzyskać metadane: polaSent,SubjectiFrom. - Użyj
EmailOptions, aby zmienić rozmiar strony, format daty, przesunięcie strefy czasowej lub etykietę tekstową wyświetlaną dla dowolnego pola, a następnie wywołaj metodęViewer.View().
Te kroki dostarczają podstawowych właściwości e‑maila i pozwalają kontrolować, jak wiadomość wygląda po renderowaniu. Nie są wymagane dodatkowe biblioteki ani skomplikowany kod.
Zobacz także
Uzyskaj bezpłatną wersję próbną
Możesz pobrać bezpłatną wersję próbną GroupDocs.Viewer for .NET z releases.groupdocs.com. Możesz także uzyskać tymczasową licencję, aby wypróbować wszystkie funkcje i możliwości bez ograniczeń, tutaj.