Операція резервного копіювання та відновлення IMAP

Стандартне резервне копіювання та відновлення

Aspose.Email для .NET надає можливість створювати резервні копії та відновлювати повідомлення. Для цього API надає наступні методи.

У цій статті показано, як резервно копіювати та відновлювати повідомлення за допомогою ImapClient клас.

Резервне копіювання повідомлень

Щоб створити резервну копію повідомлень, використайте ImapClient.Backup метод, як продемонстровано у наступному фрагменті коду.

// The path to the File directory.
string dataDir = RunExamples.GetDataDir_IMAP();
// Create an instance of the ImapClient class
ImapClient imapClient = new ImapClient();

// Specify host, username and password, and set port for your client
imapClient.Host = "imap.gmail.com";
imapClient.Username = "your.username@gmail.com";
imapClient.Password = "your.password";
imapClient.Port = 993;
imapClient.SecurityOptions = SecurityOptions.Auto;

ImapMailboxInfo mailboxInfo = imapClient.MailboxInfo;

ImapFolderInfo info = imapClient.GetFolderInfo(mailboxInfo.Inbox.Name);
ImapFolderInfoCollection infos = new ImapFolderInfoCollection();
infos.Add(info);

imapClient.Backup(infos, dataDir + @"\ImapBackup.pst", BackupOptions.Recursive);

Відновити повідомлення

Щоб відновити повідомлення, використайте ImapClient.Restore метод, як продемонстровано у наступному фрагменті коду.

// The path to the File directory.
string dataDir = RunExamples.GetDataDir_IMAP();
// Create an instance of the ImapClient class
ImapClient imapClient = new ImapClient();

// Specify host, username and password, and set port for your client
imapClient.Host = "imap.gmail.com";
imapClient.Username = "your.username@gmail.com";
imapClient.Password = "your.password";
imapClient.Port = 993;
imapClient.SecurityOptions = SecurityOptions.Auto;

RestoreSettings settings = new RestoreSettings();
settings.Recursive = true;
PersonalStorage pst = PersonalStorage.FromFile(dataDir + @"\ImapBackup.pst");
imapClient.Restore(pst, settings);

IMAP резервне копіювання та відновлення з MultiConnection

Під час роботи з великою кількістю повідомлень операція резервного копіювання/відновлення може займати багато часу. Для цього API забезпечує підтримку декількох з’єднань під час резервного копіювання та відновлення. Щоб увімкнути режим MultiConnection, встановіть ImapClient.UseMultiConnection властивість для MultiConnectionMode.Enable. Наступні фрагменти коду демонструють операції резервного копіювання та відновлення з увімкненим режимом MultiConnection.

Нижче наведено фрагменти коду, які демонструють операцію резервного копіювання з увімкненим режимом MultiConnection.

// The path to the File directory.
string dataDir = RunExamples.GetDataDir_IMAP();
// Create an instance of the ImapClient class
ImapClient imapClient = new ImapClient();

// Specify host, username and password, and set port for your client
imapClient.Host = "imap.gmail.com";
imapClient.Username = "your.username@gmail.com";
imapClient.Password = "your.password";
imapClient.Port = 993;
imapClient.SecurityOptions = SecurityOptions.Auto;

imapClient.UseMultiConnection = MultiConnectionMode.Enable;

ImapMailboxInfo mailboxInfo = imapClient.MailboxInfo;

ImapFolderInfo info = imapClient.GetFolderInfo(mailboxInfo.Inbox.Name);
ImapFolderInfoCollection infos = new ImapFolderInfoCollection();
infos.Add(info);

imapClient.Backup(infos, dataDir + @"\ImapBackup.pst", BackupOptions.Recursive);

Нижче наведено фрагменти коду, які демонструють операцію відновлення з увімкненим режимом MultiConnection.

// The path to the File directory.
string dataDir = RunExamples.GetDataDir_IMAP();
// Create an instance of the ImapClient class
ImapClient imapClient = new ImapClient();

// Specify host, username and password, and set port for your client
imapClient.Host = "imap.gmail.com";
imapClient.Username = "your.username@gmail.com";
imapClient.Password = "your.password";
imapClient.Port = 993;
imapClient.SecurityOptions = SecurityOptions.Auto;

imapClient.UseMultiConnection = MultiConnectionMode.Enable;

RestoreSettings settings = new RestoreSettings();
settings.Recursive = true;
PersonalStorage pst = PersonalStorage.FromFile(dataDir + @"\Outlook.pst");
imapClient.Restore(pst, settings);