Konversi EML ke HTML

Konversi EML ke HTML

Untuk mengintegrasikan konten email ke dalam aplikasi web, konversi EML ke HTML adalah pilihan tepat, memfasilitasi tampilan email yang menarik secara visual.

Untuk mengonversi EML ke HTML, Anda akan membutuhkan kelas-kelas berikut:

  • MailMessage kelas digunakan untuk membuat objek yang merepresentasikan pesan email. Ini memungkinkan akses ke properti pesan, seperti subjek, isi, pengirim, dan alamat penerima, dll. Dengan metodenya, Anda dapat membuat, memuat, mengurai, memodifikasi, menyimpan email, atau melakukan manipulasi lainnya.
  • SaveOptions kelas menyediakan opsi untuk menyimpan pesan email dalam berbagai format. Ini memungkinkan pengguna menyesuaikan cara pesan email disimpan dalam format yang berbeda. Dengan kelas ini, pengguna dapat menentukan opsi untuk menyimpan lampiran, header, metadata, dan properti pesan email, mengatur opsi encoding atau memilih apakah akan menyimpan pesan dengan enkripsi atau tidak.

Dalam contoh kode di bawah ini kelas-kelas tersebut bekerja bersama untuk memuat file EML yang ada dan menentukan format pesan sebagai EML. Selanjutnya, mereka menyimpan pesan email yang dimuat sebagai file HTML menggunakan opsi penyimpanan HTML default yang ditentukan:

  1. Gunakan MailMessage.Load() metode untuk memuat file yang ada ke dalam objek MailMessage dengan menentukan format pesan.
  2. Simpan objek MailMessage yang dimuat sebagai file HTML menggunakan save metode. Gunakan SaveOptions.DefaultHtml() untuk menentukan opsi penyimpanan untuk format HTML.
// Initialize and Load an existing EML file by specifying the MessageFormat
var message = MailMessage.Load("myMessage.eml");
message.Save("output.html", SaveOptions.DefaultHtml);

Simpan Sumber Daya EML dalam File Terpisah

Aspose.Email menyediakan ResourceRenderingMode enumerasi yang memungkinkan pengembang memanipulasi sumber daya dalam file HTML. Dalam contoh kode di bawah, enum ini digunakan untuk menyimpan sumber daya ke file dan menyisipkan dalam HTML tag ‘src’ dengan path ke file tersebut:

  1. Muat pesan email dari file sumber menggunakan MapiMessage.Load metode.
  2. Buat sebuah instance dari HtmlSaveOptions dengan opsi rendering dan sumber daya yang ditentukan.
  3. Simpan pesan email yang dimuat sebagai file HTML ke lokasi target menggunakan Simpan metode dengan parameter HtmlSaveOptions.
var msg = MapiMessage.Load(sourceFileName);
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.SaveToFile,
UseRelativePathToResources = true
};
msg.Save(Path.Combine("target.html"), htmlSaveOptions);

Sematkan Sumber Daya ke File HTML

Dalam beberapa kasus, diperlukan untuk menyematkan sumber daya, seperti gambar, langsung ke file HTML untuk distribusi dan presentasi yang mulus. Dengan Aspose.Email for .NET, Anda dapat dengan mudah melakukannya menggunakan ResourceRenderingMode enumerasi:

  1. Muat pesan email dari file sumber menggunakan MapiMessage.Load metode.
  2. Buat baru HtmlSaveOptions objek dan atur properti ResourceRenderingMode menjadi EmbedIntoHtml.
  3. Simpan pesan email yang dimuat sebagai file HTML menggunakan Simpan metode, menentukan path file target dan melewatkan objek HtmlSaveOptions sebagai parameter untuk menyematkan sumber daya ke file HTML.
var msg = MapiMessage.Load(sourceFileName);
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.EmbedIntoHtml
};
msg.Save(Path.Combine("target.html"), htmlSaveOptions);

Konversi EML ke ICS

Contoh kode berikut menunjukkan cara mengekstrak data acara kalender dari file EML dan menyimpannya ke file ICS terpisah untuk penggunaan atau manipulasi lebih lanjut.

// Load the EML file
var eml = MailMessage.Load("message.eml");
// Find the alternate view with MediaType "text/calendar" (ICS)
var icsView = eml.GetAlternateViewContent("text/calendar");
// If an ICS view is found, save it to a file
if (icsView != null)
{
    File.WriteAllText("appointment.ics", icsView);
}

Kustomisasi

Aspose.Email for .NET menyediakan alat untuk menyesuaikan konten ICS (iCalendar) yang diekstrak dari file EML (Electronic Mail).

Sesuaikan detail acara

Contoh kode berikut menunjukkan cara mengatur berbagai detail janji, seperti ringkasan, lokasi, dan deskripsi. Kode menggunakan Appointment kelas yang merepresentasikan janji atau acara kalender dalam format ICS (iCalendar). Kelas ini menyediakan properti dan metode untuk membuat, memodifikasi, dan mengelola acara kalender secara programatik.

// Load the EML file
var eml = MailMessage.Load("message.eml");
// Find the alternate view with MediaType "text/calendar" (ICS)
var icsView = eml.GetAlternateViewContent("text/calendar");
// If an ICS view is found, load it to Appointment class object
var appointment = Appointment.Load(new MemoryStream(Encoding.UTF8.GetBytes(icsView)));

// Customize the event details
appointment.Summary = "Customized Event Summary";
appointment.Location = "Customized Location";
appointment.Description = "Customized Event Description";

// Add or modify attendees as needed
appointment.Attendees.Clear();
appointment.Attendees.Add("custom@example.com");

// Save the customized ICS content to a file
appointment.Save("customized_appointment.ics");

Buat pola berulang

Contoh kode berikut menunjukkan cara membuat pola berulang mingguan untuk janji, di mana janji terjadi setiap 5 minggu pada hari Sabtu. Kode menggunakan Recurrence properti dari Appointment kelas yang mendapatkan atau menetapkan pola berulang.

var pattern = new  WeeklyRecurrencePattern(5, 7);
pattern. EndDate = new DateTime(2023, 8, 7);

appointment.Recurrence = pattern;

Tambah EML ke MBOX

MBOX adalah format yang umum digunakan untuk menyimpan banyak pesan email dalam satu file, menjadikannya cocok untuk tujuan pengarsipan dan migrasi email. Gunakan MboxrdStorageWriter kelas untuk menulis pesan email ke file MBOX. Contoh kode berikut menunjukkan cara melakukan tugas ini:

using (var message = MailMessage.Load("inputFile.eml")){
	using (var writer = new MboxrdStorageWriter("output.mbox", false)){
			writer.WriteMessage(message);
	}
} 

Konversi EML ke MHTML

Dengan Aspose.Email for .NET, Anda dapat dengan mudah mengonversi file EML ke format MHTML untuk berbagai tujuan seperti pengarsipan, kompatibilitas, penayangan offline, dll. Muat pesan email menggunakan MailMessage.Load, lalu gunakan MhtSaveOptions kelas sebagai parameter ke MailMessage.Save metode untuk menentukan format file output saat menyimpan pesan sebagai file terpisah:

// Initialize and Load an existing EML file by specifying the MessageFormat
var message = MailMessage.Load("myMessage.eml");
var mhtSaveOptions = new MhtSaveOptions;
message.Save("output.mhtml", mhtSaveOptions);

The MhtSaveOptions kelas menyediakan berbagai opsi untuk menyesuaikan file MHTML output agar memenuhi kebutuhan spesifik Anda:

  • Pertahankan format tanggal asli. Anda dapat memilih untuk mempertahankan format asli pesan email selama proses konversi:

    saveOptions.PreserveOriginalDate = true;
    
  • Atur encoding output. Anda dapat menentukan encoding yang akan digunakan saat menulis file MHTML output:

    saveOptions.OutputEncoding = Encoding.UTF8; 
    
  • Sertakan lampiran. Ini dapat membantu jika Anda ingin mempertahankan lampiran saat mengonversi email ke format MHTML:

    saveOptions.SaveAttachments = true;
    

Konversi EML ke MSG

Apakah Anda perlu memigrasikan data email, mengarsipkan pesan, atau mengintegrasikan dengan Microsoft Outlook, Aspose.Email menyediakan solusi untuk mencapai tujuan Anda. File MSG banyak digunakan oleh Microsoft Outlook. Untuk konversi EML ke MSG, gunakan MailMessage.Load metode untuk memuat file EML yang ada dengan menentukan bagaimana file tersebut akan dimuat dengan EmlLoadOptions.

Contoh kode berikut menunjukkan cara mengonversi file EML ke format MSG:

// Load mail message
using (var message = MailMessage.Load("sourceFile.eml", new EmlLoadOptions())){
// Save as MSG
var msgSaveOptions = new MsgSaveOptions;
message.Save("output.msg", MsgSaveOptions);
} 

Konversi EML ke OFT

Untuk mengonversi file EML ke format Outlook Template (OFT), muat pesan email yang ada menggunakan MailMessage.Load metode dan simpan dengan MailMessage.Save menentukan opsi default untuk menyimpan pesan ke format OFT:

// load the EML file to be converted
var message = MailMessage.Load("My File.eml"); 
// save EML as a OFT 
message.Save("Saved File.oft", SaveOptions.DefaultOft);

Tambah EML ke PST

Untuk mengonversi file EML ke format Personal Storage Table (PST), muat pesan menggunakan MapiMessage.Load metode, buat file output dengan PersonalStorage.Create dan menambahkan email ke folder Inbox yang dibuat dalam file penyimpanan menggunakan AddMessage:

using (var msg = MapiMessage.Load("sourceFile.eml", new EmlLoadOptions()))
{
    using (var personalStorage = PersonalStorage.Create("outputFile.pst", FileFormatVersion.Unicode))
  {
        var inbox = personalStorage.RootFolder.AddSubFolder("Inbox");
        inbox.AddMessage(msg);
  }
}

Tambah EML ke OST

Pengembang dapat dengan mudah mengonversi file EML ke format Outlook Offline Storage Table (OST), memungkinkan integrasi dengan Microsoft Outlook. Contoh kode berikut menunjukkan cara menambahkan pesan EML ke file OST:

using (var ost = PersonalStorage.FromFile("storage.ost"))
{
    // Load the EML file
    var msg = MapiMessage.Load("message.eml", new EmlLoadOptions());

    // Add the EML message to the OST file
    var folderInfo = ost.RootFolder.GetSubFolder("Inbox");
    folderInfo.AddMessage(msg);
}

The EmlLoadOptions parameter menentukan opsi tambahan untuk memuat file EML, seperti mempertahankan format pesan yang tertanam, menghapus tanda tangan, dan lainnya.

Konversi EML ke VCF

Aspose.Email for .NET menawarkan fungsionalitas untuk mengonversi file EML ke format vCard (VCF), memungkinkan pengembang mengekstrak informasi kontak dari pesan email. Untuk tujuan ini, perpustakaan menyediakan GetAlternateViewContent metode dari MailMessage kelas yang memungkinkan pengembang mengakses tampilan alternatif dalam pesan email dan mengekstrak konten VCF yang tertanam dalam file EML untuk penggunaan lebih lanjut:

// Load the EML file
var eml = MailMessage.Load("message.eml");
// Find the alternate view with MediaType "text/vcard" (VCF)
var vcfView = eml.GetAlternateViewContent("text/vcard");
// If an VCF view is found, save it to a file
if (vcfView != null)
{
    File.WriteAllText("contact.vcf", vcfView);
}