Sauvegarde et restauration des messages IMAP en Python
Aspose.Email pour Python propose les méthodes du ImapClient classe pour gérer les messages électroniques via le protocole IMAP :
- méthode ‘backup’
- méthode ‘restore’
Cet article montre comment utiliser le ImapClient classe et ses méthodes pour sauvegarder et restaurer les messages électroniques vers et depuis un fichier PST. Elle couvre également comment améliorer les performances pour les grandes boîtes aux lettres en utilisant le mode multi‑connection.
Sauvegarder les messages IMAP
Pour créer une sauvegarde des messages électroniques depuis un serveur IMAP, utilisez le backup méthode du ImapClient classe. L’exemple de code suivant montre comment sauvegarder le dossier Inbox dans un fichier .pst :
import aspose.email as ae
# Create an instance of the ImapClient class
imap_client = ae.clients.imap.ImapClient()
# Specify host, username, password, and set port for your client
imap_client.host = "imap.gmail.com"
imap_client.username = username
imap_client.password = password
imap_client.port = 993
imap_client.security_options = ae.clients.SecurityOptions.AUTO
# Get mailbox info
mailbox_info = imap_client.mailbox_info
# Get folder info for the Inbox folder
inbox_info = imap_client.get_folder_info(mailbox_info.inbox.name)
# Create an ImapFolderInfoCollection and add the Inbox folder info
infos = ae.clients.imap.ImapFolderInfoCollection()
infos.add(inbox_info)
# Specify the path to the directory
data_dir = "path/to/your/data/directory"
# Perform the backup operation
settings = ae.clients.imap.BackupSettings
settings.execute_recursively = True
imap_client.backup(infos, data_dir + "\\ImapBackup.pst", settings)
Restaurer les messages IMAP
Pour restaurer des messages d’un fichier .pst vers un serveur IMAP, utilisez le restore méthode du ImapClient classe:
import aspose.email as ae
# Create an instance of the ImapClient class
imap_client = ae.clients.imap.ImapClient()
# Specify host, username, password, and set port for your client
imap_client.host = "imap.gmail.com"
imap_client.username = username
imap_client.password = password
imap_client.port = 993
imap_client.security_options = ae.clients.SecurityOptions.Auto
# Create RestoreSettings with Recursive set to true
settings = ae.clients.imap.RestoreSettings()
settings.recursive = True
# Specify the path to the directory
data_dir = "path/to/your/data/directory"
# Load the PST file
pst = ae.storage.pst.PersonalStorage.from_file(data_dir + "\\ImapBackup.pst")
# Perform the restore operation
imap_client.restore(pst, settings)
Améliorer les performances avec le mode Multi-Connection
Pour les tâches impliquant une grande quantité de données ou de nombreux e‑mails, Aspose.Email propose la propriété ‘use_multi_connection’ de la ImapClient classe pour optimiser les performances des opérations en permettant au client d’ouvrir plusieurs connexions au serveur de messagerie simultanément. Lorsque MultiConnectionMode est activé, le client IMAP peut exécuter diverses tâches (comme récupérer des e‑mails, synchroniser des dossiers et sauvegarder des données) en parallèle sur différentes connexions. Cela peut entraîner une réduction significative du temps total nécessaire pour réaliser les opérations. Les fragments de code suivants montrent comment activer MultiConnection mode pour les opérations de sauvegarde et de restauration.
Note : L’utilisation de plusieurs connexions peut être soumise à des limitations et des politiques définies par le serveur de messagerie. Certains serveurs peuvent imposer des restrictions sur le nombre de connexions simultanées autorisées depuis un même compte utilisateur afin d’éviter de surcharger le serveur. Vérifiez toujours les conditions d’utilisation ou les politiques du fournisseur de messagerie pour vous assurer de respecter leurs directives avant d’activer le mode MultiConnectionMode.
Sauvegarder les messages avec MultiConnection activé
Le fragment de code suivant montre comment exécuter une opération de sauvegarde avec le mode MultiConnection activé :
import aspose.email as ae
# Create an instance of the ImapClient class
imap_client = ae.clients.imap.ImapClient()
# Specify host, username, password, and set port for your client
imap_client.host = "imap.gmail.com"
imap_client.username = username
imap_client.password = password
imap_client.port = 993
imap_client.security_options = ae.clients.SecurityOptions.Auto
# Enable MultiConnectionMode
imap_client.use_multi_connection = ae.clients.MultiConnectionMode.ENABLE
# Get mailbox info
mailbox_info = imap_client.mailbox_info
# Get folder info for the Inbox folder
inbox_info = imap_client.get_folder_info(mailbox_info.inbox.name)
# Create an ImapFolderInfoCollection and add the Inbox folder info
infos = ae.clients.imap.ImapFolderInfoCollection()
infos.add(inbox_info)
# Specify the path to the directory
data_dir = "path/to/your/data/directory"
# Perform the backup operation
settings = ae.clients.imap.BackupSettings
settings.execute_recursively = True
imap_client.backup(infos, data_dir + "\\ImapBackup.pst", settings)
Restaurer les messages avec MultiConnection
Le fragment de code suivant montre comment exécuter une opération de restauration avec le mode MultiConnection activé.
import aspose.email as ae
# Create an instance of the ImapClient class
imap_client = ae.clients.imap.ImapClient()
# Specify host, username, password, and set port for your client
imap_client.host = "imap.gmail.com"
imap_client.username = username
imap_client.password = password
imap_client.port = 993
imap_client.security_options = ae.clients.SecurityOptions.Auto
# Enable MultiConnectionMode
imap_client.use_multi_connection = ae.clients.MultiConnectionMode.ENABLE
# Create RestoreSettings with Recursive set to true
settings = ae.clients.imap.RestoreSettings()
settings.recursive = True
# Specify the path to the directory
data_dir = "path/to/your/data/directory"
# Load the PST file
pst = ae.storage.pst.PersonalStorage.from_file(data_dir + "\\Outlook.pst")
# Perform the restore operation
imap_client.restore(pst, settings)