/// <summary> /// Gets the remote mailbox tree hierachy. /// </summary> /// <param name="response">The response.</param> /// <returns>The response type.</returns> protected override CommandResponseType GetMailboxTreeCommand(out string response) { try { Mailbox mailboxTree = _client.GetMailboxTree(); MailboxTree = new ObservableCollection <Mailbox>(GetFlatMailboxes(mailboxTree).OrderBy(o => (int)o.Folder).ThenBy(o => o.FullName)); response = string.Empty; return(CommandResponseType.Ok); } catch (Exception ex) { response = ex.ToString(); return(CommandResponseType.Bad); } }
private void GetFolders() { this.Cursor = Cursors.WaitCursor; Account account = accounts[iTalk_TabControl.SelectedIndex]; try { _client.Logout(); Console.WriteLine("Logout succeeded!"); } catch { Console.WriteLine("Logout failed!"); } _client = new ImapClient(); //Create POP3 client with parameters needed //URL of host to connect to _client.Host = account.Host; //TCP port for connection _client.Port = (ushort)account.Port; //Username to login to the POP3 server _client.Username = account.Username; //Password to login to the POP3 server _client.Password = account.Password; _client.SSLInteractionType = Email.Net.Common.Configurations.EInteractionType.SSLPort; try { //Login to the server CompletionResponse response = _client.Login(); if (response.CompletionResult != ECompletionResponseType.OK) { MessageBox.Show("Error", String.Format("Connection error:\n {0}", response.Message), MessageBoxButtons.OK, MessageBoxIcon.Error); } else { //Get all messages to know the uid Mailbox folders = _client.GetMailboxTree(); iTalk.iTalk_TabControl tab = tabs[iTalk_TabControl.SelectedIndex]; tab.TabPages.Clear(); for (int i = 0; i <= folders.Children.Count - 1; i++) { tab.TabPages.Add(folders.Children[i].DisplayName + " - " + _client.GetMessageCount(folders.Children[i])); } GetMessages(); } } catch (Exception ex) { MessageBox.Show("Error: " + ex.Message); } this.Cursor = Cursors.Default; }