Package org.apache.commons.mail.util

# Class MimeMessageParser

java.lang.Object
org.apache.commons.mail.util.MimeMessageParser

public class MimeMessageParser extends 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(MimeMessage mimeMessage)`
  Constructs an instance with the MimeMessage to be extracted.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected DataSource`
  `createDataSource(Multipart parent, MimePart part)`
  Parses the MimePart to create a DataSource.
  `DataSource`
  `findAttachmentByCid(String cid)`
  Find an attachment using its content-id.
  `DataSource`
  `findAttachmentByName(String name)`
  Find an attachment using its name.
  `List<DataSource>`
  `getAttachmentList()`
  Gets the attachment list.
  `List<Address>`
  `getBcc()`
  Gets the BCC Address list.
  `List<Address>`
  `getCc()`
  Gets the CC Address list.
  `Collection<String>`
  `getContentIds()`
  Returns a collection of all content-ids in the parsed message.
  `protected String`
  `getDataSourceName(Part part, DataSource dataSource)`
  Determines the name of the data source if it is not already set.
  `String`
  `getFrom()`
  Gets the FROM field.
  `String`
  `getHtmlContent()`
  Gets the htmlContent if any.
  `MimeMessage`
  `getMimeMessage()`
  Gets the MimeMessage.
  `String`
  `getPlainContent()`
  Gets the plain content if any.
  `String`
  `getReplyTo()`
  Gets the 'replyTo' address of the email.
  `String`
  `getSubject()`
  Gets the MIME message subject.
  `List<Address>`
  `getTo()`
  Gets the MIME message 'to' list.
  `boolean`
  `hasAttachments()`
  Tests if attachments are present.
  `boolean`
  `hasHtmlContent()`
  Tests is HTML content is present.
  `boolean`
  `hasPlainContent()`
  Tests is plain content is present.
  `boolean`
  `isMultipart()`
  Tests whether this is multipart.
  `MimeMessageParser`
  `parse()`
  Does the actual extraction.
  `protected void`
  `parse(Multipart parent, MimePart part)`
  Extracts the content of a MimeMessage recursively.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### MimeMessageParser

    public MimeMessageParser(MimeMessage mimeMessage)
    Constructs an instance with the MimeMessage to be extracted.
    Parameters:
      `mimeMessage` - the message to parse

- ## Method Details

  - ### createDataSource

    protected DataSource createDataSource(Multipart parent, MimePart part) throws MessagingException, IOException
    Parses the MimePart to create a DataSource.
    Parameters:
      `parent` - the parent multi-part
      `part` - the current part to be processed
    Returns:
      the DataSource
    Throws:
      `MessagingException` - creating the DataSource failed
      `IOException` - error getting InputStream or unsupported encoding

  - ### findAttachmentByCid

    public DataSource findAttachmentByCid(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

  - ### findAttachmentByName

    public DataSource findAttachmentByName(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

  - ### getAttachmentList

    public List<DataSource> getAttachmentList()
    Gets the attachment list.
    Returns:
      Returns the attachment list.

  - ### getBcc

    public List<Address> getBcc() throws MessagingException
    Gets the BCC Address list.
    Returns:
      the 'BCC' recipients of the message
    Throws:
      `MessagingException` - determining the recipients failed

  - ### getCc

    public List<Address> getCc() throws MessagingException
    Gets the CC Address list.
    Returns:
      the 'CC' recipients of the message
    Throws:
      `MessagingException` - determining the recipients failed

  - ### getContentIds

    public Collection<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

  - ### getDataSourceName

    protected String getDataSourceName(Part part, DataSource dataSource) throws MessagingException, UnsupportedEncodingException
    Determines the name of the data source if it is not already set.
    Parameters:
      `part` - the mail part
      `dataSource` - the data source
    Returns:
      the name of the data source or `null` if no name can be determined
    Throws:
      `MessagingException` - accessing the part failed
      `UnsupportedEncodingException` - decoding the text failed

  - ### getFrom

    public String getFrom() throws MessagingException
    Gets the FROM field.
    Returns:
      the FROM field of the message
    Throws:
      `MessagingException` - parsing the mime message failed

  - ### getHtmlContent

    public String getHtmlContent()
    Gets the htmlContent if any.
    Returns:
      Returns the htmlContent if any

  - ### getMimeMessage

    public MimeMessage getMimeMessage()
    Gets the MimeMessage.
    Returns:
      Returns the mimeMessage.

  - ### getPlainContent

    public String getPlainContent()
    Gets the plain content if any.
    Returns:
      Returns the plainContent if any

  - ### getReplyTo

    public String getReplyTo() throws MessagingException
    Gets the 'replyTo' address of the email.
    Returns:
      the 'replyTo' address of the email
    Throws:
      `MessagingException` - parsing the mime message failed

  - ### getSubject

    public String getSubject() throws MessagingException
    Gets the MIME message subject.
    Returns:
      the MIME message subject.
    Throws:
      `MessagingException` - parsing the mime message failed.

  - ### getTo

    public List<Address> getTo() throws MessagingException
    Gets the MIME message 'to' list.
    Returns:
      the 'to' recipients of the message.
    Throws:
      `MessagingException` - determining the recipients failed

  - ### hasAttachments

    public boolean hasAttachments()
    Tests if attachments are present.
    Returns:
      true if attachments are present.

  - ### hasHtmlContent

    public boolean hasHtmlContent()
    Tests is HTML content is present.
    Returns:
      true if HTML content is present.

  - ### hasPlainContent

    public boolean hasPlainContent()
    Tests is plain content is present.
    Returns:
      true if a plain content is present.

  - ### isMultipart

    public boolean isMultipart()
    Tests whether this is multipart.
    Returns:
      Returns the isMultiPart.

  - ### parse

    public MimeMessageParser parse() throws MessagingException, IOException
    Does the actual extraction.
    Returns:
      this instance
    Throws:
      `MessagingException` - parsing the mime message failed
      `IOException` - parsing the mime message failed

  - ### parse

    protected void parse(Multipart parent, MimePart part) throws MessagingException, IOException
    Extracts the content of a MimeMessage recursively.
    Parameters:
      `parent` - the parent multi-part
      `part` - the current MimePart
    Throws:
      `MessagingException` - parsing the MimeMessage failed
      `IOException` - parsing the MimeMessage failed