// Подключение к IMAP-серверу c параметрами private void Connect(string adress, string server, int port, string user, string pass, bool ssl) { try { // Создание соединения с сервером Client = new IMAPClient(server, port, ssl); // Аутентификация на сервере if (Client.Login(user, pass).Contains("OK")) { Client.ListCompleted += Client_ListCompleted; // Загрузка списка папок Client.List(); } else { throw new Exception("Ошибка подключения"); } IsConnected = true; } catch (Exception ex) { // Наступление события ошибки OnException(ex); // Загрузка списка папок из файла List <Folder> folders = MailStorage.LoadFolders(adress); // Наступление события подключен OnConnected(folders); } }
private bool IsConnected = false; // Флаг подключения к серверу public void DragToSent(MailBox box) { try { string server = box.Settings.ImapServer; int port = box.Settings.ImapPort; bool ssl = box.Settings.Ssl; string user = box.Settings.UserName; string pass = box.Settings.Rassword; // Создание соединения с сервером Client = new IMAPClient(server, port, ssl); // Аутентификация на сервере if (Client.Login(user, pass).Contains("OK")) { IsConnected = true; int num = 0; if ((num = Client.MessInFolder("INBOX")) > 0) { if (Client.SelectFolder("INBOX").Contains("OK")) { string pointer = box.Folders.Where(x => x.Type == TYPE_FOLDER.SENT).First().Pointer; if (Client.Copy(pointer, num, num).Contains("OK")) { if (!Client.DeleteMessage(num)) { throw new Exception("Ошибка удаления письма. Удалите отправленное письмо из ящика INBOX"); } } else { throw new Exception("Ошибка копирования. Переместите отправленное письмо из ящика INBOX"); } } } } else { throw new Exception("Ошибка подключения. Отправленное письмо сохранено в папке INBOX"); } } catch (Exception ex) { // Наступление события ошибки OnException(ex); } }