MBOX Mesajlarını Filtreleme ve Çıkarma
Mesaj Filtrelemenin Rolü
Büyük MBOX arşivleriyle çalışırken, her mesajı belleğe yüklemek verimsiz ve gereksiz olabilir. Çoğu senaryoda, geliştiricilerin yalnızca konu, gönderen, alıcı veya zaman damgası gibi temel meta verileri taramaları yeterlidir:
- Bir UI’da mesaj listesini göster
- Çıktı almadan önce özel filtreler uygula
- Raporlar veya özetler oluştur
- Arama için mesajları indeksle
Filtreleme, tam mesaj gövdeleri veya eklerin ayrıştırılmasından kaynaklanan yükü önler, uygulamaları daha hızlı ve ölçeklenebilir hâle getirir.
Mesaj Meta Verilerine Eriş
Aspose.Email şunları sağlar MboxMessageInfo tam MailMessage içeriğini okumadan temel mesaj meta verilerine erişmek için tasarlanmış sınıf. Bir özet nesne olarak davranır ve şu yöntem çağrıldığında döndürülür MboxStorageReader.EnumerateMessageInfo().
Tarafından sunulan ana özellikler MboxMessageInfo bir mesaj hakkında bilgi almak için şunları dahil edin:
- DateTime Date - Mesaj tarihini alır
- MailAddress From - Gönderen adresini alır
- string Subject - Mesaj konusunu alır
- MailAddressCollection To - Mesaj alıcılarını içeren adres koleksiyonunu alır
- MailAddressCollection CC - CC alıcılarını içeren adres koleksiyonunu alır
- MailAddressCollection Bcc - Mesajın BCC alıcılarını içeren adres koleksiyonunu alır
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}");
}
EntryId ile Mesajları Çıkar
Bu MboxStorageReader sınıf şunları içerir: EnumerateMessageInfo() yöntem, bir MBOX dosyasındaki her mesajı yinelemenizi sağlar. Bu yöntemi kullanarak, tüm depolamayı tekrar tekrar dolaşmaya gerek kalmadan bireysel mesajları çıkarmak mümkün olur. Bu, performansı artırır ve işlem süresini azaltır.
Bu MboxMessageInfo class, şunları sağlar EntryId özellik, MBOX dosyasındaki her mesaj için benzersiz tanımlayıcılara erişim sağlar. Bu tanımlayıcı bir veritabanında saklanabilir veya gerektiğinde belirli mesajları hızlıca bulup çıkarmak için bir referans olarak kullanılabilir.
Bu ExtractMessage(string id) yöntem, MboxStorageReader sınıf, geliştiricilerin benzersiz EntryId’lerine göre mesajları çıkarmasını sağlar. Bununla birlikte ExtractMessage(string id) yöntemi, depolanan EntryId’yi kullanarak ilgili mesajı alabilir ve onunla ek işlemler yapabilirsiniz.
Aşağıdaki kod örneği, bir MBOX dosyasından mesajları tanımlayıcılar kullanarak nasıl çıkaracağınızı gösterir:
MboxStorageReader reader = MboxStorageReader.CreateReader("my.mbox", new MboxLoadOptions());
foreach (MboxMessageInfo msgInfo in reader.EnumerateMessageInfo())
{
MailMessage eml = reader.ExtractMessage(msgInfo.EntryId, new EmlLoadOptions());
}
MailQuery Kullanarak MBOX E-postalarını Filtrele ve Ara
Aspose.Email for .NET, posta kutusu arşivleri içinde özelleştirilmiş sorgulara dayalı olarak mesajları filtreleme veya arama yeteneği sunar. Bu, geliştiricilerin yalnızca belirli kriterlere uyan mesajları almasını sağlayarak büyük e-posta arşiv dosyalarıyla çalışırken performans ve kullanılabilirliği artırır.
Aşağıdaki kod örneği, MailQuery API ile bir posta depolama dosyasına arama kriterleri uygulamayı gösterir. Bu örnekte, konusu "Project Update" ifadesini içeren ve bugün tarihinden önce gönderilen mesajlar seçilir.
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);
}
MBOX’tan Mesaj Okurken Yükleme Seçeneklerini Yapılandırma
Aşağıdaki özellikler, mesajların yüklenmesi ve işlenmesiyle ilgili çeşitli seçenekleri belirlemenizi sağlar:
-
MailStorageConverter.MboxMessageOptions özelliği - Mbox depolaması ayrıştırılırken e-posta yükleme seçeneklerini alır veya ayarlar.
-
MboxrdStorageReader.ReadNextMessage(EmlLoadOptions options) yöntemi - EmlLoadOptions parametresi, Mbox depolamasından mesaj okurken seçenekleri belirler.
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");