Class AbstractEmailMessageHandler
java.lang.Object
org.alfresco.email.server.handler.AbstractEmailMessageHandler
- All Implemented Interfaces:
EmailMessageHandler
- Direct Known Subclasses:
AbstractForumEmailMessageHandler,FolderEmailMessageHandler
Abstract class implements common logic for processing email messages.
- Since:
- 2.2
- Author:
- maxim
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected NodeRefaddAttachment(NodeService nodeService, NodeRef folder, NodeRef mainContentNode, String fileName) Adds new node into Alfresco repository and mark its as an attachment.protected voidaddAttachments(NodeRef spaceNodeRef, NodeRef nodeRef, EmailMessage message) Extracts the attachments from the given message and adds them to the space.protected NodeRefaddContentNode(NodeService nodeService, NodeRef parent, String name, boolean overwrite) Add new node into Alfresco repository with specified parameters.protected NodeRefaddContentNode(NodeService nodeService, NodeRef parent, String name, QName assocType, boolean overwrite) Add new node into Alfresco repository with specified parameters.protected voidaddEmailedAspect(NodeRef nodeRef, EmailMessage message) Add emailed aspect to the specified node.static StringencodeSubject(String subject) Subject field is used as name of the content, so we need to replace characters that are forbidden in file names.protected ContentServiceprotected DictionaryServiceprotected MimetypeServiceprotected NodeServicevoidsetContentService(ContentService contentService) voidsetDictionaryService(DictionaryService dictionaryService) voidsetMimetypeService(MimetypeService mimetypeService) voidsetNodeService(NodeService nodeService) protected voidwriteContent(NodeRef nodeRef, InputStream content, String mimetype, String encoding) Write content to the node from InputStream.protected voidwriteContent(NodeRef nodeRef, String content, 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, waitMethods inherited from interface org.alfresco.email.server.handler.EmailMessageHandler
processMessage
-
Constructor Details
-
AbstractEmailMessageHandler
public AbstractEmailMessageHandler()
-
-
Method Details
-
getContentService
- Returns:
- Alfresco Content Service.
-
setContentService
- Parameters:
contentService- Alfresco Content Service.
-
getDictionaryService
- Returns:
- the Alfresco dictionary service
-
setDictionaryService
- Parameters:
dictionaryService- Alfresco dictionary service
-
getNodeService
- Returns:
- Alfresco Node Service.
-
setNodeService
- Parameters:
nodeService- Alfresco Node Service.
-
getMimetypeService
- Returns:
- the service used to determine mimeypte and encoding
-
setMimetypeService
- Parameters:
mimetypeService- the the service to determine mimetype and encoding
-
writeContent
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
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
Add emailed aspect to the specified node.- Parameters:
nodeRef- Target node.message- Mail message that will be used for extracting necessary information
-
addContentNode
protected NodeRef addContentNode(NodeService nodeService, NodeRef parent, String name, 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 NodeRef addContentNode(NodeService nodeService, NodeRef parent, 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 NodeRef addAttachment(NodeService nodeService, NodeRef folder, NodeRef mainContentNode, 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
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
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
-