Zálohování a obnovení IMAP zpráv v Pythonu
Aspose.Email pro Python nabízí metody třídy ImapClient třída pro správu e‑mailových zpráv přes protokol IMAP:
- metodu ‘backup’
- metodu ‘restore’
Tento článek ukazuje, jak použít ImapClient třídu a její metody pro zálohování a obnovení e‑mailových zpráv do a z PST souboru. Dále popisuje, jak zlepšit výkon pro velké poštovní schránky pomocí režimu multi-connection.
Zálohovat IMAP zprávy
Pro vytvoření zálohy e‑mailových zpráv z IMAP serveru použijte backup metoda třídy ImapClient třída. Následující ukázka kódu ukazuje, jak zálohovat složku Inbox do .pst souboru:
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)
Obnovit IMAP zprávy
Pro obnovení zpráv z .pst souboru zpět na IMAP server použijte restore metoda třídy ImapClient třída:
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)
Zvýšit výkon pomocí režimu Multi-Connection
Pro úlohy, které zahrnují velké množství dat nebo mnoho e‑mailových zpráv, Aspose.Email nabízí vlastnost ‘use_multi_connection’ třídy ImapClient třída pro optimalizaci výkonu operací tím, že umožní klientovi otevřít více spojení k e‑mailovému serveru současně. Když MultiConnectionMode je povolen, IMAP klient může provádět různé úkoly (jako načítání e‑mailů, synchronizaci složek a zálohování dat) paralelně přes různé spojení. To může vést k výraznému zkrácení celkového času potřebného k dokončení operací. Následující úryvky kódu ukazují, jak povolit MultiConnection režim pro operace zálohování a obnovení.
Poznámka: Používání více spojení může podléhat omezením a politikám nastaveným e‑mailovým serverem. Některé servery mohou omezovat počet souběžných spojení, která může jeden uživatelský účet vytvořit, aby se zabránilo přetížení serveru. Vždy si před zapnutím MultiConnectionMode ověřte podmínky služby nebo zásady poskytovatele e‑mailu, abyste zajistili soulad s jejich pokyny pro používání.
Zálohovat zprávy se zapnutým MultiConnection
Následující úryvek kódu ukazuje, jak provést operaci zálohování se zapnutým režimem MultiConnection:
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)
Obnovit zprávy s MultiConnection
Následující úryvek kódu ukazuje, jak provést operaci obnovení se zapnutým režimem MultiConnection.
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)