Filtrage et extraction des messages MBOX
Le rôle du filtrage des messages
Lorsqu’on travaille avec de grandes archives MBOX, charger chaque message en mémoire peut être inefficace et inutile. Dans la plupart des cas, les développeurs ont simplement besoin de parcourir les métadonnées de base comme le sujet, l’expéditeur, le destinataire ou l’horodatage pour :
- Afficher une liste de messages dans une interface utilisateur
- Appliquer des filtres personnalisés avant l’extraction
- Générer des rapports ou résumés
- Indexer les messages pour la recherche
Le filtrage évite le sur‑coût de l’analyse des corps complets des messages ou des pièces jointes, rendant les applications plus rapides et plus évolutives.
Accéder aux métadonnées du message
Aspose.Email fournit le MboxMessageInfo classe conçue pour accéder aux métadonnées de base d’un message sans lire le contenu complet du MailMessage. Elle agit comme un objet récapitulatif et est renvoyée lors de l’appel de MboxStorageReader.EnumerateMessageInfo().
Propriétés clés exposées par MboxMessageInfo pour récupérer des informations sur un message inclure :
- DateTime Date - Obtient la date du message
- MailAddress From - Obtient l’adresse d’expéditeur
- string Subject - Obtient l’objet du message
- MailAddressCollection À - Obtient la collection d’adresses contenant les destinataires du message
- MailAddressCollection CC - Obtient la collection d’adresses contenant les destinataires CC
- MailAddressCollection Bcc - Obtient la collection d’adresses contenant les destinataires CCI du message
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}");
}
Extraire les messages par EntryId
Le MboxStorageReader la classe inclut le EnumerateMessageInfo() méthode, qui vous permet d’itérer sur chaque message d’un fichier MBOX. En utilisant cette méthode, il devient possible d’extraire des messages individuels sans devoir parcourir toute la sauvegarde à plusieurs reprises. Cela améliore les performances et réduit le temps de traitement.
Le MboxMessageInfo classe fournit le EntryId propriété, qui fournit l’accès aux identifiants uniques de chaque message dans le fichier MBOX. Cet identifiant peut être stocké dans une base de données ou utilisé comme référence pour trouver et extraire rapidement des messages spécifiques lorsque nécessaire.
Le ExtractMessage(string id) méthode dans le MboxStorageReader la classe permet aux développeurs d’extraire des messages basés sur leur EntryId unique. Avec le ExtractMessage(string id) méthode, vous pouvez exploiter l’EntryId stocké pour récupérer le message correspondant et effectuer des opérations supplémentaires avec celui‑ci.
L’exemple de code suivant montre comment extraire des messages d’un fichier MBOX à l’aide d’identifiants :
MboxStorageReader reader = MboxStorageReader.CreateReader("my.mbox", new MboxLoadOptions());
foreach (MboxMessageInfo msgInfo in reader.EnumerateMessageInfo())
{
MailMessage eml = reader.ExtractMessage(msgInfo.EntryId, new EmlLoadOptions());
}
Filtrer et rechercher les e‑mails MBOX avec MailQuery
Aspose.Email pour .NET offre la capacité de filtrer ou de rechercher des messages dans les archives de boîtes aux lettres selon des requêtes personnalisées. Cela permet aux développeurs de récupérer uniquement les messages correspondant à des critères spécifiques, améliorant les performances et la convivialité lors du traitement de gros fichiers d’archives de courriels.
L’exemple de code suivant montre comment appliquer des critères de recherche à un fichier de stockage de courriels avec l’API MailQuery. Dans cet exemple, les messages sont sélectionnés si leur sujet contient la phrase "Project Update" et qu’ils ont été envoyés avant la date d’aujourd’hui.
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);
}
Configurer les options de chargement lors de la lecture des messages depuis MBOX
Les fonctionnalités suivantes vous permettront de spécifier diverses options liées au chargement et au traitement des messages :
-
Propriété MailStorageConverter.MboxMessageOptions – Obtient ou définit les options de chargement des e‑mails lors de l’analyse d’un stockage Mbox.
-
Méthode MboxrdStorageReader.ReadNextMessage(EmlLoadOptions options) – le paramètre EmlLoadOptions spécifie les options lors de la lecture d’un message depuis le stockage 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");