JavaTM 2 Platform
Ent. Ed. v1.4

javax.mail.internet
Interface MimePart

All Superinterfaces:
Part
All Known Implementing Classes:
MimeBodyPart, MimeMessage

public interface MimePart
extends Part

The MimePart interface models an Entity as defined by MIME (RFC2045, Section 2.4).

MimePart extends the Part interface to add additional RFC822 and MIME specific semantics and attributes. It provides the base interface for the MimeMessage and MimeBodyPart classes


A note on RFC822 and MIME headers

RFC822 and MIME header fields must contain only US-ASCII characters. If a header contains non US-ASCII characters, it must be encoded as per the rules in RFC 2047. The MimeUtility class provided in this package can be used to to achieve this. Callers of the setHeader, addHeader, and addHeaderLine methods are responsible for enforcing the MIME requirements for the specified headers. In addition, these header fields must be folded (wrapped) before being sent if they exceed the line length limitation for the transport (1000 bytes for SMTP). Received headers may have been folded. The application is responsible for folding and unfolding headers as appropriate.

Author:
John Mani
See Also:
MimeUtility, Part

Field Summary
 
Fields inherited from interface javax.mail.Part
ATTACHMENT, INLINE
 
Method Summary
 void addHeaderLine(String line)
          Add a raw RFC822 header-line.
 Enumeration getAllHeaderLines()
          Get all header lines as an Enumeration of Strings.
 String getContentID()
          Get the Content-ID of this part.
 String[] getContentLanguage()
          Get the language tags specified in the Content-Language header of this MimePart.
 String getContentMD5()
          Get the Content-MD5 digest of this part.
 String getEncoding()
          Get the transfer encoding of this part.
 String getHeader(String name, String delimiter)
          Get the values of all header fields available for this header, returned as a single String, with the values separated by the delimiter.
 Enumeration getMatchingHeaderLines(String[] names)
          Get matching header lines as an Enumeration of Strings.
 Enumeration getNonMatchingHeaderLines(String[] names)
          Get non-matching header lines as an Enumeration of Strings.
 void setContentLanguage(String[] languages)
          Set the Content-Language header of this MimePart.
 void setContentMD5(String md5)
          Set the Content-MD5 of this part.
 void setText(String text)
          Convenience method that sets the given String as this part's content, with a MIME type of "text/plain".
 void setText(String text, String charset)
          Convenience method that sets the given String as this part's content, with a MIME type of "text/plain" and the specified charset.
 
Methods inherited from interface javax.mail.Part
addHeader, getAllHeaders, getContent, getContentType, getDataHandler, getDescription, getDisposition, getFileName, getHeader, getInputStream, getLineCount, getMatchingHeaders, getNonMatchingHeaders, getSize, isMimeType, removeHeader, setContent, setContent, setDataHandler, setDescription, setDisposition, setFileName, setHeader, writeTo
 

Method Detail

getHeader

public String getHeader(String name,
                        String delimiter)
                 throws MessagingException
Get the values of all header fields available for this header, returned as a single String, with the values separated by the delimiter. If the delimiter is null, only the first value is returned.

Parameters:
name - the name of this header
delimiter - delimiter between fields in returned string
Returns:
the value fields for all headers with this name
Throws:
MessagingException

addHeaderLine

public void addHeaderLine(String line)
                   throws MessagingException
Add a raw RFC822 header-line.

Throws:
IllegalWriteException - if the underlying implementation does not support modification
IllegalStateException - if this Part is obtained from a READ_ONLY folder
MessagingException

getAllHeaderLines

public Enumeration getAllHeaderLines()
                              throws MessagingException
Get all header lines as an Enumeration of Strings. A Header line is a raw RFC822 header-line, containing both the "name" and "value" field.

Throws:
MessagingException

getMatchingHeaderLines

public Enumeration getMatchingHeaderLines(String[] names)
                                   throws MessagingException
Get matching header lines as an Enumeration of Strings. A Header line is a raw RFC822 header-line, containing both the "name" and "value" field.

Throws:
MessagingException

getNonMatchingHeaderLines

public Enumeration getNonMatchingHeaderLines(String[] names)
                                      throws MessagingException
Get non-matching header lines as an Enumeration of Strings. A Header line is a raw RFC822 header-line, containing both the "name" and "value" field.

Throws:
MessagingException

getEncoding

public String getEncoding()
                   throws MessagingException
Get the transfer encoding of this part.

Returns:
content-transfer-encoding
Throws:
MessagingException

getContentID

public String getContentID()
                    throws MessagingException
Get the Content-ID of this part. Returns null if none present.

Returns:
content-ID
Throws:
MessagingException

getContentMD5

public String getContentMD5()
                     throws MessagingException
Get the Content-MD5 digest of this part. Returns null if none present.

Returns:
content-MD5
Throws:
MessagingException

setContentMD5

public void setContentMD5(String md5)
                   throws MessagingException
Set the Content-MD5 of this part.

Parameters:
md5 - the MD5 value
Throws:
IllegalWriteException - if the underlying implementation does not support modification
IllegalStateException - if this Part is obtained from a READ_ONLY folder
MessagingException

getContentLanguage

public String[] getContentLanguage()
                            throws MessagingException
Get the language tags specified in the Content-Language header of this MimePart. The Content-Language header is defined by RFC 1766. Returns null if this header is not available.

Throws:
MessagingException

setContentLanguage

public void setContentLanguage(String[] languages)
                        throws MessagingException
Set the Content-Language header of this MimePart. The Content-Language header is defined by RFC1766.

Parameters:
languages - array of language tags
Throws:
IllegalWriteException - if the underlying implementation does not support modification
IllegalStateException - if this Part is obtained from a READ_ONLY folder
MessagingException

setText

public void setText(String text)
             throws MessagingException
Convenience method that sets the given String as this part's content, with a MIME type of "text/plain". If the string contains non US-ASCII characters. it will be encoded using the platform's default charset. The charset is also used to set the "charset" parameter.

Note that there may be a performance penalty if text is large, since this method may have to scan all the characters to determine what charset to use.

If the charset is already known, use the setText() version that takes the charset parameter.

Specified by:
setText in interface Part
Parameters:
text - The text that is the Message's content.
Throws:
MessagingException
See Also:
setText(String text, String charset)

setText

public void setText(String text,
                    String charset)
             throws MessagingException
Convenience method that sets the given String as this part's content, with a MIME type of "text/plain" and the specified charset. The given Unicode string will be charset-encoded using the specified charset. The charset is also used to set "charset" parameter.

Throws:
MessagingException

JavaTM 2 Platform
Ent. Ed. v1.4

Submit a bug or feature

Copyright 2003 Sun Microsystems, Inc. All rights reserved.