Muat dan Simpan Pesan Email

Muat Pesan Email

Muat dari EML

Bagian ini menjelaskan cara memuat file EML ke dalam objek MailMessage menggunakan EmlLoadOptions kelas. Kelas EmlLoadOptions menyediakan berbagai opsi untuk menyesuaikan cara file EML dimuat, seperti mempertahankan format pesan tertanam atau mengontrol perilaku pemuatan lampiran TNEF.

  1. Inisialisasi sebuah instance dari EmlLoadOptions.
  2. Konfigurasikan opsi pemuatan sesuai kebutuhan.
  3. Gunakan MailMessage.Load() metode untuk memuat file EML dengan opsi yang ditentukan.
using Aspose.Email;

// Initialize EmlLoadOptions
var loadOptions = new EmlLoadOptions
{
    // Configure load options
    PreferredTextEncoding = Encoding.UTF8, // Sets preferred encoding for the message
    PreserveEmbeddedMessageFormat = true, // Preserve format of embedded messages
    PreserveTnefAttachments = true, // Control TNEF attachment loading
    RemoveSignature = false // Do not remove the signature
};

// Load the EML file
var eml = MailMessage.Load("file.eml", loadOptions);

Properti dari EmlLoadOptions

  • PreferredTextEncoding: Menetapkan enkoding yang disukai untuk subjek dan isi pesan. Nilai default adalah null.
  • PreserveEmbeddedMessageFormat: Menunjukkan apakah harus mempertahankan format pesan tertanam selama pemuatan. Nilai default adalah false.
  • PreserveTnefAttachments: Mengontrol perilaku pemuatan lampiran TNEF. Nilai default adalah false.
  • RemoveSignature: Menentukan apakah tanda tangan harus dihapus saat memuat. Nilai default adalah false.

Pertahankan Format Pesan Tertanam

Muat Pesan Dengan Tanda Tangan/Tanpa Tanda Tangan

Pelestarian tanda tangan didukung secara default saat memuat file EML. Untuk menghapus tanda tangan, Anda dapat mengatur LoadOptions.RemoveSignature properti menjadi true.

Contoh kode di bawah ini menunjukkan cara menghapus tanda tangan saat memuat pesan:

var msg = MailMessage.Load(fileName, new EmlLoadOptions() { RemoveSignature = true});

Muat dari EMLX

Bagian berikut membahas pemuatan file EMLX dengan EmlxLoadOptions kelas. Kelas ini menyediakan opsi serupa dengan EmlLoadOptions, menawarkan kontrol atas encoding, penghapusan tanda tangan, dan lainnya.

  1. Instansiasi EmlxLoadOptions.
  2. Konfigurasikan properti sesuai kebutuhan.
  3. Gunakan MailMessage.Load() metode untuk memuat file EMLX.
using Aspose.Email;

// Instantiate EmlxLoadOptions
var loadOptions = new EmlxLoadOptions
{
    // Configure load options
    PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
    PreserveEmbeddedMessageFormat = true, // Preserve embedded message formats
    RemoveSignature = true // Remove signatures during loading
};

// Load the EMLX file
var emlx = MailMessage.Load("file.emlx", loadOptions);

Properti EmlxLoadOptions

  • PreferredTextEncoding: Menetapkan enkoding yang disukai untuk subjek dan isi pesan. Nilai default adalah null.
  • PreserveEmbeddedMessageFormat: Menunjukkan apakah harus mempertahankan format pesan tertanam. Nilai default adalah false.
  • RemoveSignature: Menentukan apakah menghapus tanda tangan selama pemuatan. Nilai default adalah false.

Muat dari HTML

Pelajari cara memuat file HTML ke dalam MailMessage menggunakan HtmlLoadOptions kelas. Kelas ini dirancang khusus untuk menangani konten HTML dengan opsi mengelola sumber daya dan menambahkan tampilan teks biasa.

  1. Inisialisasi sebuah instance dari HtmlLoadOptions.
  2. Konfigurasikan properti yang diperlukan.
  3. Gunakan MailMessage.Load() metode untuk memuat file HTML dengan opsi yang ditentukan.
using Aspose.Email;

// Initialize HtmlLoadOptions
var loadOptions = new HtmlLoadOptions
{
    // Configure load options
    PathToResources = "resources/", // Path to directory containing resource files
    PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
    ShouldAddPlainTextView = true // Add plain text view of the body
};

// Load the HTML file
var html = MailMessage.Load("file.html", loadOptions);

Properti HtmlLoadOptions

  • PathToResources: Menentukan jalur ke direktori yang berisi file sumber daya (gambar, misalnya).
  • PreferredTextEncoding: Mengatur encoding yang diinginkan untuk subjek dan isi pesan. Default adalah null.
  • PreserveEmbeddedMessageFormat: Menentukan apakah format pesan yang disematkan harus dipertahankan. Default adalah false.
  • ShouldAddPlainTextView: Menentukan apakah menambahkan tampilan teks biasa dari isi pesan. Default adalah false.

Muat dari MHTML

Bagian ini menjelaskan cara memuat file MHTML menggunakan MhtmlLoadOptions kelas. Kelas MhtmlLoadOptions menawarkan opsi untuk mengelola encoding, mempertahankan format pesan yang disematkan, dan menangani lampiran TNEF.

  1. Buat sebuah instance dari MhtmlLoadOptions.
  2. Konfigurasikan properti yang diinginkan.
  3. Muat file MHTML menggunakan MailMessage.Load() metode.
using Aspose.Email;

// Create MhtmlLoadOptions
var loadOptions = new MhtmlLoadOptions
{
    // Set load options
    PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
    PreserveEmbeddedMessageFormat = true, // Preserve format of embedded messages
    PreserveTnefAttachments = true, // Handle TNEF attachments
    RemoveSignature = false // Keep the signature
};

// Load the MHTML file
var mhtml = MailMessage.Load("file.mht", loadOptions);

Properti MhtmlLoadOptions

  • MessageFormat: Menyatakan format pesan email, yang dapat berupa EML, MSG, atau MHTML. Default adalah EML.
  • PreferredTextEncoding: Menetapkan enkoding yang disukai untuk subjek dan isi pesan. Nilai default adalah null.
  • PreserveEmbeddedMessageFormat: Menentukan apakah format pesan yang disematkan harus dipertahankan. Default adalah false.
  • PreserveTnefAttachments: Mengontrol perilaku pemuatan lampiran TNEF. Nilai default adalah false.
  • RemoveSignature: Menentukan apakah menghapus tanda tangan selama pemuatan. Nilai default adalah false.

Muat dari MSG

Bagian ini menjelaskan cara memuat file MSG ke dalam objek MailMessage menggunakan MsgLoadOptions kelas. Kelas MsgLoadOptions menawarkan berbagai properti untuk menangani cara file MSG dimuat, termasuk opsi untuk mempertahankan konten RTF atau mengelola lampiran TNEF.

  1. Buat sebuah instance dari MsgLoadOptions.
  2. Atur properti yang diinginkan untuk menyesuaikan pemuatan.
  3. Muat file MSG menggunakan MailMessage.Load() metode.
using Aspose.Email;

// Create MsgLoadOptions
var loadOptions = new MsgLoadOptions
{
    // Set load options
    KeepOriginalEmailAddresses = true, // Preserve original email addresses
    PreferredTextEncoding = Encoding.UTF8, // Set preferred encoding
    PreserveRtfContent = true, // Keep RTF content in the message
    PreserveTnefAttachments = true, // Handle TNEF attachments
    RemoveSignature = false, // Keep the signature
    Timeout = 5000 // Set timeout to 5 seconds
};

// Load the MSG file
var msg = MailMessage.Load("file.msg", loadOptions);

Properti MsgLoadOptions

  • KeepOriginalEmailAddresses: Menunjukkan apakah harus mempertahankan alamat email asli. Default adalah false.
  • PreferredTextEncoding: Menentukan encoding yang diinginkan untuk subjek dan isi pesan. Default adalah null.
  • PreserveEmbeddedMessageFormat: Menentukan apakah format pesan yang disematkan harus dipertahankan. Default adalah false.
  • PreserveRtfContent: Menentukan apakah konten tubuh RTF harus disimpan di dalam MailMessage. Default adalah false.
  • PreserveTnefAttachments: Mengelola perilaku pemuatan lampiran TNEF. Default adalah false.
  • RemoveSignature: Menentukan apakah tanda tangan harus dihapus selama pemuatan. Default adalah false.
  • Timeout: Membatasi waktu pemformatan dalam milidetik selama konversi. Default adalah 3000 ms.

Muat dari TNEF

Pelajari cara memuat file TNEF eml dengan TnefLoadOptions kelas. Kelas ini menyediakan opsi untuk mengelola enkoding dan menghapus tanda tangan selama proses pemuatan.

  1. Instansiasikan TnefLoadOptions.
  2. Konfigurasikan properti sesuai kebutuhan.
  3. Gunakan MailMessage.Load() metode untuk memuat file TNEF.
using Aspose.Email;

// Instantiate TnefLoadOptions
var loadOptions = new TnefLoadOptions
{
    // Configure load options
    PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
    PreserveEmbeddedMessageFormat = true, // Preserve embedded message formats
    RemoveSignature = true // Remove signatures during loading
};

// Load the TNEF file
var tnef = MailMessage.Load("file.eml", loadOptions);

Properti dari TnefLoadOptions

  • MessageFormat: Mewakili format pesan email, seperti EML, MSG, atau MHTML. Nilai default adalah EML.
  • PreferredTextEncoding: Menetapkan enkoding yang disukai untuk subjek dan isi pesan. Nilai default adalah null.
  • PreserveEmbeddedMessageFormat: Menunjukkan apakah harus mempertahankan format pesan tertanam. Nilai default adalah false.
  • RemoveSignature: Menentukan apakah menghapus tanda tangan selama pemuatan. Nilai default adalah false.

Mendeteksi Format File

API Aspose.Email menyediakan kemampuan untuk mendeteksi format file dari file pesan yang diberikan. The DetectFileFormat metode dari FileFormatUtil kelas dapat digunakan untuk mencapai ini. Kelas dan metode berikut dapat digunakan untuk mendeteksi format file yang dimuat.

Potongan kode berikut menunjukkan cara mendeteksi format file.

Simpan dan Konversi Pesan

Aspose.Email memudahkan konversi jenis pesan apa pun ke format lain. Untuk mendemonstrasikan fitur ini, kode dalam artikel ini memuat tiga jenis pesan dari disk dan menyimpannya kembali dalam format lain. Kelas dasar SaveOptions dan kelas EmlSaveOptions, MsgSaveOptions, MhtSaveOptions, HtmlSaveOptions untuk pengaturan tambahan saat menyimpan MailMessage dapat digunakan untuk menyimpan pesan ke format lain. Artikel ini menunjukkan cara menggunakan kelas ini untuk menyimpan contoh email sebagai:

  • format EML.
  • Outlook MSG.
  • format MHTML.
  • format HTML.

Simpan ke EML

Potongan kode berikut menunjukkan cara memuat pesan EML dan menyimpannya ke disk dalam format yang sama.

Pertahankan Batas Asli

Potongan kode berikut menunjukkan cara memuat EML dan menyimpannya sebagai EML sambil mempertahankan batas asli.

Pertahankan Lampiran TNEF

Potongan kode berikut menunjukkan cara menyimpan sebagai EML sambil mempertahankan lampiran TNEF.

Simpan EML ke MSG

Potongan kode berikut menunjukkan cara memuat pesan EML dan mengkonversinya ke MSG menggunakan opsi yang tepat dari SaveOptions.

Pertahankan Tanggal

The MsgSaveOptions kelas memungkinkan Anda menyimpan pesan sumber sebagai file Outlook Message (MSG) dengan mempertahankan tanggal. Potongan kode berikut menunjukkan cara menyimpan sebagai MSG dengan Tanggal yang Dipertahankan.

Simpan EML ke MHTML

Berbagai opsi MHTML dapat digunakan untuk memperoleh hasil yang diinginkan. Potongan kode berikut menunjukkan cara memuat pesan EML ke dalam MailMessage dan mengonversinya ke MHTML dengan tanggal pesan dalam sistem UTC.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET

// Set options for MHTML output
MhtSaveOptions saveOptions = SaveOptions.DefaultMhtml;
saveOptions.PreserveOriginalDate = false; // save a message date as UTC date

// Initialize and load an existing EML file
using (MailMessage mailMessage = MailMessage.Load(folderPath + "Message.eml"))
{
    mailMessage.Save(folderPath + "Message_out.mhtml", saveOptions);
}

Opsi Konversi

The MhtSaveOptions kelas menyediakan opsi tambahan untuk menyimpan pesan email ke format MHTML. Enumerator MhtFormatOptions memungkinkan untuk menulis informasi email tambahan ke MHTML output. Bidang tambahan berikut dapat ditulis:

  • WriteHeader – menulis header email ke file output.
  • WriteOutlineAttachments – menulis lampiran outline ke file output.
  • WriteCompleteEmailAddress – menulis alamat email lengkap ke file output.
  • NoEncodeCharacters – tidak boleh menggunakan encoding transfer karakter.
  • HideExtraPrintHeader – menyembunyikan header cetak tambahan dari bagian atas file output.
  • WriteCompleteToEmailAddress – menulis alamat email penerima lengkap ke file output.
  • WriteCompleteFromEmailAddress – menulis alamat email pengirim lengkap ke file output.
  • WriteCompleteCcEmailAddress – menulis alamat email lengkap dari penerima carbon-copied ke file output.
  • WriteCompleteBccEmailAddress – menulis alamat email lengkap dari penerima blind carbon-copied ke file output.
  • RenderCalendarEvent – menulis teks dari acara kalender ke file output.
  • SkipByteOrderMarkInBody – menulis byte Byte Order Mark (BOM) ke file output.
  • RenderVCardInfo – menulis teks dari VCard AlternativeView ke file output.
  • DisplayAsOutlook – menampilkan header From.
  • RenderTaskFields – menulis bidang Task tertentu ke file output.
  • None – Tidak ada pengaturan yang ditentukan.

Potongan kode berikut menunjukkan cara mengonversi file EML ke MHTML dengan pengaturan opsional.

Render Acara Kalender

The MhtFormatOptions.RenderCalendarEvent Merender acara Kalender ke output MHTML. Potongan kode berikut menunjukkan cara merender acara kalender saat mengonversi ke MHTML.

Mengekspor Email ke MHT tanpa Gambar Inline

Mengekspor Email ke MHT dengan Zona Waktu yang Disesuaikan

MailMessage class menyediakan TimeZoneOffset properti untuk mengatur Zona Waktu khusus saat mengekspor ke MHT. Potongan kode berikut menunjukkan cara mengekspor email ke MHT dengan Zona Waktu yang disesuaikan.

Penyesuaian Font

Simpan EML ke HTML

The HtmlSaveOptions kelas memungkinkan Anda mengekspor isi pesan ke HTML. Potongan kode berikut menunjukkan cara menyimpan pesan sebagai HTML.

Simpan tanpa Sumber Daya Tersemat

Simpan EML ke OFT

Potongan kode berikut menunjukkan cara menyimpan pesan sebagai berkas templat Outlook (.oft).

Konversi EML ke MSG (MailMessage ke MapiMessage)

Untuk mengonversi sebuah MailMessage objek yang dimuat dari file EML ke sebuah MapiMessage objek, gunakan MapiConversionOptions class. Konversi ini sering diperlukan karena dua objek ini melayani tujuan yang berbeda dan memenuhi kebutuhan yang berbeda dalam pemrosesan email. MapiMessage dirancang khusus untuk kompatibilitas dengan Microsoft Outlook dan Exchange Server, karena mematuhi format Messaging Application Programming Interface (MAPI). Ini memastikan bahwa email yang dikonversi menjadi file MSG sepenuhnya kompatibel dengan produk Microsoft, memungkinkan mereka dibuka, dimodifikasi, dan dikelola langsung di dalam Outlook.

Konversi ini juga diperlukan ketika email harus diarsipkan, diindeks, atau diproses oleh penyimpanan yang memerlukan format MAPI, penyimpanan PST/OST, OLM, misalnya. The MapiConversionOptions class memungkinkan Anda menentukan opsi tambahan, seperti mempertahankan format pesan asli, menjaga tanggal asli, dan mengompres tubuh RTF selama konversi. Contoh kode berikut menunjukkan cara memuat email dari file berformat .eml dan mengonversinya menjadi format Outlook .msg yang memungkinkan kustomisasi tetapi memastikan bahwa beberapa karakteristik email asli tetap dipertahankan selama konversi.

  1. Buat sebuah instance dari MapiConversionOptions dan mengatur propertinya.
  2. Konversi MailMessage objek ke sebuah MapiMessage objek menggunakan opsi konversi yang dikonfigurasi.
MailMessage eml = MailMessage.Load("email.eml", new EmlLoadOptions());

// Create an instance of MapiConversionOptions
var conversionOptions = new MapiConversionOptions
{
    // Configure MapiConversionOptions
    Format = OutlookMessageFormat.Unicode, // Use Unicode format for MSG
    PreserveEmbeddedMessageFormat = true, // Preserve the format of embedded messages
    PreserveOriginalAddresses = true, // Keep original email addresses
    PreserveOriginalDates = true, // Preserve original dates
    PreserveEmptyDates = false, // Generate new dates if original are empty
    RemoveSignature = false, // Do not remove the signature
    UseBodyCompression = true, // Enable RTF body compression
    ForcedRtfBodyForAppointment = false // Disable forced RTF body for appointments
};

// Convert MailMessage to MapiMessage
MapiMessage msg = MapiMessage.FromMailMessage(eml, conversionOptions);

Properti yang Tersedia dari MapiConversionOptions

  • ASCIIFormat: Mengembalikan MapiConversionOptions dikonfigurasi dengan OutlookMessageFormat sebagai ASCII, dengan PreserveSignature diatur ke false dan UseBodyCompression diatur ke false. Opsi ini berguna ketika Anda memerlukan konversi format ASCII biasa.

  • UnicodeFormat: Mengembalikan MapiConversionOptions dengan OutlookMessageFormat diatur ke Unicode, dan kedua PreserveSignature dan UseBodyCompression diatur ke false. Gunakan opsi ini untuk dukungan karakter yang lebih lengkap dalam file MSG.

  • ForcedRtfBodyForAppointment: Ketika diatur true, memaksa penggunaan tubuh RTF untuk janji kalender. Ini berguna jika Anda ingin memastikan kompatibilitas dengan klien email tertentu. Default adalah true.

  • Format: Menentukan format output untuk file MSG. Bisa diatur ke salah satu OutlookMessageFormat.ASCII atau OutlookMessageFormat.Unicode, mengontrol apakah MSG yang dikonversi harus menggunakan encoding ASCII atau Unicode.

  • PreserveEmbeddedMessageFormat: Menentukan apakah mempertahankan format EML asli dari pesan yang tersemat selama konversi ke MapiMessage. Mengatur ini ke true memastikan email tersemat mempertahankan struktur aslinya. Default adalah false.

  • PreserveEmptyDates: Ketika diatur true, mempertahankan tanggal penyimpanan dan modifikasi asli dari EML. Jika tidak, tanggal baru akan dibuat jika yang asli kosong.

  • PreserveOriginalAddresses: Jika diatur true, menjaga alamat email asli tanpa validasi. Ini berguna ketika menangani alamat email yang mungkin tidak sesuai standar ketat namun perlu dipertahankan apa adanya. Default adalah false.

  • PreserveOriginalDates: Memastikan tanggal pengiriman dan penerimaan asli dipertahankan selama proses konversi. Mengatur ini ke true mempertahankan tanggal tersebut untuk akurasi historis yang lebih baik.

  • RemoveSignature: Mengontrol apakah tanda tangan digital, jika ada, akan dihapus dari pesan selama konversi. Default adalah false, artinya tanda tangan akan dipertahankan kecuali dihapus secara eksplisit.

  • UseBodyCompression: Mengaktifkan kompresi tubuh RTF bila diatur true. Ini dapat membantu mengurangi ukuran file MSG, terutama saat menangani pesan besar dengan format kaya.