|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface ImapHostManager
A host machine that has an IMAP4rev1 messaging server. There should be one instance of this class per instance of James. An IMAP messaging system may span more than one host.
String
parameters representing mailbox names must be the
full hierarchical name of the target, with namespace, as used by the
specified user. Examples:
'#mail.Inbox' or '#shared.finance.Q2Earnings'.
An imap Host must keep track of existing and deleted mailboxes.
References: rfc 2060, rfc 2193, rfc 2221
Method Summary | |
---|---|
MailFolder |
createMailbox(GreenMailUser user,
String mailboxName)
Returns a reference to a newly created Mailbox. |
void |
createPrivateMailAccount(GreenMailUser user)
Registers a user with the ImapHost, creating a personal mail space and INBOX for that user. |
void |
deleteMailbox(GreenMailUser user,
String mailboxName)
Deletes an existing MailBox. |
List |
getAllMessages()
|
MailFolder |
getFolder(GreenMailUser user,
String mailboxName)
Returns a reference to an existing Mailbox. |
MailFolder |
getFolder(GreenMailUser user,
String mailboxName,
boolean mustExist)
Returns a reference to an existing Mailbox. |
char |
getHierarchyDelimiter()
Returns the hierarchy delimiter for mailboxes on this host. |
MailFolder |
getInbox(GreenMailUser user)
Returns a reference to the user's INBOX. |
Collection |
listMailboxes(GreenMailUser user,
String mailboxPattern)
Returns an collection of mailboxes on this host. |
Collection |
listSubscribedMailboxes(GreenMailUser user,
String mailboxPattern)
Returns an collection of mailboxes on this host. |
void |
renameMailbox(GreenMailUser user,
String oldMailboxName,
String newMailboxName)
Renames an existing MailBox. |
void |
subscribe(GreenMailUser user,
String mailbox)
Subscribes a user to a mailbox. |
void |
unsubscribe(GreenMailUser user,
String mailbox)
Unsubscribes from a given mailbox. |
Method Detail |
---|
List getAllMessages()
char getHierarchyDelimiter()
MailFolder getFolder(GreenMailUser user, String mailboxName)
user
- User making the request.mailboxName
- String name of the target.
MailFolder getFolder(GreenMailUser user, String mailboxName, boolean mustExist) throws FolderException
null
in
this case.
user
- User making the request.mailboxName
- String name of the target.mustExist
- Specified behaviour where a mailbox is missing or non-viewable.
FolderException
- if mailbox does not exist locally, and mustExist is true.MailFolder getInbox(GreenMailUser user) throws FolderException
createPrivateMailAccount(com.icegreen.greenmail.user.GreenMailUser)
method.
user
- The user making the request.
FolderException
- if the user doesn't have an inbox on this server.void createPrivateMailAccount(GreenMailUser user) throws FolderException
user
- The user to register with the Host.
FolderException
- if an error occurred creating the user account.MailFolder createMailbox(GreenMailUser user, String mailboxName) throws AuthorizationException, FolderException
user
- User making the request.mailboxName
- String name of the target
FolderException
- if mailbox already exists, locally or remotely,
or if mailbox cannot be created locally.
AuthorizationException
- if mailbox could be created locally but
user does not have create rights.void deleteMailbox(GreenMailUser user, String mailboxName) throws FolderException, AuthorizationException
user
- User making the request.mailboxName
- String name of the target
FolderException
- if mailbox does not exist locally or is any
identities INBOX.
AuthorizationException
- if mailbox exists locally but user does
not have rights to delete it.void renameMailbox(GreenMailUser user, String oldMailboxName, String newMailboxName) throws FolderException, AuthorizationException
user
- User making the request.oldMailboxName
- String name of the existing mailboxnewMailboxName
- String target new name
FolderException
- if mailbox does not exist locally, or there
is an existing mailbox with the new name.
AuthorizationException
- if user does not have rights to delete
the existing mailbox or create the new mailbox.Collection listMailboxes(GreenMailUser user, String mailboxPattern) throws FolderException
The reference name must be non-empty. If the mailbox name is empty, implementations must not throw either exception but must return a single String (described below) if the reference name specifies a local mailbox accessible to the user and a one-character String containing the hierarchy delimiter of the referenced namespace, otherwise.
Each String returned should be a space seperated triple of name attributes, hierarchy delimiter and full mailbox name. The mailbox name should include the namespace and be relative to the specified user.
RFC comments: Implementations SHOULD return quickly. They SHOULD NOT go to excess trouble to calculate\Marked or \Unmarked status.
JAMES comment: By elimination, implementations should usually include \Noinferiors or \Noselect, if appropriate. Also, if the reference name and mailbox name resolve to a single local mailbox, implementations should establish all attributes.
user
- User making the requestmailboxPattern
- String name of a mailbox possible including a
wildcard.
FolderException
- if the referenceName is not local or if
referenceName and mailbox name resolve to a single mailbox which does
not exist locally.Collection listSubscribedMailboxes(GreenMailUser user, String mailboxPattern) throws FolderException
The reference name must be non-empty. If the mailbox name is empty, implementations must not throw either exception but must return a single String (described below) if the reference name specifies a local mailbox accessible to the user and a one-character String containing the hierarchy delimiter of the referenced namespace, otherwise.
Each String returned should be a space seperated triple of name attributes, hierarchy delimiter and full mailbox name. The mailbox name should include the namespace and be relative to the specified user.
RFC comments: Implementations SHOULD return quickly. They SHOULD NOT go to excess trouble to calculate\Marked or \Unmarked status.
JAMES comment: By elimination, implementations should usually include \Noinferiors or \Noselect, if appropriate. Also, if the reference name and mailbox name resolve to a single local mailbox, implementations should establish all attributes.
Note that servers cannot unilaterally remove mailboxes from the subscribed list. A request that attempts to list a deleted, but subscribed, mailbox must return that mailbox with the \Noselect attribute.
user
- User making the requestmailboxPattern
- String name of a mailbox possible including a
wildcard.
FolderException
- if the referenceName is not local or if
referenceName and mailbox name resolve to a single mailbox which does
not exist locally.void subscribe(GreenMailUser user, String mailbox) throws FolderException
user
- User making the requestmailbox
- String representation of a mailbox name.
FolderException
- if the mailbox does not exist locally (for the user).void unsubscribe(GreenMailUser user, String mailbox) throws FolderException
user
- String representation of an email addressmailbox
- String representation of a mailbox name.
FolderException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |