Imap4Folder Class


Provides properties and methods for presenting an IMAP4 folder.

System.Object
    EAGetMail.Imap4Folder

[Visual Basic]
Public Class Imap4Folder
[C#]
public class Imap4Folder
[C++]
public __gc class Imap4Folder
[JScript]
public class Imap4Folder

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Public Constructors

Imap4Folder Constructor Initializes a new instance of the Imap4Folder class.

Public Properties

FullPath Gets full path of IMAP4 folder.
IMAP4FolderFlags Gets the flags of IMAP4 folder.
LocalPath Gets the full path of IMAP4 folder based on local directory syntax.
Name Gets the name of IMAP4 folder.
SubFolders Gets the sub-folders of current folder.
Subscribed Gets whether the IMAP4 folder has been subscribed.

Example

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

[Visual Basic]
Imports EAGetMail

Public Sub ConnectImap4Server( _
ByVal server As String, _
ByVal user As String, _
ByVal password As String, _
ByVal sslConnection As Boolean)
    Dim oServer As New MailServer(server, user, password, sslConnection, _
    ServerAuthType.AuthLogin, ServerProtocol.Imap4)

    Dim oClient As New MailClient("TryIt")
    Try
        oClient.Connect(oServer)
        Dim folders() As Imap4Folder = oClient.Imap4Folders
        'enumerates all folders on IMAP4 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)
    Dim count As Integer = folders.Length
    For i As Integer = 0 To count - 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#]
using System;
using EAGetMail;

public static void ConnectImap4Server(
    string server,
    string user,
    string password,
    bool sslConnection )
{
    MailServer oServer = new MailServer( server, user, password, sslConnection,
        ServerAuthType.AuthLogin, ServerProtocol.Imap4 );

    MailClient oClient = new MailClient("TryIt");

    try
    {

        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 )
{
    int count = folders.Length;
    for( int i = 0; i < count; 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++]
using namespace System;
using namespace EAGetMail;

Void EnumerateFolder(
    Imap4Folder *folders[] )
{
    int count = folders->Length;
    for( int i = 0; i < count; 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", __box(folder->Subscribed) );
        EnumerateFolder( folder->SubFolders );
    }
}

Void ConnectImap4Server(
    String* server,
    String* user,
    String* password,
    bool sslConnection )
{
    MailServer *oServer = new MailServer( server, user, password, sslConnection,
        ServerAuthType::AuthLogin, ServerProtocol::Imap4 );

    MailClient *oClient = new MailClient(S"TryIt");

    try
    {
        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 );
    }
}