پشتیبان‌گیری و بازیابی پیام‌های IMAP در پایتون

Aspose.Email برای پایتون روش‌های ImapClient کلاسی برای مدیریت پیام‌های ایمیل از طریق پروتکل IMAP:

  • متد ‘backup’
  • متد ‘restore’

این مقاله نشان می‌دهد چگونه از ImapClient کلاس و متدهای آن برای پشتیبان‌گیری و بازیابی پیام‌های ایمیل به‌ و از یک فایل PST. همچنین نحوه بهبود عملکرد برای صندوق‌پست‌های بزرگ با استفاده از حالت چنداتصال را پوشش می‌دهد.

پشتیبان‌گیری پیام‌های 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)