1. Introduction
GroupDocs.Viewer for .NET бібліотека дозволяє імпортувати електронне повідомлення у будь‑якому популярному форматі, рендерити його в HTML, PNG, JPEG та PDF, а також витягати базові властивості повідомлення без фактичного рендерингу.
На практиці, працюючи з електронними листами в GroupDocs.Viewer, користувачі повинні знати про два типи, специфічні для електронної пошти:
- клас
Options.EmailOptions– дозволяє керувати тим, як повідомлення буде відображено (розмір сторінки, формат дати, поля тощо). Results.MailMessageViewInfo— створюється GroupDocs.Viewer після виклику методуGetViewInfo()і містить метадані про завантажене електронне повідомлення.
Нижче наведено дуже швидкий посібник, який показує, як рендерити електронні листи та отримувати їх метадані.
2. Load an email message and render it to all output formats
Дуже короткий приклад коду нижче демонструє завантаження вхідного листа «sample.eml» у екземпляр класу Viewer, а потім рендеринг у всі 4 підтримувані формати: HTML, PDF, PNG та JPEG. Як бачите, спочатку створюються всі 4 класи параметрів перегляду, потім «sample.eml» завантажується у екземпляр Viewer за шляхом до файлу, і нарешті виконується 4 виклики 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. Tuning email options for rendering
Приклад вище показує рендеринг з усіма параметрами, встановленими за замовчуванням. Однак існує клас EmailOptions, який доступний у всіх 4 параметрах перегляду (HtmlViewOptions, PdfViewOptions, PngViewOptions, JpgViewOptions) через властивість EmailOptions. Не потрібно вручну створювати екземпляр EmailOptions і призначати його параметрам перегляду — усе це вже зроблено, користувач лише має при необхідності змінити значення властивостей.
Нижче пояснено кілька властивостей класу EmailOptions.
3.1. Page size
Керує розміром вихідної сторінки. За замовчуванням — Unspecified, і GroupDocs.Viewer підбирає найбільш підходящий розмір. Приклад встановлення:
PdfViewOptions pdfOptions = new PdfViewOptions("Output.pdf");
pdfOptions.EmailOptions.PageSize = PageSize.A1;
3.2. Date and time format and time zone
Електронні листи зазвичай мають дату «Надіслано». Властивість DateTimeFormat дозволяє задати формат відображення цієї дати, а TimeZoneOffset — застосувати позитивний або негативний зсув. Приклад:
JpgViewOptions jpegOptions = new JpgViewOptions("image-page{0}.jpeg");
jpegOptions.EmailOptions.DateTimeFormat = "MM d yyyy HH:mm tt zzz"; // повністю кастомний формат
jpegOptions.EmailOptions.TimeZoneOffset = TimeSpan.FromHours(-5); // зсув на 5 годин раніше
Якщо залишити DateTimeFormat null або порожнім рядком, GroupDocs.Viewer використовує поточний системний формат.
3.3. Adjusting fields
Лист містить тіло повідомлення та поля, такі як тема, дата надсилання, відправник тощо. GroupDocs.Viewer дозволяє користувачам перевизначати підписи цих полів через властивість FieldTextMap, яка зіставляє значення перерахування Field (наприклад, Field.Subject) з текстом, що відображається у результаті. Таким чином, користувач може замінити будь‑який запис або додати нові:
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
Можна отримати деякі значення полів електронного листа програмно без рендерингу самого листа. Для цього користувач повинен завантажити документ листа у екземпляр Viewer, а потім використати метод Viewer.GetViewInfo(), як показано нижче:
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());
// явне приведення типу
MailMessageViewInfo mailMessageInfo = (MailMessageViewInfo)generalInfo;
Console.WriteLine("From: {0}; Subject: {1}; Sent: {2}.", mailMessageInfo.From, mailMessageInfo.Subject, mailMessageInfo.Sent);
// За потреби рендеринг у будь‑який формат
viewer.View(HtmlViewOptions.ForEmbeddedResources());
}
Як видно, метод Viewer.GetViewInfo() повертає екземпляр загального класу ViewInfo, який потім приводиться до MailMessageViewInfo. Поки що підтримуються лише поля From, Subject та Sent.
| Властивість | Тип | Значення |
|---|---|---|
Sent |
DateTime |
Точний час, коли лист був надісланий. |
Subject |
string |
Текст, який відображається в рядку теми листа. |
From |
string |
Адреса електронної пошти відправника у вигляді простого рядка. |
Усі три властивості лише для читання.
5. Summary
- Створіть екземпляр
Viewerі вкажіть файл вхідного листа у конструкторі за шляхом або потоком. - Викличте метод
Viewer.GetViewInfoі приведіть його результат до типуMailMessageViewInfo, щоб отримати метадані: поляSent,SubjectтаFrom. - Використовуйте
EmailOptionsдля зміни розміру сторінки, формату дати, зсуву часового поясу або підпису будь‑якого поля, після чого викликайтеViewer.View().
Ці кроки дають вам основні властивості листа та дозволяють контролювати, як повідомлення виглядатиме після рендерингу. Додаткові бібліотеки чи складний код не потрібні.
See Also
Get a free trial
Ви можете завантажити безкоштовну пробну версію GroupDocs.Viewer for .NET з releases.groupdocs.com. Також можна отримати тимчасову ліцензію для випробування всіх функцій без обмежень за посиланням here.