Package org.apache.commons.mail.util
Class MimeMessageParser
- java.lang.Object
-
- org.apache.commons.mail.util.MimeMessageParser
-
public class MimeMessageParser extends java.lang.Object
Parses a MimeMessage and stores the individual parts such a plain text, HTML text and attachments.- Since:
- 1.3
-
-
Constructor Summary
Constructors Constructor Description MimeMessageParser(javax.mail.internet.MimeMessage message)Constructs an instance with the MimeMessage to be extracted.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected javax.activation.DataSourcecreateDataSource(javax.mail.Multipart parent, javax.mail.internet.MimePart part)Parses the MimePart to create a DataSource.javax.activation.DataSourcefindAttachmentByCid(java.lang.String cid)Find an attachment using its content-id.javax.activation.DataSourcefindAttachmentByName(java.lang.String name)Find an attachment using its name.java.util.List<javax.activation.DataSource>getAttachmentList()java.util.List<javax.mail.Address>getBcc()java.util.List<javax.mail.Address>getCc()java.util.Collection<java.lang.String>getContentIds()Returns a collection of all content-ids in the parsed message.protected java.lang.StringgetDataSourceName(javax.mail.Part part, javax.activation.DataSource dataSource)Determines the name of the data source if it is not already set.java.lang.StringgetFrom()java.lang.StringgetHtmlContent()javax.mail.internet.MimeMessagegetMimeMessage()java.lang.StringgetPlainContent()java.lang.StringgetReplyTo()java.lang.StringgetSubject()java.util.List<javax.mail.Address>getTo()booleanhasAttachments()booleanhasHtmlContent()booleanhasPlainContent()booleanisMultipart()MimeMessageParserparse()Does the actual extraction.protected voidparse(javax.mail.Multipart parent, javax.mail.internet.MimePart part)Extracts the content of a MimeMessage recursively.
-
-
-
Constructor Detail
-
MimeMessageParser
public MimeMessageParser(javax.mail.internet.MimeMessage message)
Constructs an instance with the MimeMessage to be extracted.- Parameters:
message- the message to parse
-
-
Method Detail
-
parse
public MimeMessageParser parse() throws java.lang.Exception
Does the actual extraction.- Returns:
- this instance
- Throws:
java.lang.Exception- parsing the mime message failed
-
getTo
public java.util.List<javax.mail.Address> getTo() throws java.lang.Exception
- Returns:
- the 'to' recipients of the message
- Throws:
java.lang.Exception- determining the recipients failed
-
getCc
public java.util.List<javax.mail.Address> getCc() throws java.lang.Exception
- Returns:
- the 'cc' recipients of the message
- Throws:
java.lang.Exception- determining the recipients failed
-
getBcc
public java.util.List<javax.mail.Address> getBcc() throws java.lang.Exception
- Returns:
- the 'bcc' recipients of the message
- Throws:
java.lang.Exception- determining the recipients failed
-
getFrom
public java.lang.String getFrom() throws java.lang.Exception
- Returns:
- the 'from' field of the message
- Throws:
java.lang.Exception- parsing the mime message failed
-
getReplyTo
public java.lang.String getReplyTo() throws java.lang.Exception
- Returns:
- the 'replyTo' address of the email
- Throws:
java.lang.Exception- parsing the mime message failed
-
getSubject
public java.lang.String getSubject() throws java.lang.Exception
- Returns:
- the mail subject
- Throws:
java.lang.Exception- parsing the mime message failed
-
parse
protected void parse(javax.mail.Multipart parent, javax.mail.internet.MimePart part) throws javax.mail.MessagingException, java.io.IOException
Extracts the content of a MimeMessage recursively.- Parameters:
parent- the parent multi-partpart- the current MimePart- Throws:
javax.mail.MessagingException- parsing the MimeMessage failedjava.io.IOException- parsing the MimeMessage failed
-
createDataSource
protected javax.activation.DataSource createDataSource(javax.mail.Multipart parent, javax.mail.internet.MimePart part) throws javax.mail.MessagingException, java.io.IOException
Parses the MimePart to create a DataSource.- Parameters:
parent- the parent multi-partpart- the current part to be processed- Returns:
- the DataSource
- Throws:
javax.mail.MessagingException- creating the DataSource failedjava.io.IOException- creating the DataSource failed
-
getMimeMessage
public javax.mail.internet.MimeMessage getMimeMessage()
- Returns:
- Returns the mimeMessage.
-
isMultipart
public boolean isMultipart()
- Returns:
- Returns the isMultiPart.
-
getPlainContent
public java.lang.String getPlainContent()
- Returns:
- Returns the plainContent if any
-
getAttachmentList
public java.util.List<javax.activation.DataSource> getAttachmentList()
- Returns:
- Returns the attachmentList.
-
getContentIds
public java.util.Collection<java.lang.String> getContentIds()
Returns a collection of all content-ids in the parsed message.The content-ids are stripped of any angle brackets, i.e. "part1" instead of "<part1>".
- Returns:
- the collection of content ids.
- Since:
- 1.3.4
-
getHtmlContent
public java.lang.String getHtmlContent()
- Returns:
- Returns the htmlContent if any
-
hasPlainContent
public boolean hasPlainContent()
- Returns:
- true if a plain content is available
-
hasHtmlContent
public boolean hasHtmlContent()
- Returns:
- true if HTML content is available
-
hasAttachments
public boolean hasAttachments()
- Returns:
- true if attachments are available
-
findAttachmentByName
public javax.activation.DataSource findAttachmentByName(java.lang.String name)
Find an attachment using its name.- Parameters:
name- the name of the attachment- Returns:
- the corresponding datasource or null if nothing was found
-
findAttachmentByCid
public javax.activation.DataSource findAttachmentByCid(java.lang.String cid)
Find an attachment using its content-id.The content-id must be stripped of any angle brackets, i.e. "part1" instead of "<part1>".
- Parameters:
cid- the content-id of the attachment- Returns:
- the corresponding datasource or null if nothing was found
- Since:
- 1.3.4
-
getDataSourceName
protected java.lang.String getDataSourceName(javax.mail.Part part, javax.activation.DataSource dataSource) throws javax.mail.MessagingException, java.io.UnsupportedEncodingException
Determines the name of the data source if it is not already set.- Parameters:
part- the mail partdataSource- the data source- Returns:
- the name of the data source or
nullif no name can be determined - Throws:
javax.mail.MessagingException- accessing the part failedjava.io.UnsupportedEncodingException- decoding the text failed
-
-