1. Introduction

GroupDocs.Viewer for .NET library memungkinkan Anda mengimpor pesan email dalam format apa pun yang populer, merendernya ke HTML, PNG, JPEG, dan PDF, serta mengekstrak properti dasar pesan email tanpa melakukan rendering sebenarnya.

Saat bekerja dengan pesan email di GroupDocs.Viewer, pengguna harus menyadari dua tipe khusus email:

  • Kelas Options.EmailOptions – memungkinkan Anda mengontrol cara pesan dirender (ukuran halaman, format tanggal, bidang, dll.).
  • Results.MailMessageViewInfo — dihasilkan oleh GroupDocs.Viewer setelah memanggil metode GetViewInfo() dan berisi metadata tentang pesan email yang dimuat.

Berikut panduan singkat yang menunjukkan cara merender pesan email dan mendapatkan metadata‑nya.


2. Load an email message and render it to all output formats

Contoh kode singkat di bawah ini menunjukkan cara memuat pesan email input “sample.eml” ke instance kelas Viewer dan kemudian merendernya ke keempat format output yang didukung: HTML, PDF, PNG, dan JPEG. Seperti yang dapat Anda lihat, pada awalnya keempat kelas opsi tampilan diinstansiasi, kemudian “sample.eml” dimuat ke instance Viewer melalui jalur file, dan selanjutnya dilakukan 4 pemanggilan 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

Contoh di atas memperlihatkan rendering dengan semua opsi berada pada nilai default. Namun, terdapat kelas EmailOptions, dan kelas ini tersedia di keempat opsi tampilan (HtmlViewOptions, PdfViewOptions, PngViewOptions, JpgViewOptions) melalui properti EmailOptions. Tidak perlu membuat instance EmailOptions secara manual dan menetapkannya ke opsi tampilan melalui properti EmailOptions — semua itu sudah dilakukan secara otomatis, pengguna hanya perlu menyesuaikan nilai properti bila diperlukan.

Berikut beberapa properti dalam kelas EmailOptions yang dijelaskan.

3.1. Page size

Mengontrol ukuran halaman output. Secara default bernilai Unspecified — GroupDocs.Viewer menyesuaikan ukuran ke yang paling tepat. Dapat diatur seperti berikut, misalnya:

PdfViewOptions pdfOptions = new PdfViewOptions("Output.pdf");
pdfOptions.EmailOptions.PageSize = PageSize.A1;

3.2. Date and time format and time zone

Pesan email biasanya memiliki tanggal “Sent”. Properti DateTimeFormat memungkinkan mengontrol bagaimana nilai tanggal‑waktu ini diformat, dan TimeZoneOffset memungkinkan menerapkan pergeseran positif atau negatif pada tanggal‑waktu tersebut. Contoh di bawah:

JpgViewOptions jpegOptions = new JpgViewOptions("image-page{0}.jpeg");
jpegOptions.EmailOptions.DateTimeFormat = "MM d yyyy HH:mm tt zzz"; // format khusus sepenuhnya
jpegOptions.EmailOptions.TimeZoneOffset = TimeSpan.FromHours(-5); // Geser 5 jam lebih awal

Jika Anda membiarkan DateTimeFormat null atau string kosong, GroupDocs.Viewer akan menggunakan format sistem saat ini.

3.3. Adjusting fields

Pesan email berisi isi pesan serta bidang‑bidang seperti subjek, tanggal‑waktu terkirim, pengirim, dll. GroupDocs.Viewer memungkinkan pengguna mengganti label bidang‑bidang ini melalui properti FieldTextMap, yang memetakan nilai enum Field (mis., Field.Subject) ke teks yang muncul pada output yang dirender. Jadi pengguna dapat mengganti entri apa pun atau menambahkan yang baru:

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

Anda dapat memperoleh beberapa nilai bidang dari pesan email secara programatis tanpa harus merender pesan email tersebut. Untuk melakukannya, pengguna harus memuat dokumen pesan email ke instance Viewer dan kemudian menggunakan metode instance Viewer.GetViewInfo(), seperti yang ditunjukkan di bawah:

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());
}

Terlihat bahwa metode Viewer.GetViewInfo() mengembalikan instance dari kelas umum ViewInfo, yang kemudian di‑cast ke kelas MailMessageViewInfo. Saat ini hanya bidang From, Subject, dan Sent yang didukung.

Property Type Meaning
Sent DateTime Waktu tepat saat email dikirim.
Subject string Teks yang muncul pada baris subjek email.
From string Alamat email pengirim dalam bentuk string biasa.

Ketiga properti tersebut bersifat read‑only.

5. Summary

  • Buat instance Viewer dan tentukan file pesan email input ke konstruktor melalui path atau stream.
  • Panggil metode Viewer.GetViewInfo lalu cast hasilnya ke tipe MailMessageViewInfo untuk memperoleh metadata: bidang Sent, Subject, dan From.
  • Gunakan EmailOptions untuk mengubah ukuran halaman, format tanggal, offset zona waktu, atau label teks yang ditampilkan untuk bidang apa pun, kemudian panggil metode Viewer.View().

Langkah‑langkah ini memberikan properti inti email dan memungkinkan Anda mengontrol tampilan pesan saat dirender. Tidak diperlukan pustaka tambahan atau kode yang kompleks.

See Also

Get a free trial

Anda dapat mengunduh versi percobaan gratis GroupDocs.Viewer for .NET dari releases.groupdocs.com. Anda juga dapat memperoleh lisensi sementara untuk mencoba semua fitur dan fungsionalitas tanpa batasan dari here.