com.icegreen.greenmail.imap
Interface ImapSession

All Known Implementing Classes:
ImapSessionImpl

public interface ImapSession

Encapsulates all state held for an ongoing Imap session, which commences when a client first establishes a connection to the Imap server, and continues until that connection is closed.

Version:
$Revision: 109034 $
Author:
Darrell DeBoer

Method Summary
 void closeConnection()
          Closes the connection for this session.
 void closeConnection(String byeMessage)
           
 void deselect()
          Moves the session out of ImapSessionState.SELECTED state and back into ImapSessionState.AUTHENTICATED state.
 String getClientHostname()
           
 String getClientIP()
           
 ImapHostManager getHost()
          Provides the Imap host for this server, which is used for all access to mail storage and subscriptions.
 ImapSessionFolder getSelected()
          Provides the selected mailbox for this session, or null if this session is not in ImapSessionState.SELECTED state.
 ImapSessionState getState()
           
 GreenMailUser getUser()
          Provides the authenticated user for this session, or null if this session is not in ImapSessionState.AUTHENTICATED or ImapSessionState.SELECTED state.
 UserManager getUserManager()
          Provides the UserManager for this session, to allow session to validate logins.
 void setAuthenticated(GreenMailUser user)
          Moves the session into ImapSessionState.AUTHENTICATED state with the supplied user.
 void setSelected(MailFolder folder, boolean readOnly)
          Moves this session into ImapSessionState.SELECTED state and sets the supplied mailbox to be the currently selected mailbox.
 void unsolicitedResponses(ImapResponse response)
          Sends any unsolicited responses to the client, such as EXISTS and FLAGS responses when the selected mailbox is modified by another user.
 void unsolicitedResponses(ImapResponse request, boolean omitExpunged)
           
 

Method Detail

unsolicitedResponses

void unsolicitedResponses(ImapResponse response)
                          throws FolderException
Sends any unsolicited responses to the client, such as EXISTS and FLAGS responses when the selected mailbox is modified by another user.

Parameters:
response - The response to write to
Throws:
FolderException

closeConnection

void closeConnection()
Closes the connection for this session.


closeConnection

void closeConnection(String byeMessage)

getHost

ImapHostManager getHost()
Provides the Imap host for this server, which is used for all access to mail storage and subscriptions.

Returns:
The ImapHost for this server.

getUserManager

UserManager getUserManager()
Provides the UserManager for this session, to allow session to validate logins.

Returns:
The UserManager for this session.

getClientHostname

String getClientHostname()
Returns:
The hostname of the connected client.

getClientIP

String getClientIP()
Returns:
The IP address of the connected client.

getState

ImapSessionState getState()
Returns:
Returns the current state of this session.

setAuthenticated

void setAuthenticated(GreenMailUser user)
Moves the session into ImapSessionState.AUTHENTICATED state with the supplied user.

Parameters:
user - The user who is authenticated for this session.

getUser

GreenMailUser getUser()
Provides the authenticated user for this session, or null if this session is not in ImapSessionState.AUTHENTICATED or ImapSessionState.SELECTED state.

Returns:
The user authenticated for this session

setSelected

void setSelected(MailFolder folder,
                 boolean readOnly)
Moves this session into ImapSessionState.SELECTED state and sets the supplied mailbox to be the currently selected mailbox.

Parameters:
folder - The selected mailbox.
readOnly - If true, the selection is set to be read only.

deselect

void deselect()
Moves the session out of ImapSessionState.SELECTED state and back into ImapSessionState.AUTHENTICATED state. The selected mailbox is cleared.


getSelected

ImapSessionFolder getSelected()
Provides the selected mailbox for this session, or null if this session is not in ImapSessionState.SELECTED state.

Returns:
the currently selected mailbox.

unsolicitedResponses

void unsolicitedResponses(ImapResponse request,
                          boolean omitExpunged)
                          throws FolderException
Throws:
FolderException