1. Вступ
GroupDocs.Viewer for .NET бібліотека дозволяє імпортувати електронне повідомлення у будь‑якому популярному форматі, рендерити його в HTML, PNG, JPEG та PDF, а також витягати базові властивості електронного листа без фактичного рендерингу.
Насправді, працюючи з електронними листами в GroupDocs.Viewer, користувачі повинні знати про два типи, специфічні для електронної пошти:
- клас
Options.EmailOptions– дозволяє керувати тим, як повідомлення рендериться (розмір сторінки, формат дати, поля тощо). - клас
Results.MailMessageViewInfo— створюється GroupDocs.Viewer після виклику методуGetViewInfo()і містить метадані про завантажений електронний лист.
Нижче наведено дуже швидкий посібник, який показує, як рендерити електронні листи та отримувати їх метадані.
2. Завантаження електронного листа та рендеринг у всі формати виводу
Нижче дуже короткий приклад коду, який показує завантаження вхідного листа «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. Налаштування параметрів електронної пошти для рендерингу
Приклад вище показує рендеринг з усіма параметрами, встановленими за замовчуванням. Однак існує клас EmailOptions, і він доступний у всіх 4 параметрах перегляду (HtmlViewOptions, PdfViewOptions, PngViewOptions, JpgViewOptions) через властивість EmailOptions. Не потрібно вручну створювати екземпляр EmailOptions і призначати його параметрам перегляду через властивість EmailOptions — усе це вже зроблено, користувач лише потребує при необхідності змінити значення властивостей.
У класі EmailOptions є кілька властивостей, описаних нижче.
3.1. Розмір сторінки
Перелічення PageSize керує розміром вихідної сторінки. За замовчуванням — Unspecified, тобто GroupDocs.Viewer підбирає найбільш підходящий розмір. Можна встановити, наприклад, так:
PdfViewOptions pdfOptions = new PdfViewOptions("Output.pdf");
pdfOptions.EmailOptions.PageSize = PageSize.A1;
3.2. Формат дати та часу і часовий пояс
Електронні листи зазвичай мають дату «Надіслано». Властивість 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. Налаштування полів
Лист містить тіло повідомлення та поля, такі як тема, дата надсилання, відправник тощо. GroupDocs.Viewer дозволяє користувачам перевизначати підписи цих полів через властивість FieldTextMap, яка відображає значення переліку Field (наприклад, Field.Subject) у текст, що з’являється у рендереному виводі, за допомогою Dictionary. Тому користувач може замінити будь‑який запис або додати нові:
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. Завантаження листа та отримання інформації про перегляд
Можна отримати деякі значення полів електронного листа програмно без рендерингу самого листа. Для цього користувач повинен завантажити документ листа у екземпляр 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. Підсумок
- Створіть екземпляр
Viewerі вкажіть файл вхідного листа у його конструкторі за шляхом або потоком. - Викличте метод
Viewer.GetViewInfo()і потім приведiть його результат до типуMailMessageViewInfo, щоб отримати метадані: поляSent,SubjectтаFrom. - Використовуйте
EmailOptionsдля зміни розміру сторінки, формату дати, зсуву часового поясу або текстової мітки будь‑якого поля, після чого викличте методViewer.View().
Ці кроки дають вам основні властивості листа та дозволяють контролювати, як повідомлення виглядатиме після рендерингу. Додаткові бібліотеки чи складний код не потрібні.
Дивіться також
Отримати безкоштовну пробну версію
Ви можете завантажити безкоштовну пробну версію GroupDocs.Viewer for .NET з releases.groupdocs.com. Ви також можете отримати тимчасову ліцензію, щоб випробувати всі функції без обмежень, за цим посиланням.