Резервне копіювання та відновлення повідомлень IMAP у Python
Aspose.Email для Python пропонує методи ImapClient клас для керування листами за протоколом IMAP:
- метод ‘backup’
- метод ‘restore’
У цій статті продемонстровано, як використовувати ImapClient клас та його методи для резервного копіювання та відновлення листів у/з PST‑файлу. Також розглядається, як підвищити продуктивність великих скриньок за допомогою режиму multi-connection.
Резервне копіювання повідомлень IMAP
Щоб створити резервну копію листів з сервера IMAP, використайте backup метод ImapClient клас. Нижче наведений приклад коду показує, як створити резервну копію папки Inbox у .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)
Відновлення повідомлень IMAP
Щоб відновити листи з .pst‑файлу на сервер IMAP, використайте restore метод ImapClient клас:
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)
Покращення продуктивності за допомогою режиму Multi-Connection
Для завдань, що включають великі обсяги даних або численні листи, Aspose.Email пропонує властивість ‘use_multi_connection’ класу ImapClient клас для оптимізації продуктивності операцій, дозволяючи клієнту одночасно відкривати кілька з’єднань до поштового сервера. Коли MultiConnectionMode ввімкнено, IMAP‑клієнт може виконувати різні завдання (наприклад, отримання листів, синхронізацію папок та резервне копіювання даних) паралельно через різні з’єднання. Це може суттєво скоротити загальний час, необхідний для виконання операцій. Нижче наведено фрагменти коду, які демонструють, як увімкнути MultiConnection режим для операцій резервного копіювання та відновлення.
Примітка: Використання кількох з’єднань може підпадати під обмеження та політики, встановлені поштовим сервером. Деякі сервери можуть обмежувати кількість одночасних з’єднань, які можна встановити з одного облікового запису користувача, щоб уникнути перевантаження сервера. Завжди перевіряйте умови обслуговування або політики постачальника електронної пошти, щоб переконатися у відповідності їх вказівкам щодо використання, перед ввімкненням MultiConnectionMode.
Резервне копіювання повідомлень з увімкненим MultiConnection
Нижче наведений фрагмент коду демонструє, як виконати резервне копіювання з увімкненим режимом 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)
Відновлення повідомлень з MultiConnection
Нижче наведений фрагмент коду демонструє, як виконати операцію відновлення з увімкненим режимом 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)