Cadangkan dan Pulihkan Pesan IMAP di Python

Aspose.Email untuk Python menawarkan metode dari ImapClient kelas untuk mengelola pesan email melalui protokol IMAP:

  • metode ‘backup’
  • metode ‘restore’

Artikel ini menunjukkan cara menggunakan ImapClient kelas dan metodenya untuk mencadangkan dan memulihkan pesan email ke dan dari file PST. Juga mencakup cara meningkatkan performa untuk kotak surat besar menggunakan mode multi-connection.

Cadangkan Pesan IMAP

Untuk membuat cadangan pesan email dari server IMAP, gunakan backup metode dari ImapClient kelas. Contoh kode berikut menunjukkan cara mencadangkan folder Inbox ke file .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)

Pulihkan Pesan IMAP

Untuk memulihkan pesan dari file .pst kembali ke server IMAP, gunakan restore metode dari ImapClient kelas:

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)

Tingkatkan Performa dengan Mode Multi-Connection

Untuk tugas yang melibatkan sejumlah besar data atau banyak pesan email, Aspose.Email menawarkan properti ‘use_multi_connection’ dari ImapClient kelas untuk mengoptimalkan kinerja operasi dengan memungkinkan klien membuka banyak koneksi ke server email secara simultan. Ketika MultiConnectionMode diaktifkan, klien IMAP dapat melaksanakan berbagai tugas (seperti mengambil email, menyinkronkan folder, dan mencadangkan data) secara paralel melalui koneksi yang berbeda. Ini dapat menghasilkan pengurangan signifikan dalam total waktu yang dibutuhkan untuk menyelesaikan operasi. Potongan kode berikut menunjukkan cara mengaktifkan MultiConnection mode untuk operasi pencadangan dan pemulihan.

Catatan: Penggunaan banyak koneksi dapat tunduk pada batasan dan kebijakan yang ditetapkan oleh server email. Beberapa server dapat membatasi jumlah koneksi simultan yang dapat dibuat dari satu akun pengguna untuk menghindari beban berlebih pada server. Selalu periksa ketentuan layanan atau kebijakan penyedia email untuk memastikan kepatuhan terhadap pedoman penggunaan mereka sebelum mengaktifkan MultiConnectionMode.

Cadangkan Pesan dengan MultiConnection Diaktifkan

Potongan kode berikut menunjukkan cara melakukan operasi pencadangan dengan mode MultiConnection diaktifkan:

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)

Pulihkan Pesan dengan MultiConnection

Potongan kode berikut menunjukkan cara melakukan operasi pemulihan dengan mode MultiConnection diaktifkan.

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)