Imap4Folder.SubFolders Property


Gets the sub-folders of current folder.

[Visual Basic]
Public Property SubFolders() As Imap4Folder
[C#]
public Imap4Folder [] SubFolders {get; }
[C++]
public: __property array<Imap4Folder>^ get_SubFolders();
[JScript]
public function get SubFolders() : Imap4Folder [];

Property Value

A Imap4Folder array containing the sub-folder of current IMAP4 folder.

Example

[Visual Basic, C#, C++] The following sample demonstrates how to enumerate all folders on IMAP4/MS Exchange server. To get the full samples of EAGetMail, please refer to Samples section.

[Visual Basic - Enumerate Mail Folders]
Imports EAGetMail

Public Sub ConnectImap4Server( _
ByVal server As String, _
ByVal user As String, _
ByVal password As String, _
ByVal sslConnection As Boolean)

    
    ' To manage folder with Exchange Web Service, please change
    ' ServerProtocol.Imap4 to ServerProtocol.ExchangeEWS to MailServer constructor
    ' and also set sslConnection to True

    ' To manage folder with Exchange WebDAV, please change
    ' ServerProtocol.Imap4 to ServerProtocol.ExchangeWebDAV to MailServer constructor

    ' Exchange Server supports IMAP4 protocol as well, but in Exchange 2007
    ' or later version, IMAP4 service is disabled by default. If you don't want to use IMAP4
    ' to manage folder from Exchange Server, you can use Exchange Web Service (Exchange 2007/2010 or
    ' later version) or WebDAV (Exchange 2000/2003) protocol.
    
    
    Try
        Dim oServer As New MailServer(server, user, password, sslConnection, _
            ServerAuthType.AuthLogin, ServerProtocol.Imap4)

        Dim oClient As New MailClient("TryIt")
        oClient.Connect(oServer)

        Dim folders() As Imap4Folder = oClient.Imap4Folders
        ' enumerates all folders on IMAP4/Exchange server.
        EnumerateFolder(folders)

        oClient.Logout()
    Catch ep As Exception
        oClient.Close()
        Console.WriteLine(ep.Message)
    End Try
End Sub

Public Sub EnumerateFolder(ByVal folders() As Imap4Folder)
    For i As Integer = 0 To folders.Length - 1
        Dim folder As Imap4Folder = folders(i)
        
        Console.WriteLine("Name: {0}", folder.Name)
        Console.WriteLine("FullPath: {0}", folder.FullPath)
        Console.WriteLine("LocalPath: {0}", folder.LocalPath)
        Console.WriteLine("Flags: {0}", folder.IMAP4FolderFlags)
        Console.WriteLine("Subscribed: {0}" & vbCrLf, folder.Subscribed)

        EnumerateFolder(folder.SubFolders)
    Next
End Sub


[C# - Enumerate Mail Folders] using System; using EAGetMail; public static void ConnectImap4Server( string server, string user, string password, bool sslConnection) { // To manage folder with Exchange Web Service, please change // ServerProtocol.Imap4 to ServerProtocol.ExchangeEWS to MailServer constructor // and also set sslConnection to true // To manage folder with Exchange WebDAV, please change // ServerProtocol.Imap4 to ServerProtocol.ExchangeWebDAV to MailServer constructor // Exchange Server supports IMAP4 protocol as well, but in Exchange 2007 // or later version, IMAP4 service is disabled by default. If you don't want to use IMAP4 // to manage folder from Exchange Server, you can use Exchange Web Service (Exchange 2007/2010 or // later version) or WebDAV (Exchange 2000/2003) protocol. try { MailServer oServer = new MailServer(server, user, password, sslConnection, ServerAuthType.AuthLogin, ServerProtocol.Imap4); MailClient oClient = new MailClient("TryIt"); oClient.Connect(oServer); Imap4Folder [] folders = oClient.Imap4Folders; // enumerates all folders on IMAP4 server. EnumerateFolder(folders); oClient.Logout(); } catch(Exception ep) { oClient.Close(); Console.WriteLine(ep.Message); } } public static void EnumerateFolder( Imap4Folder[] folders) { for(int i = 0; i < folders.Length; i++) { Imap4Folder folder = folders[i]; Console.WriteLine("Name: {0}", folder.Name); Console.WriteLine("FullPath: {0}", folder.FullPath); Console.WriteLine("LocalPath: {0}", folder.LocalPath); Console.WriteLine("Flags: {0}", folder.IMAP4FolderFlags); Console.WriteLine("Subscribed: {0}\r\n", folder.Subscribed); EnumerateFolder(folder.SubFolders); } }
[C++/CLI - Enumerate Mail Folders] using namespace System; using namespace EAGetMail; Void EnumerateFolder( array<Imap4Folder^>^folders) { for(int i = 0; i < folders->Length; i++) { Imap4Folder ^folder = folders[i]; Console::WriteLine("Name: {0}", folder->Name); Console::WriteLine("FullPath: {0}", folder->FullPath); Console::WriteLine("LocalPath: {0}", folder->LocalPath); Console::WriteLine("Flags: {0}", folder->IMAP4FolderFlags); Console::WriteLine("Subscribed: {0}\r\n", folder->Subscribed); EnumerateFolder(folder->SubFolders); } } Void ConnectImap4Server( String^ server, String^ user, String^ password, bool sslConnection) { // To manage folder with Exchange Web Service, please change // ServerProtocol::Imap4 to ServerProtocol::ExchangeEWS to MailServer constructor // and also set sslConnection to true // To manage folder with Exchange WebDAV, please change // ServerProtocol::Imap4 to ServerProtocol::ExchangeWebDAV to MailServer constructor // Exchange Server supports IMAP4 protocol as well, but in Exchange 2007 // or later version, IMAP4 service is disabled by default. If you don't want to use IMAP4 // to manage folder from Exchange Server, you can use Exchange Web Service (Exchange 2007/2010 or // later version) or WebDAV (Exchange 2000/2003) protocol. try { MailServer ^oServer = gcnew MailServer(server, user, password, sslConnection, ServerAuthType::AuthLogin, ServerProtocol::Imap4); MailClient ^oClient = gcnew MailClient("TryIt"); oClient->Connect(oServer); array<Imap4Folder^>^folders = oClient->Imap4Folders; //enumerates all folders on IMAP4/Exchange server. EnumerateFolder(folders); oClient->Logout(); } catch(Exception ^ep) { oClient->Close(); Console::WriteLine(ep->Message); } }

See Also

MailClient.Imap4Folders Property
MailClient.CreateFolder Method
MailClient.DeleteFolder Method
MailClient.Move Method
MailClient.Copy Method
MailClient.SelectFolder Method

Online Tutorials

Manage Mail Folders in C#
Manage Mail Folders in VB
Manage Mail Folders in C++/CLI