Memfilter dan Mengekstrak Pesan MBOX
Peran Penyaringan Pesan
Saat bekerja dengan arsip MBOX besar, memuat setiap pesan ke memori dapat tidak efisien dan tidak perlu. Dalam kebanyakan skenario, pengembang hanya perlu memindai metadata dasar seperti subjek, pengirim, penerima, atau cap waktu untuk:
- Tampilkan daftar pesan dalam UI
- Terapkan filter khusus sebelum ekstraksi
- Hasilkan laporan atau ringkasan
- Indeks pesan untuk pencarian
Penyaringan menghindari beban parsing isi pesan penuh atau lampiran, membuat aplikasi lebih cepat dan lebih skalabel.
Akses Metadata Pesan
Aspose.Email menyediakan MboxMessageInfo kelas yang dirancang untuk mengakses metadata pesan dasar tanpa membaca konten MailMessage secara lengkap. Ini berfungsi sebagai objek ringkasan dan dikembalikan saat memanggil MboxStorageReader.EnumerateMessageInfo().
Properti kunci yang diekspose oleh MboxMessageInfo untuk mengambil informasi tentang pesan termasuk:
- DateTime Date - Mendapatkan tanggal pesan
- MailAddress From - Mendapatkan alamat pengirim
- string Subject - Mendapatkan subjek pesan
- MailAddressCollection Kepada - Mendapatkan koleksi alamat yang berisi penerima pesan
- MailAddressCollection CC - Mendapatkan koleksi alamat yang berisi penerima CC
- MailAddressCollection Bcc - Mendapatkan koleksi alamat yang berisi penerima BCC dari pesan
MboxStorageReader reader = MboxStorageReader.CreateReader(fileName, new MboxLoadOptions());
foreach (var mboxMessageInfo in reader.EnumerateMessageInfo())
{
Console.Writeline($"Subject: {mboxMessageInfo.Subject}");
Console.Writeline($"Date: {mboxMessageInfo.Date}");
Console.Writeline($"From: {mboxMessageInfo.From}");
Console.Writeline($"To: {mboxMessageInfo.To}");
Console.Writeline($"CC: {mboxMessageInfo.CC}");
Console.Writeline($"Bcc: {mboxMessageInfo.Bcc}");
}
Ekstrak Pesan berdasarkan EntryId
The MboxStorageReader kelas mencakup EnumerateMessageInfo() metode, yang memungkinkan Anda mengiterasi setiap pesan dalam file MBOX. Dengan menggunakan metode ini, menjadi memungkinkan mengekstrak pesan individu tanpa harus menelusuri seluruh penyimpanan berulang kali. Ini meningkatkan kinerja dan mengurangi waktu pemrosesan.
The MboxMessageInfo class menyediakan EntryId properti, yang memberikan akses ke pengidentifikasi unik untuk setiap pesan dalam file MBOX. Pengidentifikasi ini dapat disimpan dalam basis data atau digunakan sebagai referensi untuk dengan cepat menemukan dan mengekstrak pesan tertentu bila diperlukan.
The ExtractMessage(string id) metode dalam MboxStorageReader kelas memungkinkan pengembang mengekstrak pesan berdasarkan EntryId unik mereka. Dengan ExtractMessage(string id) metode, Anda dapat memanfaatkan EntryId yang disimpan untuk mengambil pesan yang bersangkutan dan melakukan operasi tambahan dengan pesan tersebut.
Contoh kode berikut menunjukkan cara mengekstrak pesan dari file MBOX menggunakan pengidentifikasi:
MboxStorageReader reader = MboxStorageReader.CreateReader("my.mbox", new MboxLoadOptions());
foreach (MboxMessageInfo msgInfo in reader.EnumerateMessageInfo())
{
MailMessage eml = reader.ExtractMessage(msgInfo.EntryId, new EmlLoadOptions());
}
Filter dan Cari Email MBOX Menggunakan MailQuery
Aspose.Email untuk .NET menyediakan kemampuan untuk memfilter atau mencari pesan di dalam arsip kotak surat berdasarkan kueri khusus. Ini memungkinkan pengembang mengambil hanya pesan yang cocok dengan kriteria tertentu, meningkatkan kinerja dan kegunaan saat bekerja dengan file arsip email besar.
Contoh kode berikut menunjukkan cara menerapkan kriteria pencarian pada file penyimpanan surat dengan API MailQuery. Dalam contoh ini, pesan dipilih jika subjeknya mencakup frasa "Project Update" dan dikirim sebelum tanggal hari ini.
using Aspose.Email.Storage.Mbox;
using Aspose.Email;
var reader = MboxStorageReader.CreateReader("input.mbox", new MboxLoadOptions());
var mqb = new MailQueryBuilder();
mqb.Subject.Contains("Project Update");
mqb.SentDate.Before(DateTime.Today);
foreach (var message in reader.EnumerateMessages(mqb.GetQuery()))
{
Console.WriteLine("Subject: " + message.Subject);
}
Konfigurasikan Opsi Muat saat Membaca Pesan dari MBOX
Fitur berikut akan memungkinkan Anda menentukan berbagai opsi terkait pemuatan dan pemrosesan pesan:
-
Properti MailStorageConverter.MboxMessageOptions - Mendapatkan atau mengatur opsi pemuatan email saat mengurai penyimpanan Mbox.
-
Metode MboxrdStorageReader.ReadNextMessage(EmlLoadOptions options) - parameter EmlLoadOptions menentukan opsi saat membaca pesan dari penyimpanan Mbox.
var reader = new MboxrdStorageReader(fileName, new MboxLoadOptions());
// Read messages preserving tnef attachments.
var eml = reader.ReadNextMessage(new EmlLoadOptions {PreserveTnefAttachments = true});
MailStorageConverter.MboxMessageOptions(new EmlLoadOptions {PreserveTnefAttachments = true});
// Convert messages from mbox to pst preserving tnef attachments.
var pst = MailStorageConverter.mboxToPst("Input.mbox", "Output.pst");