Package javax.mail

Interface Part

  • All Known Subinterfaces:
    MimePart
    All Known Implementing Classes:
    BodyPart, IMAPBodyPart, IMAPMessage, MaildirMessage, MboxMessage, Message, MimeBodyPart, MimeMessage, NNTPMessage, POP3Message, gnu.mail.providers.ReadOnlyMessage

    public interface Part
    A part consists of a set of attributes and a content. Some of the attributes provide metadata describing the content and its encoding, others may describe how to process the part. The Part interface is the common base interface for Messages and BodyParts.

    The content of a part is available in various forms:

    • As a data handler, using the getDataHandler method.
    • As an input stream, using the getInputStream method.
    • As a Java object, using the getContent method.
    The writeTo method can be used to write the part to a byte stream in mail-safe form suitable for transmission.

    In MIME terms, Part models an Entity (RFC 2045, Section 2.4).

    Version:
    1.4
    Author:
    Chris Burdess
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String ATTACHMENT
      This part should be presented as an attachment.
      static java.lang.String INLINE
      This part should be presented inline.
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void addHeader​(java.lang.String name, java.lang.String value)
      Adds the specified value to the existing values for this header name.
      java.util.Enumeration getAllHeaders()
      Returns all the headers from this part.
      java.lang.Object getContent()
      Returns the content of this part as a Java object.
      java.lang.String getContentType()
      Returns the content-type of the content of this part, or null if the content-type could not be determined.
      javax.activation.DataHandler getDataHandler()
      Returns a data handler for the content of this part.
      java.lang.String getDescription()
      Returns the description of this part.
      java.lang.String getDisposition()
      Returns the disposition of this part.
      java.lang.String getFileName()
      Returns the filename associated with this part, if available.
      java.lang.String[] getHeader​(java.lang.String name)
      Returns all the values for the specified header name, or null if no such headers are available.
      java.io.InputStream getInputStream()
      Returns an input stream for reading the content of this part.
      int getLineCount()
      Returns the number of lines in the content of this part, or -1 if the number cannot be determined.
      java.util.Enumeration getMatchingHeaders​(java.lang.String[] names)
      Returns the matching headers from this part.
      java.util.Enumeration getNonMatchingHeaders​(java.lang.String[] names)
      Returns the non-matching headers from this part.
      int getSize()
      Returns the size of the content of this part in bytes, or -1 if the size cannot be determined.
      boolean isMimeType​(java.lang.String mimeType)
      Is this part of the specified MIME type? This method compares only the primary type and subtype.
      void removeHeader​(java.lang.String name)
      Removes all headers of the specified name.
      void setContent​(java.lang.Object obj, java.lang.String type)
      Sets the content of this part using the specified object.
      void setContent​(Multipart mp)
      Sets the multipart content of this part.
      void setDataHandler​(javax.activation.DataHandler dh)
      Sets the content of this part using the specified data handler.
      void setDescription​(java.lang.String description)
      Sets the description of this part.
      void setDisposition​(java.lang.String disposition)
      Sets the disposition of this part.
      void setFileName​(java.lang.String filename)
      Sets the filename associated with this part.
      void setHeader​(java.lang.String name, java.lang.String value)
      Sets the value for the specified header name.
      void setText​(java.lang.String text)
      Sets the textual content of this part, using a MIME type of text/plain.
      void writeTo​(java.io.OutputStream os)
      Writes this part to the specified byte stream.
    • Field Detail

      • ATTACHMENT

        static final java.lang.String ATTACHMENT
        This part should be presented as an attachment.
        See Also:
        Constant Field Values
      • INLINE

        static final java.lang.String INLINE
        This part should be presented inline.
        See Also:
        Constant Field Values
    • Method Detail

      • getSize

        int getSize()
             throws MessagingException
        Returns the size of the content of this part in bytes, or -1 if the size cannot be determined.

        Note that the size may not be an exact measure of the content size, but will be suitable for display in a user interface to give the user an idea of the size of this part.

        Throws:
        MessagingException
      • getLineCount

        int getLineCount()
                  throws MessagingException
        Returns the number of lines in the content of this part, or -1 if the number cannot be determined. Note that this number may not be an exact measure.
        Throws:
        MessagingException
      • getContentType

        java.lang.String getContentType()
                                 throws MessagingException
        Returns the content-type of the content of this part, or null if the content-type could not be determined.

        The MIME typing system is used to name content-types.

        Throws:
        MessagingException
      • isMimeType

        boolean isMimeType​(java.lang.String mimeType)
                    throws MessagingException
        Is this part of the specified MIME type? This method compares only the primary type and subtype. The parameters of the content types are ignored.

        If the subtype of mimeType is the special character '*', then the subtype is ignored during the comparison.

        Throws:
        MessagingException
      • getDisposition

        java.lang.String getDisposition()
                                 throws MessagingException
        Returns the disposition of this part. The disposition describes how the part should be presented to the user (see RFC 2183). Return values are not case sensitive.
        Throws:
        MessagingException
      • setDisposition

        void setDisposition​(java.lang.String disposition)
                     throws MessagingException
        Sets the disposition of this part.
        Parameters:
        disposition - the disposition of this part
        Throws:
        IllegalWriteException - if the underlying implementation does not support modification of this header
        java.lang.IllegalStateException - if this part is obtained from a READ_ONLY folder
        MessagingException
      • setDescription

        void setDescription​(java.lang.String description)
                     throws MessagingException
        Sets the description of this part.
        Parameters:
        description - the description of this part
        Throws:
        IllegalWriteException - if the underlying implementation does not support modification of this header
        java.lang.IllegalStateException - if this Part is obtained from a READ_ONLY folder
        MessagingException
      • setFileName

        void setFileName​(java.lang.String filename)
                  throws MessagingException
        Sets the filename associated with this part.
        Parameters:
        filename - the filename to associate with this part
        Throws:
        IllegalWriteException - if the underlying implementation does not support modification of this header
        java.lang.IllegalStateException - if this Part is obtained from a READ_ONLY folder
        MessagingException
      • getInputStream

        java.io.InputStream getInputStream()
                                    throws java.io.IOException,
                                           MessagingException
        Returns an input stream for reading the content of this part. Any mail-specific transfer encodings will be decoded by the implementation.
        Throws:
        java.io.IOException - when a data handler error occurs
        MessagingException
      • getContent

        java.lang.Object getContent()
                             throws java.io.IOException,
                                    MessagingException
        Returns the content of this part as a Java object. The type of the returned object is of course dependent on the content itself. For instance, the object returned for "text/plain" content is usually a String object. The object returned for a "multipart" content is always a Multipart subclass. For content-types that are unknown to the data handler system, an input stream is returned.
        Throws:
        java.io.IOException - when a data handler error occurs
        MessagingException
      • setDataHandler

        void setDataHandler​(javax.activation.DataHandler dh)
                     throws MessagingException
        Sets the content of this part using the specified data handler.
        Parameters:
        dh - the data handler for the content
        Throws:
        IllegalWriteException - if the underlying implementation does not support modification
        java.lang.IllegalStateException - if this part is obtained from a READ_ONLY folder
        MessagingException
      • setContent

        void setContent​(java.lang.Object obj,
                        java.lang.String type)
                 throws MessagingException
        Sets the content of this part using the specified object. The type of the supplied argument must be known to the data handler system.
        Parameters:
        obj - a Java object
        type - the MIME content-type of this object
        Throws:
        IllegalWriteException - if the underlying implementation does not support modification
        java.lang.IllegalStateException - if this part is obtained from a READ_ONLY folder
        MessagingException
      • setText

        void setText​(java.lang.String text)
              throws MessagingException
        Sets the textual content of this part, using a MIME type of text/plain.
        Parameters:
        text - the textual content
        Throws:
        IllegalWriteException - if the underlying implementation does not support modification
        java.lang.IllegalStateException - if this part is obtained from a READ_ONLY folder
        MessagingException
      • setContent

        void setContent​(Multipart mp)
                 throws MessagingException
        Sets the multipart content of this part.
        Parameters:
        mp - the multipart content
        Throws:
        IllegalWriteException - if the underlying implementation does not support modification
        java.lang.IllegalStateException - if this part is obtained from a READ_ONLY folder
        MessagingException
      • writeTo

        void writeTo​(java.io.OutputStream os)
              throws java.io.IOException,
                     MessagingException
        Writes this part to the specified byte stream.
        Throws:
        java.io.IOException - if an error occurs writing to the stream or if an error occurs in the data handler system.
        MessagingException - if an error occurs fetching the data to be written
      • getHeader

        java.lang.String[] getHeader​(java.lang.String name)
                              throws MessagingException
        Returns all the values for the specified header name, or null if no such headers are available.
        Parameters:
        name - the header name
        Throws:
        MessagingException
      • setHeader

        void setHeader​(java.lang.String name,
                       java.lang.String value)
                throws MessagingException
        Sets the value for the specified header name.
        Parameters:
        name - the header name
        value - the new value
        Throws:
        IllegalWriteException - if the underlying implementation does not support modification of this header
        java.lang.IllegalStateException - if this part is obtained from a READ_ONLY folder
        MessagingException
      • addHeader

        void addHeader​(java.lang.String name,
                       java.lang.String value)
                throws MessagingException
        Adds the specified value to the existing values for this header name.
        Parameters:
        name - the header name
        value - the value to add
        Throws:
        IllegalWriteException - if the underlying implementation does not support modification of this header
        java.lang.IllegalStateException - if this part is obtained from a READ_ONLY folder
        MessagingException
      • removeHeader

        void removeHeader​(java.lang.String name)
                   throws MessagingException
        Removes all headers of the specified name.
        Parameters:
        name - the header name
        Throws:
        IllegalWriteException - if the underlying implementation does not support modification of this header
        java.lang.IllegalStateException - if this part is obtained from a READ_ONLY folder
        MessagingException
      • getAllHeaders

        java.util.Enumeration getAllHeaders()
                                     throws MessagingException
        Returns all the headers from this part.
        Returns:
        an enumeration of Header
        Throws:
        MessagingException
      • getMatchingHeaders

        java.util.Enumeration getMatchingHeaders​(java.lang.String[] names)
                                          throws MessagingException
        Returns the matching headers from this part.
        Parameters:
        names - the header names to match
        Returns:
        an enumeration of Header
        Throws:
        MessagingException
      • getNonMatchingHeaders

        java.util.Enumeration getNonMatchingHeaders​(java.lang.String[] names)
                                             throws MessagingException
        Returns the non-matching headers from this part.
        Parameters:
        names - the header names to ignore
        Returns:
        an enumeration of Header
        Throws:
        MessagingException