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.