Mengonversi email ke HTML di C# .NET

HTML adalah format yang banyak digunakan dan mudah diakses yang dapat dilihat oleh berbagai platform, browser web, termasuk komputer desktop dan perangkat mobile. Sebaliknya, file EML dan MSG mungkin memerlukan perangkat lunak atau klien email tertentu untuk dilihat, yang dapat membuatnya lebih sulit diakses dan dilihat seiring waktu. Jadi, mengonversi file MSG atau EML ke HTML membuatnya lebih mudah dilihat, terutama bagi penerima yang mungkin tidak memiliki klien email atau perangkat lunak yang kompatibel.

Selain itu, file HTML lebih mudah diarsipkan dan tetap dalam format yang dapat dicari dan terindeks.

Artikel ini menyajikan algoritma untuk dengan cepat dan mudah mengonversi file MSG atau EML ke format HTML menggunakan C#, tanpa memandang tujuan yang mendasarinya. Metode kami yang andal menjamin bahwa konten email, termasuk gambar tersemat, sepenuhnya terjaga tanpa kehilangan apa pun. Ini memastikan bahwa integritas email tetap terjaga sepanjang proses konversi.

Artikel ini mencakup topik-topik berikut:

API C# untuk mengonversi file EML/MSG ke HTML

Untuk mengonversi file EML/MSG ke HTML, kami akan menggunakan Aspose.Email untuk .NET. Ini adalah API pemrosesan email yang memungkinkan Anda mengelola email dan bekerja dengan format file dari klien email populer seperti Thunderbird, Outlook, dll. Anda dapat mengunduh DLL API atau menginstalnya dari NuGet menggunakan perintah berikut:

PM> Install-Package Aspose.Email

Mengonversi file EML/MSG ke HTML menyimpan Gambar Secara Terpisah

File MSG yang khas memiliki tampilan sebagai berikut:

Tampilan file MSG

Dengan API kami, Anda dapat mengatur direktori mana pun di perangkat Anda dan menyimpan file HTML target dengan gambar di folder terpisah:

Tampilan file HTML

Gunakan contoh kode berikut untuk mengonversi pesan email dalam format MSG atau EML ke file HTML dengan gambar, yang disimpan ke direktori target. Kode ini melakukan langkah-langkah berikut:

  1. Pertama, menentukan jalur sumber dan target untuk file MSG/EML sumber dan file HTML, serta direktori target untuk sumber daya.
  2. Memuat file MSG atau EML menggunakan metode MailMessage.Load.
  3. Membuat objek HtmlSaveOptions dan mengatur properti ResourceRenderingMode ke SaveToFile.
  4. Mendefinisikan delegasi untuk acara SaveResourceHandler dari HtmlSaveOptions.
  5. Membuat direktori target untuk sumber daya di dalam delegasi jika belum ada.
  6. Menyimpan setiap sumber daya ke file dengan nama file di dalam delegasi berdasarkan jenis konten sumber daya.
  7. Memanggil metode Save dari instance MailMessage, dengan melewatkan nama file HTML target dan instance HtmlSaveOptions untuk menyimpan email dalam format HTML.
// MSG or EML filename
var msgFileName = Path.Combine(sourcePath, "A Day in the Park.msg");
// target HTML
var htmlFileName = Path.Combine(targetPath, "A Day in the Park.html");
// target directory to save images
var resourceDir = Path.Combine(targetPath, "A Day in the Park");
// Load MSG or EML
var msg = MailMessage.Load(msgFileName);
// Create HTML save options
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.SaveToFile
};
htmlSaveOptions.SaveResourceHandler +=
(AttachmentBase attachment, out string resourceFileName) =>
{
if (!Directory.Exists(resourceDir))
{
Directory.CreateDirectory(resourceDir);
}
resourceFileName = Path.Combine(resourceDir, attachment.ContentType.Name);
attachment.Save(resourceFileName);
};
msg.Save(htmlFileName, htmlSaveOptions);

Mengonversi file EML/MSG ke HTML menyimpan Gambar di dalam HTML

Kadang-kadang Anda mungkin lebih suka mengonversi file EML/MSG ke HTML dengan mempertahankan gambar tersemat di dalam HTML.

Gambar di dalam HTML di editor teks

Potongan kode berikut menunjukkan cara mengonversi file MSG atau EML ke format HTML di C# dan menyimpan gambar di dalam HTML. Kode ini melakukan langkah-langkah berikut:

  1. Mendefinisikan jalur sumber dan target untuk file email dan output HTML.
  2. Memuat file MSG atau EML menggunakan metode MailMessage.Load.
  3. Membuat instance baru dari kelas HtmlSaveOptions, yang memungkinkan Anda mengonfigurasi bagaimana email disimpan sebagai HTML.
  4. Mengonfigurasi instance HtmlSaveOptions untuk menyematkan sumber daya, termasuk gambar, langsung ke dalam HTML.
  5. Memanggil metode Save dari instance MailMessage, dengan melewatkan nama file HTML target dan instance HtmlSaveOptions untuk menyimpan email dalam format HTML.
// MSG or EML filename
var msgFileName = Path.Combine(sourcePath, "A Day in the Park.msg");
// target HTML
var htmlFileName = Path.Combine(targetPath, "A Day in the Park.html");
// Load MSG or EML
var msg = MailMessage.Load(msgFileName);
// Create HTML save options
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.EmbedIntoHtml
};
msg.Save(htmlFileName, htmlSaveOptions);

Menyimpan HTML dengan Header

Sebagai varian opsional, Anda dapat menyimpan HTML dengan header. Potongan kode berikut menunjukkan cara menyimpan HTML dengan header di C#:

// Create HTML save options
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.EmbedIntoHtml,
HtmlFormatOptions = HtmlFormatOptions.WriteHeader
};

Sebagai hasilnya, header teks akan ditambahkan ke HTML target:

Header teks

Kesimpulan

Sebagai kesimpulan, dari artikel ini Anda baru saja belajar tentang kenyamanan format HTML untuk pengarsipan dan pengelolaan file Anda serta bagaimana cara melakukan konversi dari EML atau MSG di C# menggunakan pustaka Aspose.Email untuk .NET. Anda dapat melihat betapa cepat dan mudahnya proses konversi hanya dengan beberapa baris kode. Jika Anda memiliki pertanyaan, jangan ragu untuk menulis ke forum dukungan gratis kami. Anda juga dapat belajar lebih lanjut tentang Aspose.Email untuk .NET, fitur dan fasilitasnya dari dokumentasi kami.

Lihat Juga