Programmation avec Thunderbird

Lecture des messages

Mozilla Thunderbird est un client de messagerie open source, multi‑plateforme, développé par la Fondation Mozilla. Il stocke les e‑mails dans sa propre structure de fichiers, gérant les index des messages et les sous‑dossiers via des formats de fichiers propriétaires. Aspose.Email peut travailler avec les structures de stockage de courrier de Thunderbird. La classe MboxrdStorageReader permet aux développeurs de lire les messages depuis le fichier de stockage de courrier de Mozilla Thunderbird. Cet article montre comment lire les messages depuis le stockage de messagerie Thunderbird :

  1. Ouvrez le fichier de stockage de Thunderbird
  2. Créez une instance de la classe MboxrdStorageReader et transmettez le flux ci-dessus au constructeur.
  3. Appelez read_next_message() pour obtenir le premier message.
  4. Utilisez la même read_next_message() dans une boucle while pour lire tous les messages.
  5. Fermez tous les flux.

L’extrait de code suivant montre comment lire tous les messages depuis le stockage de courrier de Thunderbird.

Récupération des propriétés du message

Afin de lire et récupérer les informations d’un fichier Mbox, Aspose.Email fournit le MboxStorageReader classe pour créer un objet lecteur pour le fichier Mbox et le MboxLoadOptions classe pour charger le fichier. Les propriétés suivantes du MboxMessageInfo La classe peut être utilisée pour accéder et afficher les détails spécifiques du message :

  • ‘date’ - Obtient la date du message.
  • ‘from_address’ - Obtient l’adresse d’expéditeur.
  • ‘subject’ - Obtient l’objet du message.
  • ’to’ - Obtient la collection d’adresses contenant les destinataires du message.
  • ‘cc’ - Obtient la collection d’adresses contenant les destinataires CC.
  • ‘bcc’ - Obtient la collection d’adresses contenant les destinataires CCI du message.

L’exemple de code suivant montre l’utilisation de ces propriétés pour lire et extraire les informations des messages d’un fichier Mbox :

import aspose.email as ae

reader = ae.storage.mbox.MboxStorageReader.create_reader(file_name, ae.storage.mbox.MboxLoadOptions())

for mbox_message_info in reader.enumerate_message_info():
    print(f"Subject: {mbox_message_info.subject}")
    print(f"Date: {mbox_message_info.date}")
    print(f"From: {mbox_message_info.from_address}")
    print(f"To: {mbox_message_info.to}")
    print(f"CC: {mbox_message_info.cc}")
    print(f"Bcc: {mbox_message_info.bcc}")

Extraire des messages d’un MBOX par identifiants

Afin de lire les messages d’un fichier MBOX, Aspose.Email fournit la méthode ‘create_reader()’ de la MboxStorageReader classe pour créer un objet lecteur pour le fichier. Elle prend le nom du fichier et MboxLoadOptions en tant qu’arguments, permettant à l’utilisateur de charger le fichier MBOX avec des options spécifiques si nécessaire.

Afin d’extraire les messages, les méthodes et propriétés suivantes sont utilisées :

  • méthode ’enumerate_message_info()’ de la MboxStorageReader classe - Itère à travers chaque message du fichier MBOX.
  • méthode ’extract_message()’ de la MboxStorageReader classe - Extrait chaque message par son ID d’entrée.
  • propriété ’entry_id’ de la MboxMessageInfo classe - Obtient l’identifiant d’entrée.

Enfin, le message est converti au format EML en utilisant EmlLoadOptions.

L’exemple de code ci‑dessus montre l’utilisation de ces fonctionnalités pour lire et extraire les messages d’un fichier MBOX :

import aspose.email as ae

reader = ae.storage.mbox.MboxStorageReader.create_reader("my.mbox", ae.storage.mbox.MboxLoadOptions())

for mbox_message_info in reader.enumerate_message_info():
    eml = reader.extract_message(mbox_message_info.entry_id, ae.EmlLoadOptions())

Configuration des options de chargement lors de la lecture des messages depuis MBOX

Avec Aspose.Email EmlLoadOptions classe, vous pouvez spécifier des options supplémentaires lors du chargement de MailMessage depuis le format Eml. Par exemple, vous pouvez activer une option pour conserver les pièces jointes TNEF lors du chargement d’un fichier EML avec la propriété ‘preserve_tnef_attachments’ de la EmlLoadOptions classe.

Vous pouvez lire le message e‑mail suivant du fichier mbox en utilisant les options de chargement spécifiées avec la méthode ‘read_next_message’ de la MboxStorageReader classe et convertit le fichier au format PST avec la méthode ‘mbox_to_pst’ de la MailStorageConverter classe .

L’exemple de code ci‑dessus démontre l’utilisation de ces méthodes et propriétés pour travailler avec les fichiers de stockage d’e‑mail, incluant la lecture des messages au format mbox, la conservation des pièces jointes TNEF et la conversion des messages du format mbox au format pst :

import aspose.email as ae

reader = ae.storage.mbox.MboxrdStorageReader(fileName, ae.storage.mbox.MboxLoadOptions())
# Read messages preserving tnef attachments.
load_options = ae.EmlLoadOptions()
load_options.preserve_tnef_attachments = True
eml = reader.read_next_message(load_options)
ae.storage.MailStorageConverter.MboxMessageOptions(load_options)
# Convert messages from mbox to pst preserving tnef attachments.
pst = ae.storage.MailStorageConverter.mbox_to_pst("Input.mbox", "Output.pst")

Définir l’encodage de texte préféré lors du chargement de fichiers Mbox pour la lecture

Vous pouvez spécifier l’encodage de texte à utiliser lors du chargement d’un fichier MBOX. La propriété ‘preferred_text_encoding’ disponible pour le MboxLoadOptions la classe définit une option supplémentaire et garantit qu’un message avec le contenu encodé sera correctement lu et traité.

Le fragment de code suivant montre comment utiliser cette fonctionnalité dans un projet :

import aspose.email as ae

load_options = ae.storage.mbox.MboxLoadOptions()
load_options.preferred_text_encoding = 'utf-8'
reader = ae.storage.mbox.MboxrdStorageReader("sample.mbox", load_options)
message = reader.read_next_message()

Conversion de MBOX en PST en conservant ou en supprimant une signature

Pour supprimer la signature d’un fichier pendant le processus de conversion, définissez la propriété MboxToPstConversionOptions.remove_signature sur true.

L’exemple de code suivant montre comment utiliser cette propriété :

import aspose.email as ae

personalStorage = ae.storage.pst.PersonalStorage.create("target.pst", ae.storage.pst.FileFormatVersion.UNICODE)
conversion_options = ae.storage.MboxToPstConversionOptions()
conversion_options.remove_signature = True
ae.storage.MailStorageConverter.mbox_to_pst( ae.storage.mbox.MboxrdStorageReader("source.mbox", ae.storage.mbox.MboxLoadOptions()), personalStorage, "Inbox", conversion_options)

Écriture de messages

La classe MboxrdStorageWriter fournit la possibilité d’écrire de nouveaux messages dans le fichier de stockage de courrier de Thunderbird. Pour écrire des messages :

  1. Ouvrez le fichier de stockage de Thunderbird avec FileStream.
  2. Créez une instance de la classe MboxrdStorageWriter et transmettez le flux ci‑dessus au constructeur.
  3. Préparez un nouveau message en utilisant la classe MailMessage.
  4. Appelez la méthode write_message() et transmettez l’instance MailMessage ci‑dessus pour ajouter le message au stockage de Thunderbird.
  5. Fermez tous les flux.

L’extrait de code suivant vous montre comment écrire des messages dans le stockage de courrier de Thunderbird.

Obtenir le nombre total de messages d’un fichier MBox

La classe MboxrdStorageReader offre la capacité de lire le nombre d’éléments disponibles dans un fichier MBox. Cela peut être utilisé pour développer des applications affichant la progression de l’activité lors du traitement d’un tel fichier.

Obtenir la taille du message actuel