public interface ImapHostManager
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 2221Modifier and Type | Method and Description |
---|---|
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<StoredMessage> |
getAllMessages()
Returns all messages.
|
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.
|
Store |
getStore()
Gets the store underneath.
|
Collection<MailFolder> |
listMailboxes(GreenMailUser user,
String mailboxPattern)
Returns an collection of mailboxes on this host.
|
Collection<MailFolder> |
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.
|
List<StoredMessage> 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 targetFolderException
- 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 targetFolderException
- 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 nameFolderException
- 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<MailFolder> 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<MailFolder> 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
Store getStore()
Copyright © 2006–2017 Icegreen Technologies. All rights reserved.