النسخ الاحتياطي واستعادة رسائل IMAP في بايثون
توفر Aspose.Email لبايثون طرقًا لـ 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)