Kopia zapasowa i przywracanie wiadomości IMAP w Pythonie

Aspose.Email dla Pythona oferuje metody ImapClient klasa do zarządzania wiadomościami e‑mail przy użyciu protokołu IMAP:

  • metoda ‘backup’
  • metoda ‘restore’

Ten artykuł demonstruje, jak używać ImapClient klasa i jej metody do tworzenia kopii zapasowych oraz przywracania wiadomości e‑mail do i z pliku PST. Zawiera także informacje, jak poprawić wydajność dużych skrzynek pocztowych przy użyciu trybu multi-connection.

Kopia Zapasowa Wiadomości IMAP

Aby utworzyć kopię zapasową wiadomości e‑mail z serwera IMAP, użyj backup metoda ImapClient klasa. Poniższy przykład kodu pokazuje, jak wykonać kopię zapasową folderu Inbox do pliku .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)

Przywróć Wiadomości IMAP

Aby przywrócić wiadomości z pliku .pst na serwer IMAP, użyj restore metoda ImapClient klasa:

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)

Zwiększ Wydajność dzięki Trybowi Multi-Connection

W przypadku zadań obejmujących dużą ilość danych lub liczne wiadomości e‑mail, Aspose.Email oferuje właściwość ‘use_multi_connection’ klasy ImapClient klasa, aby zoptymalizować wydajność operacji, pozwalając klientowi otworzyć wiele połączeń z serwerem e‑mail jednocześnie. Gdy MultiConnectionMode jest włączony, klient IMAP może wykonywać różne zadania (takie jak pobieranie e‑maili, synchronizowanie folderów i tworzenie kopii zapasowych) równolegle na różnych połączeniach. Może to znacznie skrócić całkowity czas potrzebny na zakończenie operacji. Poniższe fragmenty kodu demonstrują, jak włączyć MultiConnection tryb dla operacji kopii zapasowej i przywracania.

Uwaga: Użycie wielu połączeń może podlegać ograniczeniom i politykom ustalonym przez serwer e‑mail. Niektóre serwery mogą narzucać ograniczenia liczby jednoczesnych połączeń z jednego konta użytkownika, aby uniknąć przeciążenia serwera. Zawsze sprawdzaj warunki usługi lub polityki dostawcy e‑mail, aby zapewnić zgodność z ich wytycznymi przed włączeniem trybu MultiConnectionMode.

Kopia Zapasowa Wiadomości z Włączonym MultiConnection

Poniższy fragment kodu demonstruje, jak wykonać operację kopii zapasowej przy włączonym trybie 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)

Przywróć wiadomości przy użyciu MultiConnection

Poniższy fragment kodu demonstruje, jak wykonać operację przywracania przy włączonym trybie 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)