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)