IMAP‑berichten back‑up en herstellen in Python

Aspose.Email voor Python biedt methoden van de ImapClient klasse voor het beheren van e‑mailberichten via het IMAP‑protocol:

  • ‘backup’‑methode
  • ‘restore’‑methode

Dit artikel toont hoe je de ImapClient klasse en zijn methoden om e‑mailberichten te back‑uppen en te herstellen naar en van een PST‑bestand. Het behandelt ook hoe je de prestaties voor grote mailboxen verbetert met multi‑connection‑modus.

IMAP‑berichten back‑uppen

Om een back‑up van e‑mailberichten van een IMAP‑server te maken, gebruik je de backup methode van de ImapClient klasse. Het volgende codevoorbeeld laat zien hoe je de Inbox‑map back‑upt naar een .pst‑bestand:

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‑berichten herstellen

Om berichten vanuit een .pst‑bestand terug naar een IMAP‑server te herstellen, gebruik je de restore methode van de 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)

Prestaties verbeteren met Multi-Connection‑modus

Voor taken die een grote hoeveelheid data of vele e‑mailberichten omvatten, biedt Aspose.Email de eigenschap ‘use_multi_connection’ van de ImapClient klasse om de prestaties van de bewerkingen te optimaliseren door de client toe te staan meerdere verbindingen met de e‑mailserver gelijktijdig te openen. Wanneer MultiConnectionMode is ingeschakeld, kan de IMAP‑client diverse taken (zoals e‑mails ophalen, mappen synchroniseren en data back‑uppen) parallel over verschillende verbindingen uitvoeren. Dit kan leiden tot een aanzienlijke verkorting van de totale tijd die nodig is om bewerkingen te voltooien. De onderstaande codefragmenten tonen hoe je MultiConnection modus voor back‑up- en herstelbewerkingen.

Opmerking: Het gebruik van meerdere verbindingen kan onderworpen zijn aan beperkingen en beleidsregels van de e‑mailserver. Sommige servers kunnen restricties opleggen op het aantal gelijktijdige verbindingen dat een enkele gebruikersaccount kan maken om overbelasting van de server te voorkomen. Controleer altijd de servicevoorwaarden of het beleid van de e‑mailprovider om er zeker van te zijn dat je voldoet aan hun richtlijnen voordat je MultiConnectionMode inschakelt.

Berichten back‑uppen met MultiConnection ingeschakeld

Het onderstaande codefragment toont hoe je een back‑up bewerking uitvoert met MultiConnection‑modus ingeschakeld:

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)

Berichten herstellen met MultiConnection

Het onderstaande codefragment toont hoe je een herstelbewerking uitvoert met MultiConnection‑modus ingeschakeld.

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)