예제 #1
0
 // Подключение к 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);
     }
 }
예제 #2
0
        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);
            }
        }