1

ImapX libを使用してgmailのすべてのフォルダ名を取得するには? http://hellowebapps.com/2010-02-09/imapx-net-library-to-manage-imap-folders/を読みましたが、すべてのフォルダー部分を取得できませんでした。

4

3 に答える 3

0

すべてのフォルダのリストを取得する方法は次のとおりです...

        FolderCollection folders = client.GetFolders();
        foreach (Folder myfolder in folders)
        {
            MessageBox.Show(myfolder.Name);
        }

次に、名前を次のように使用します。

ImapX.MessageCollection messages = client.Folders["Spam"].Search("ALL", true);

フォルダ名は大文字と小文字が区別されることに注意してください...

于 2011-04-26T10:12:42.927 に答える
0

SubFolder コレクションを反復処理して、これらのすべての gamail フォルダーとそのパスを取得できます。例:

var client = new ImapClient(...);
client.Connection();
client.LogIn(...);


foreach (var item in WalkFolderTree(client.Folders))
{

     Console.WriteLine(item.FolderPath);
 }

client.LogOut();

次のようなトラバーサル コードをカスタム実装する必要があります。

public IEnumerable<Folder> WalkFolderTree(FolderCollection folders)
{
    foreach (var item in folders)
    {
        if (item.HasChildren)
        {
            WalkFolderTree(item.SubFolder);
        }
            yield return item;
    }

 }

次に、次のようなすべてのフォルダーが一覧表示されます。

   INBOX
   ...
   [Gmail]
   [Gmail]/All Mail
   [Gmail]/Drafts
   [Gmail]/Sent Mail
   [Gmail]/Spam
   [Gmail]/Starred
   [Gmail]/Trash
于 2011-05-05T14:15:39.227 に答える