Class MIMEMessage

java.lang.Object
org.jvnet.mimepull.MIMEMessage
All Implemented Interfaces:
Closeable, AutoCloseable

public class MIMEMessage extends Object implements Closeable
Represents MIME message. MIME message parsing is done lazily using a pull parser.
  • Field Details

  • Constructor Details

    • MIMEMessage

      public MIMEMessage(InputStream in, String boundary)
      Parameters:
      in - MIME message stream
      boundary - the separator for parts(pass it without --)
      See Also:
    • MIMEMessage

      public MIMEMessage(InputStream in, String boundary, MIMEConfig config)
      Creates a MIME message from the content's stream. The content stream is closed when EOF is reached.
      Parameters:
      in - MIME message stream
      boundary - the separator for parts(pass it without --)
      config - various configuration parameters
  • Method Details

    • getAttachments

      public List<MIMEPart> getAttachments()
      Gets all the attachments by parsing the entire MIME message. Avoid this if possible since it is an expensive operation.
      Returns:
      list of attachments.
    • getPart

      public MIMEPart getPart(int index)
      Creates nth attachment lazily. It doesn't validate if the message has so many attachments. To do the validation, the message needs to be parsed. The parsing of the message is done lazily and is done while reading the bytes of the part.
      Parameters:
      index - sequential order of the part. starts with zero.
      Returns:
      attachemnt part
    • getPart

      public MIMEPart getPart(String contentId)
      Creates a lazy attachment for a given Content-ID. It doesn't validate if the message contains an attachment with the given Content-ID. To do the validation, the message needs to be parsed. The parsing of the message is done lazily and is done while reading the bytes of the part.
      Parameters:
      contentId - Content-ID of the part, expects Content-ID without <, >
      Returns:
      attachemnt part
    • getDecodedCidPart

      private MIMEPart getDecodedCidPart(String cid)
    • parseAll

      public final void parseAll()
      Parses the whole MIME message eagerly
    • close

      public void close()
      Closes all parsed parts and cleans up any resources that are held by this MIMEMessage (for e.g. deletes temp files). This method is safe to call even if parsing of message failed.

      Does not throw MIMEParsingException if an error occurred during closing a MIME part. The exception (if any) is still logged.

      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
    • close

      private void close(Collection<MIMEPart> parts)
    • makeProgress

      public boolean makeProgress()
      Parses the MIME message in a pull fashion.
      Returns:
      false if the parsing is completed.