[C#] IMAPx - Ordner auflisten

Raven280438

Erfahrenes Mitglied
Hi,

ich möchte mit ImapX alle Ordner eines IMAP-Postfachs anzeigen.

Code:
ImapX.FolderCollection collection = this.Client.GetFolders();


bringt leider nur die Unterordner, die maximal 1 Ebene tief sind, der Rest wird nicht angezeigt.

Ich hab dran gedacht, eine rekursive Funktion zu schreiben, leider funktioniert das auch nicht so richtig.

Eine andere Möglichkeit, die ich probiert habe ist, "per Hand" das List-Kommando abzusetzen und die Rückgabe zu verarbeiten:
Code:
List<String> returnlist = new List<String>();
            ArrayList result = new ArrayList();
            if (this.Client._client.SendAndReceive("list \"\" \"*\"" + Environment.NewLine, ref result))
            {
                Regex regex = new Regex("^* LIST (.*) \"(.*)\" (.*)$");
                foreach (String line in result)
                {
                    if (regex.IsMatch(line))
                    {
                        String folder = regex.Match(line).Groups[3].Value;
                        folder = folder.Trim(new char[] { '"' });
                        returnlist.Add(folder); 
                    }
                }
            }

            returnlist.Sort();

            return returnlist;
Das funktioniert soweit auch, Probleme gibts dann aber wenn ich z.B. die Anzahl an E-Mails in einem Unterordner ermitteln will:
Code:
this.Client.Folders[Ordner].Messages.Count(); //wirft bei Unterordnern eine Exception


Hat jemand Erfahrung mit ImapX (oder einer anderen kostenlosen IMAP-Dll) und kann mir bei diesem Problem helfen?


Gruß
 

Neue Beiträge

Zurück