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.EmailOptionsclass – memungkinkan Anda mengontrol cara pesan dirender (ukuran halaman, format tanggal, bidang, dll.).Results.MailMessageViewInfoclass — dihasilkan oleh GroupDocs.Viewer setelah memanggil metodeGetViewInfo()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
Viewerdan tentukan file pesan email input ke konstruktor-nya melalui path atau stream. - Panggil metode
Viewer.GetViewInfo()dan kemudian cast hasilnya ke tipeMailMessageViewInfountuk mendapatkan metadata: bidangSent,Subject, danFrom. - Gunakan
EmailOptionsuntuk mengubah ukuran halaman, format tanggal, offset zona waktu, atau label teks yang ditampilkan untuk bidang apa pun, lalu panggil metodeViewer.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.