org.alfresco.repo.imap
Interface ImapService

All Known Implementing Classes:
ImapServiceImpl

public interface ImapService

Since:
3.2

Nested Class Summary
static class ImapService.EmailBodyFormat
          Helper enumeration to handle email body format text/html and text/plain for Alfresco/Share webapp
static class ImapService.FolderStatus
           
 
Method Summary
 com.icegreen.greenmail.store.SimpleStoredMessage createImapMessage(FileInfo messageFileInfo, boolean generateBody)
          Creates a MIME message for the given file
 void deleteMailbox(AlfrescoImapUser user, java.lang.String mailboxName)
          Deletes an existing MailBox.
 void expungeMessage(FileInfo messageFileInfo)
          Expunges (deletes) an IMAP message if its flags indicates
 org.alfresco.service.cmr.repository.NodeRef extractAttachments(org.alfresco.service.cmr.repository.NodeRef parentFolder, org.alfresco.service.cmr.repository.NodeRef messageFile, javax.mail.internet.MimeMessage originalMessage)
          Extract Attachments
 java.lang.String getDefaultEmailBodyTemplate(ImapService.EmailBodyFormat type)
          Returns a template for email body.
 java.lang.String getDefaultFromAddress()
           
 java.lang.String getDefaultToAddress()
           
 javax.mail.Flags getFlags(FileInfo messageFileInfo)
          Return flags that belong to the specified imap folder.
 ImapService.FolderStatus getFolderStatus(java.lang.String userName, org.alfresco.service.cmr.repository.NodeRef contextNodeRef, AlfrescoImapConst.ImapViewMode viewMode)
          Search for emails in specified folder depend on view mode.
 boolean getImapServerEnabled()
          Determines whether the IMAP server is enabled.
 com.icegreen.greenmail.store.SimpleStoredMessage getMessage(FileInfo messageFileInfo)
          Gets a cached MIME message for the given file, complete with message body.
 AlfrescoImapFolder getOrCreateMailbox(AlfrescoImapUser user, java.lang.String mailboxName, boolean mayExist, boolean mayCreate)
          Returns a reference to a mailbox, either creating a new one or retrieving an existing one.
 java.lang.String getRepositoryTemplatePath()
           
 java.lang.String getShareApplicationContextUrl()
           
 org.alfresco.service.cmr.repository.NodeRef getUserImapHomeRef(java.lang.String userName)
          Get the node ref of the user's imap home.
 java.lang.String getWebApplicationContextUrl()
           
 boolean isNodeInSitesLibrary(org.alfresco.service.cmr.repository.NodeRef nodeRef)
          Determine if provided node belongs to Sites.
 java.util.List listMailboxes(AlfrescoImapUser user, java.lang.String mailboxPattern, boolean listSubscribed)
          Returns an collection of mailboxes.
 void renameMailbox(AlfrescoImapUser user, java.lang.String oldMailboxName, java.lang.String newMailboxName)
          Renames an existing mailbox.
 void setFlag(FileInfo messageFileInfo, javax.mail.Flags.Flag flag, boolean value)
          Set flag to the specified imapFolder.
 void setFlags(FileInfo messageFileInfo, javax.mail.Flags flags, boolean value)
          Set flags to the specified imapFolder.
 void subscribe(AlfrescoImapUser user, java.lang.String mailbox)
          Subscribes a user to a mailbox.
 void unsubscribe(AlfrescoImapUser user, java.lang.String mailbox)
          Unsubscribes from a given mailbox.
 

Method Detail

listMailboxes

java.util.List listMailboxes(AlfrescoImapUser user,
                             java.lang.String mailboxPattern,
                             boolean listSubscribed)
Returns an collection of mailboxes. This method serves LIST command of the IMAP protocol.

Parameters:
user - User making the request
mailboxPattern - String name of a mailbox, possible including a wildcard.
listSubscribed - list only subscribed folders?
Returns:
Collection of mailboxes matching the pattern.

deleteMailbox

void deleteMailbox(AlfrescoImapUser user,
                   java.lang.String mailboxName)
Deletes an existing MailBox. Specified mailbox must already exist on this server, and the user must have rights to delete it. This method serves DELETE command of the IMAP protocol.

Parameters:
user - User making the request.
mailboxName - String name of the target,
Throws:
com.icegreen.greenmail.store.FolderException - if mailbox has a non-selectable store with children

renameMailbox

void renameMailbox(AlfrescoImapUser user,
                   java.lang.String oldMailboxName,
                   java.lang.String newMailboxName)
Renames an existing mailbox. The specified mailbox must already exist, the requested name must not exist already but must be able to be created and the user must have rights to delete the existing mailbox and create a mailbox with the new name. Any inferior hierarchical names must also be renamed. If INBOX is renamed, the contents of INBOX are transferred to a new mailbox with the new name, but INBOX is not deleted. If INBOX has inferior mailbox these are not renamed. This method serves RENAME command of the IMAP protocol.

Parameters:
user - User making the request.
oldMailboxName - String name of the existing folder
newMailboxName - String target new name

getOrCreateMailbox

AlfrescoImapFolder getOrCreateMailbox(AlfrescoImapUser user,
                                      java.lang.String mailboxName,
                                      boolean mayExist,
                                      boolean mayCreate)
Returns a reference to a mailbox, either creating a new one or retrieving an existing one.

Parameters:
user - User making the request.
mailboxName - String name of the target.
mayExist - Is the mailbox allowed to exist already? If false and the mailbox already exists, an error will be thrown
mayCreate - If the mailbox does not exist, can one be created? If false then an error is thrown if the folder does not exist
Returns:
a Mailbox reference

getUserImapHomeRef

org.alfresco.service.cmr.repository.NodeRef getUserImapHomeRef(java.lang.String userName)
Get the node ref of the user's imap home. Will create it on demand if it does not already exist.

Parameters:
userName - user name
Returns:
user IMAP home reference and create it if it doesn't exist.

subscribe

void subscribe(AlfrescoImapUser user,
               java.lang.String mailbox)
Subscribes a user to a mailbox. The mailbox must exist locally and the user must have rights to modify it.

This method serves SUBSCRIBE command of the IMAP protocol.

Parameters:
user - User making the request
mailbox - String representation of a mailbox name.

unsubscribe

void unsubscribe(AlfrescoImapUser user,
                 java.lang.String mailbox)
Unsubscribes from a given mailbox.

This method serves UNSUBSCRIBE command of the IMAP protocol.

Parameters:
user - User making the request
mailbox - String representation of a mailbox name.

getFolderStatus

ImapService.FolderStatus getFolderStatus(java.lang.String userName,
                                         org.alfresco.service.cmr.repository.NodeRef contextNodeRef,
                                         AlfrescoImapConst.ImapViewMode viewMode)
Search for emails in specified folder depend on view mode.

Parameters:
contextNodeRef - context folder for search
namePattern - name pattern for search
viewMode - (ARCHIVE, MIXED or VIRTUAL)
includeSubFolders - includeSubFolders
Returns:
list of emails that context folder contains.

getMessage

com.icegreen.greenmail.store.SimpleStoredMessage getMessage(FileInfo messageFileInfo)
                                                            throws javax.mail.MessagingException
Gets a cached MIME message for the given file, complete with message body.

Parameters:
messageFileInfo - imap file info.
Returns:
a message.
Throws:
javax.mail.MessagingException

createImapMessage

com.icegreen.greenmail.store.SimpleStoredMessage createImapMessage(FileInfo messageFileInfo,
                                                                   boolean generateBody)
                                                                   throws javax.mail.MessagingException
Creates a MIME message for the given file

Parameters:
messageFileInfo - imap file info.
generateBody - Should the message body be generated?
Returns:
a message.
Throws:
javax.mail.MessagingException

expungeMessage

void expungeMessage(FileInfo messageFileInfo)
Expunges (deletes) an IMAP message if its flags indicates

Parameters:
messageFileInfo - imap file info.

getFlags

javax.mail.Flags getFlags(FileInfo messageFileInfo)
Return flags that belong to the specified imap folder.

Parameters:
messageInfo - imap folder info.
Returns:
flags.

setFlags

void setFlags(FileInfo messageFileInfo,
              javax.mail.Flags flags,
              boolean value)
Set flags to the specified imapFolder.

Parameters:
messageInfo - FileInfo of imap Folder.
flags - flags to set.
value - value to set.

setFlag

void setFlag(FileInfo messageFileInfo,
             javax.mail.Flags.Flag flag,
             boolean value)
Set flag to the specified imapFolder.

Parameters:
messageInfo - FileInfo of imap Folder
flag - flag to set.
value - value value to set.

getDefaultFromAddress

java.lang.String getDefaultFromAddress()
Returns:
Default From addreses

getDefaultToAddress

java.lang.String getDefaultToAddress()
Returns:
Default To addreses

getRepositoryTemplatePath

java.lang.String getRepositoryTemplatePath()
Returns:
Path to the folder containing templates, that will be used for generating body of message in VIRTUAL and MIXED views.

getWebApplicationContextUrl

java.lang.String getWebApplicationContextUrl()
Returns:
Web application context url (e.g. http://localhost:8080/alfresco)

getShareApplicationContextUrl

java.lang.String getShareApplicationContextUrl()
Returns:
Web application context url for share (e.g. http://localhost:8080/share)

getDefaultEmailBodyTemplate

java.lang.String getDefaultEmailBodyTemplate(ImapService.EmailBodyFormat type)
Returns a template for email body. It is either classpath path or NodeRef.toString(). This method trying to find a template on the path in the repository first e.g. "Data Dictionary > IMAP Templates >". This path should be set as the property of the "imapHelper" bean. In this case it returns NodeRef.toString() of the template. If there are no template in the repository it returns a default template on the classpath.

Parameters:
Type - one of the possible body types text/html and text/plain
Returns:

isNodeInSitesLibrary

boolean isNodeInSitesLibrary(org.alfresco.service.cmr.repository.NodeRef nodeRef)
Determine if provided node belongs to Sites.

Parameters:
nodeRef - nodeRef
Returns:
true if provided node belongs to sites.

extractAttachments

org.alfresco.service.cmr.repository.NodeRef extractAttachments(org.alfresco.service.cmr.repository.NodeRef parentFolder,
                                                               org.alfresco.service.cmr.repository.NodeRef messageFile,
                                                               javax.mail.internet.MimeMessage originalMessage)
                                                               throws java.io.IOException,
                                                                      javax.mail.MessagingException
Extract Attachments

Parameters:
parentFolder -
messageFile - the node ref of the message.
originalMessage -
Throws:
java.io.IOException
javax.mail.MessagingException

getImapServerEnabled

boolean getImapServerEnabled()
Determines whether the IMAP server is enabled.

Returns:
true if enabled


Copyright © 2005 - 2010 Alfresco Software, Inc. All Rights Reserved.