IMAP‑Nachrichten in Python sichern und wiederherstellen

Aspose.Email für Python bietet Methoden des ImapClient Klasse zur Verwaltung von E‑Mail‑Nachrichten über das IMAP‑Protokoll:

  • ‘backup’‑Methode
  • ‘restore’‑Methode

Dieser Artikel zeigt, wie man das ImapClient Klasse und ihre Methoden, um E‑Mail‑Nachrichten in eine PST‑Datei zu sichern und daraus wiederherzustellen. Außerdem wird erklärt, wie die Leistung für große Postfächer mit dem Multi‑Connection‑Modus verbessert werden kann.

IMAP‑Nachrichten sichern

Um ein Backup von E‑Mail‑Nachrichten eines IMAP‑Servers zu erstellen, verwenden Sie das backup Methode des ImapClient Klasse. Das folgende Code‑Beispiel zeigt, wie man den Ordner Inbox in einer .pst‑Datei sichert:

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)

IMAP‑Nachrichten wiederherstellen

Um Nachrichten aus einer .pst‑Datei zurück zu einem IMAP‑Server wiederherzustellen, verwenden Sie das restore Methode des ImapClient Klasse:

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)

Leistung mit Multi‑Connection‑Modus steigern

Für Aufgaben, die große Datenmengen oder zahlreiche E‑Mail‑Nachrichten umfassen, bietet Aspose.Email die Eigenschaft ‘use_multi_connection’ des ImapClient Klasse, um die Leistung der Vorgänge zu optimieren, indem dem Client erlaubt wird, gleichzeitig mehrere Verbindungen zum E‑Mail‑Server zu öffnen. Wenn MultiConnectionMode ist aktiviert, kann der IMAP‑Client verschiedene Aufgaben (wie das Abrufen von E‑Mails, das Synchronisieren von Ordnern und das Sichern von Daten) parallel über mehrere Verbindungen ausführen. Das kann die insgesamt benötigte Zeit für die Vorgänge deutlich reduzieren. Die folgenden Code‑Snippets zeigen, wie man die MultiConnection Modus für Sicherungs‑ und Wiederherstellungs‑Operationen.

Hinweis: Die Verwendung mehrerer Verbindungen kann Beschränkungen und Richtlinien des E‑Mail‑Servers unterliegen. Einige Server können die Anzahl gleichzeitiger Verbindungen von einem einzelnen Benutzerkonto einschränken, um eine Überlastung zu vermeiden. Prüfen Sie stets die Nutzungsbedingungen oder Richtlinien des E‑Mail‑Anbieters, um die Einhaltung der Vorgaben sicherzustellen, bevor Sie MultiConnectionMode aktivieren.

Nachrichten mit aktiviertem MultiConnection sichern

Das folgende Code‑Snippet demonstriert, wie man eine Sicherungs‑Operation mit aktiviertem MultiConnection‑Modus durchführt:

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)

Nachrichten mit MultiConnection wiederherstellen

Das folgende Code‑Snippet demonstriert, wie man eine Wiederherstellungs‑Operation mit aktiviertem MultiConnection‑Modus durchführt.

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)