1. Introduction

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

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

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

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


2. Memuat pesan email dan merendernya ke semua format output

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 Anda lihat, pada awalnya keempat kelas opsi tampilan diinstansiasi, kemudian “sample.eml” dimuat ke instance Viewer melalui jalur file-nya, 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. Menyetel opsi email untuk rendering

Contoh di atas menunjukkan rendering dengan semua opsi diatur ke nilai default mereka. Namun, terdapat kelas EmailOptions, dan kelas ini tersedia di semua 4 opsi tampilan (HtmlViewOptions, PdfViewOptions, PngViewOptions, JpgViewOptions) melalui properti EmailOptions. Tidak perlu secara manual membuat instance dari kelas EmailOptions dan menetapkannya ke opsi tampilan melalui properti EmailOptions — semua itu sudah dilakukan, pengguna hanya perlu menyesuaikan nilai properti jika diperlukan.

Ada beberapa properti dalam kelas EmailOptions, dijelaskan di bawah ini.

3.1. Ukuran halaman

Enum PageSize mengontrol ukuran halaman output. Secara default adalah Unspecified — GroupDocs.Viewer menyesuaikan ukuran ke yang paling tepat. Dapat diatur dengan cara berikut, misalnya:

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

3.2. Format tanggal dan waktu serta zona waktu

Pesan email biasanya memiliki tanggal “Sent”. Properti DateTimeFormat memungkinkan mengontrol bagaimana nilai datetime ini diformat, dan TimeZoneOffset memungkinkan menerapkan pergeseran positif atau negatif pada datetime 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); // Tambahkan pergeseran 5 jam lebih awal

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

3.3. Menyesuaikan bidang

Pesan email berisi isi pesan dan bidang seperti subjek, tanggal 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 dalam output yang dirender melalui Dictionary. 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. Memuat email dan mendapatkan informasi tampilan

Dimungkinkan untuk memperoleh beberapa nilai bidang dari pesan email secara programatis tanpa merender pesan email itu sendiri. Untuk melakukannya, pengguna harus memuat dokumen pesan email ke instance Viewer dan kemudian menggunakan metode instance Viewer.GetViewInfo(), seperti 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());
    // casting eksplisit
    MailMessageViewInfo mailMessageInfo = (MailMessageViewInfo)generalInfo;
    Console.WriteLine("From: {0}; Subject: {1}; Sent: {2}.", mailMessageInfo.From, mailMessageInfo.Subject, mailMessageInfo.Sent);

    // Render ke format output apa pun jika diperlukan
    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.

Properti Tipe Makna
Sent DateTime Waktu tepat saat email dikirim.
Subject string Teks yang muncul pada baris subjek email.
From string Alamat email pengirim sebagai string biasa.

Ketiga properti bersifat read‑only.

5. Ringkasan

  • Buat instance Viewer dan tentukan file pesan email input ke konstruktor-nya melalui path atau stream.
  • Panggil metode Viewer.GetViewInfo() dan kemudian cast hasilnya ke tipe MailMessageViewInfo untuk mendapatkan 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, lalu panggil metode Viewer.View().

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

Lihat Juga

Dapatkan percobaan gratis

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