コード例 #1
0
 public Account(AccountInfo info)
 {
     Info        = info;
     ActiveLabel = null;
     GmailImap   = new GmailImapClient(Info.Address, Info.Password);
     MailStorage = new MailStorage(Info.Address);
 }
コード例 #2
0
 // Выбор вложения для сохранения
 private void ListBoxAttach_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     if (((ListBox)sender).SelectedIndex >= 0)
     {
         // Выбор имени файла для сохранения
         string         filename       = ((MyViewControl)DataContext).Message.MyAttachments[((ListBox)sender).SelectedIndex].Name;
         SaveFileDialog saveFileDialog = new SaveFileDialog()
         {
             FileName = filename
         };
         if (saveFileDialog.ShowDialog() == true)
         {
             FileStream stream  = new FileStream(saveFileDialog.FileName, FileMode.Create, FileAccess.Write);
             byte[]     content = MailStorage.LoadAttach(Client.CurrentMailBox, filename);
             if (content.Length > 0)
             {
                 stream.Write(content, 0, content.Length);
             }
             // Очистка памяти после скачивания
             content = null;
             stream.Dispose();
         }
         // Снятие выделения элемента списка
         ((ListBox)sender).SelectedIndex = -1;
     }
 }
コード例 #3
0
 // Обработка выбора почтового ящика
 private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     if (((ListBox)sender).SelectedIndex >= 0)
     {
         // Сворачивание расширителя
         MailBoxExp.IsExpanded = false;
         try
         {
             // Отключить соединение
             Client.Disconnect();
             MailBox mb = Client.MailBoxList[((ListBox)sender).SelectedIndex];
             if (mb != null)
             {
                 // Загрузка настроек почтового ящика из файла
                 mb.Settings = MailStorage.LoadSettingBox(mb.MyAddress.Address);
                 // Визуализация выбранного ящика
                 ((MyViewControl)DataContext).Title         = mb.Name;
                 ((MyViewControl)DataContext).CurrentBoxNum = mb;
                 Client.CurrentMailBox = mb;
                 // Очистка списка писем
                 ((MyViewControl)DataContext).SelFolder = null;
                 // Очистка окна просмотра письма
                 ((MyViewControl)DataContext).Message   = null;
                 ((MyViewControl)DataContext).OpMessBox = 0;
                 // Загрузить список папок
                 Client.LoadFolderList();
             }
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message);
         }
     }
 }
コード例 #4
0
 // Обработка удаления почтового ящика
 private void RemoveButton_Click(object sender, RoutedEventArgs e)
 {
     if (Client.CurrentMailBox != null)
     {
         if (MessageBox.Show("Удалить учетную запись " + Client.CurrentMailBox.Name + "?", "Внимание!!!", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
         {
             // Удаление ящика из файла
             MailStorage.RemoveMailBox(Client.CurrentMailBox.MyAddress.Address);
             // Удаление ящика из списка в оперативной памяти
             Client.MailBoxList.Remove(Client.CurrentMailBox);
             // Обнуление текущего ящика
             Client.CurrentMailBox = null;
             // Визуализация удаления
             ((MyViewControl)DataContext).CurrentBoxNum = null;
             ((MyViewControl)DataContext).Title         = "E-mail клиент";
             listMailBox.Items.Refresh();
             // Очистка списка писем
             ((MyViewControl)DataContext).SelFolder = null;
             // Очистка окна просмотра письма
             ((MyViewControl)DataContext).Message   = null;
             ((MyViewControl)DataContext).OpMessBox = 0;
         }
     }
     else
     {
         MessageBox.Show("Выберите учетную запись");
     }
 }
コード例 #5
0
        // Обработка создания почтового ящика
        private void CreatBoxButton_Click(object sender, RoutedEventArgs e)
        {
            // Запуск диалогового окна для ввода настроек почтового ящика
            CreatBoxWindow NewWindow = new CreatBoxWindow("Новая учетная запись", new MailBox())
            {
                Owner = this
            };

            if (NewWindow.ShowDialog() == true)
            {
                // Проверка, что ящик с таким адресом ещё не существует
                string newAddress = NewWindow.MyBox.MyAddress.Address;
                if (!Client.ConsistAddress(newAddress))
                {
                    try
                    {
                        Client.MailBoxList.Add(NewWindow.MyBox);
                        // Добавление нового почтового ящика в список
                        MailBox mb = Client.MailBoxList.Last();
                        // Визуализация добавленного ящика
                        if (mb != null)
                        {
                            ((MyViewControl)DataContext).Title = mb.Name;
                        }
                        ((MyViewControl)DataContext).CurrentBoxNum = mb;
                        // Изменение текущего почтового ящика
                        Client.CurrentMailBox = mb;
                        // Добавление нового ящика в файл
                        MailStorage.SaveNewMailBox(mb);
                        listMailBox.Items.Refresh();
                        // Очистка списка писем
                        ((MyViewControl)DataContext).SelFolder = null;
                        // Очистка окна просмотра письма
                        ((MyViewControl)DataContext).Message   = null;
                        ((MyViewControl)DataContext).OpMessBox = 0;
                        // Загрузить список папок
                        Client.LoadFolderList();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
                else
                {
                    MessageBox.Show("Учетная запись с адресом " + newAddress + " уже существует");
                }
            }
        }
コード例 #6
0
        // Burn it all
        private void ClearAllDataClick(object sender, RoutedEventArgs e)
        {
            // TODO: Prompt for confirmation
            // TODO: Error handling/reporting?

            // Clear usernames and passwords.
            // AppSettings.ClearAll();

            foreach (Account account in App.AccountManager.Accounts)
            {
                // TODO: Clear in-memory caches for accounts, labels, etc.
                account.DeleteAccountData();
            }

            // Clear any leftover garbage.
            MailStorage.ClearAll();

            // TODO: Prompt for success
        }
コード例 #7
0
 // Обработка вызова окна настроек почтового ящика
 private void SettingButton_Click(object sender, RoutedEventArgs e)
 {
     if (Client.CurrentMailBox != null)
     {
         // Запуск диалогового окна для ввода настроек почтового ящика
         CreatBoxWindow NewWindow = new CreatBoxWindow("Настройки учетной записи", Client.CurrentMailBox)
         {
             Owner = this
         };
         if (NewWindow.ShowDialog() == true)
         {
             try
             {
                 // Замена текущего ящика на ящик с новыми настройками
                 MailBox newMb = new MailBox(NewWindow.MyBox);
                 Client.MailBoxList[Client.MailBoxList.IndexOf(Client.CurrentMailBox)] = newMb;
                 // Визуализация ящика
                 ((MyViewControl)DataContext).CurrentBoxNum = newMb;
                 Client.CurrentMailBox = newMb;
                 // Сохранение настроек почтового ящика в файл
                 MailStorage.SaveSettings(newMb);
                 listMailBox.Items.Refresh();
                 // Очистка списка писем
                 ((MyViewControl)DataContext).SelFolder = null;
                 // Очистка окна просмотра письма
                 ((MyViewControl)DataContext).Message   = null;
                 ((MyViewControl)DataContext).OpMessBox = 0;
                 // Загрузить список папок
                 Client.LoadFolderList();
             }
             catch (Exception ex)
             {
                 MessageBox.Show(ex.Message);
             }
         }
     }
     else
     {
         MessageBox.Show("Выберите учетную запись");
     }
 }
コード例 #8
0
 // Обработка загрузки окна
 private void EmailWindow_Loaded(object sender, RoutedEventArgs e)
 {
     // Загрузка списка почтовых ящиков из файла
     Client.MailBoxList = MailStorage.LoadMailBoxList();
     ((MyViewControl)DataContext).MailBoxList = Client.MailBoxList;
 }