Class AbstractEmailMessageHandler
- java.lang.Object
-
- org.alfresco.email.server.handler.AbstractEmailMessageHandler
-
- All Implemented Interfaces:
EmailMessageHandler
- Direct Known Subclasses:
AbstractForumEmailMessageHandler,FolderEmailMessageHandler
public abstract class AbstractEmailMessageHandler extends java.lang.Object implements EmailMessageHandler
Abstract class implements common logic for processing email messages.- Since:
- 2.2
- Author:
- maxim
-
-
Constructor Summary
Constructors Constructor Description AbstractEmailMessageHandler()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected org.alfresco.service.cmr.repository.NodeRefaddAttachment(org.alfresco.service.cmr.repository.NodeService nodeService, org.alfresco.service.cmr.repository.NodeRef folder, org.alfresco.service.cmr.repository.NodeRef mainContentNode, java.lang.String fileName)Adds new node into Alfresco repository and mark its as an attachment.protected voidaddAttachments(org.alfresco.service.cmr.repository.NodeRef spaceNodeRef, org.alfresco.service.cmr.repository.NodeRef nodeRef, EmailMessage message)Extracts the attachments from the given message and adds them to the space.protected org.alfresco.service.cmr.repository.NodeRefaddContentNode(org.alfresco.service.cmr.repository.NodeService nodeService, org.alfresco.service.cmr.repository.NodeRef parent, java.lang.String name, boolean overwrite)Add new node into Alfresco repository with specified parameters.protected org.alfresco.service.cmr.repository.NodeRefaddContentNode(org.alfresco.service.cmr.repository.NodeService nodeService, org.alfresco.service.cmr.repository.NodeRef parent, java.lang.String name, org.alfresco.service.namespace.QName assocType, boolean overwrite)Add new node into Alfresco repository with specified parameters.protected voidaddEmailedAspect(org.alfresco.service.cmr.repository.NodeRef nodeRef, EmailMessage message)Add emailed aspect to the specified node.static java.lang.StringencodeSubject(java.lang.String subject)Subject field is used as name of the content, so we need to replace characters that are forbidden in file names.protected ContentServicegetContentService()protected org.alfresco.service.cmr.dictionary.DictionaryServicegetDictionaryService()protected org.alfresco.service.cmr.repository.MimetypeServicegetMimetypeService()protected org.alfresco.service.cmr.repository.NodeServicegetNodeService()voidsetContentService(ContentService contentService)voidsetDictionaryService(org.alfresco.service.cmr.dictionary.DictionaryService dictionaryService)voidsetMimetypeService(org.alfresco.service.cmr.repository.MimetypeService mimetypeService)voidsetNodeService(org.alfresco.service.cmr.repository.NodeService nodeService)protected voidwriteContent(org.alfresco.service.cmr.repository.NodeRef nodeRef, java.io.InputStream content, java.lang.String mimetype, java.lang.String encoding)Write content to the node from InputStream.protected voidwriteContent(org.alfresco.service.cmr.repository.NodeRef nodeRef, java.lang.String content, java.lang.String mimetype)Write the string as content to the node.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.alfresco.email.server.handler.EmailMessageHandler
processMessage
-
-
-
-
Method Detail
-
getContentService
protected ContentService getContentService()
- Returns:
- Alfresco Content Service.
-
setContentService
public void setContentService(ContentService contentService)
- Parameters:
contentService- Alfresco Content Service.
-
getDictionaryService
protected org.alfresco.service.cmr.dictionary.DictionaryService getDictionaryService()
- Returns:
- the Alfresco dictionary service
-
setDictionaryService
public void setDictionaryService(org.alfresco.service.cmr.dictionary.DictionaryService dictionaryService)
- Parameters:
dictionaryService- Alfresco dictionary service
-
getNodeService
protected org.alfresco.service.cmr.repository.NodeService getNodeService()
- Returns:
- Alfresco Node Service.
-
setNodeService
public void setNodeService(org.alfresco.service.cmr.repository.NodeService nodeService)
- Parameters:
nodeService- Alfresco Node Service.
-
getMimetypeService
protected org.alfresco.service.cmr.repository.MimetypeService getMimetypeService()
- Returns:
- the service used to determine mimeypte and encoding
-
setMimetypeService
public void setMimetypeService(org.alfresco.service.cmr.repository.MimetypeService mimetypeService)
- Parameters:
mimetypeService- the the service to determine mimetype and encoding
-
writeContent
protected void writeContent(org.alfresco.service.cmr.repository.NodeRef nodeRef, java.lang.String content, java.lang.String mimetype)Write the string as content to the node.- Parameters:
nodeRef- Target node.content- Text for writting.mimetype- MIME content type. For exaple you can set this parameter to "text/html" or "text/xml", etc.
-
writeContent
protected void writeContent(org.alfresco.service.cmr.repository.NodeRef nodeRef, java.io.InputStream content, java.lang.String mimetype, java.lang.String encoding)Write content to the node from InputStream.- Parameters:
nodeRef- Target node.content- Content stream.mimetype- MIME content type.encoding- Encoding. Can be null for text based content, n which case the best guess.
-
addEmailedAspect
protected void addEmailedAspect(org.alfresco.service.cmr.repository.NodeRef nodeRef, EmailMessage message)Add emailed aspect to the specified node.- Parameters:
nodeRef- Target node.message- Mail message that will be used for extracting necessary information
-
addContentNode
protected org.alfresco.service.cmr.repository.NodeRef addContentNode(org.alfresco.service.cmr.repository.NodeService nodeService, org.alfresco.service.cmr.repository.NodeRef parent, java.lang.String name, org.alfresco.service.namespace.QName assocType, boolean overwrite)Add new node into Alfresco repository with specified parameters. Node content isn't added.- Parameters:
nodeService- Alfresco Node Serviceparent- Parent nodename- Name of the new nodeoverwrite- if true then overwrite an existing node with the same name. if false the name is changed to make it unique.assocType- Association type that should be set between parent node and the new one.- Returns:
- Reference to created node
-
addContentNode
protected org.alfresco.service.cmr.repository.NodeRef addContentNode(org.alfresco.service.cmr.repository.NodeService nodeService, org.alfresco.service.cmr.repository.NodeRef parent, java.lang.String name, boolean overwrite)Add new node into Alfresco repository with specified parameters. Node content isn't added. New node will be created with ContentModel.ASSOC_CONTAINS association with parent.- Parameters:
nodeService- Alfresco Node Serviceparent- Parent nodename- Name of the new nodeoverwrite- whether a new node should overwrite an existing node with the same name or have its name mangled to be alongside the existing node.- Returns:
- Reference to created node
-
addAttachment
protected org.alfresco.service.cmr.repository.NodeRef addAttachment(org.alfresco.service.cmr.repository.NodeService nodeService, org.alfresco.service.cmr.repository.NodeRef folder, org.alfresco.service.cmr.repository.NodeRef mainContentNode, java.lang.String fileName)Adds new node into Alfresco repository and mark its as an attachment.- Parameters:
nodeService- Alfresco Node Service.folder- Space/Folder to add.mainContentNode- Main content node. Any mail is added into Alfresco as one main content node and several its attachments. Each attachment related with its main node.fileName- File name for the attachment.- Returns:
- Reference to created node.
-
addAttachments
protected void addAttachments(org.alfresco.service.cmr.repository.NodeRef spaceNodeRef, org.alfresco.service.cmr.repository.NodeRef nodeRef, EmailMessage message)Extracts the attachments from the given message and adds them to the space. All attachments are linked back to the original node that they are attached to.- Parameters:
spaceNodeRef- the space to add the documents intonodeRef- the node to which the documents will be attachedmessage- the email message
-
encodeSubject
public static java.lang.String encodeSubject(java.lang.String subject)
Subject field is used as name of the content, so we need to replace characters that are forbidden in file names. Trims whitespace Replaces characters \/*|:"<>? with their hex values.- Parameters:
subject- the string of the email subject- Returns:
- filename
-
-