This documentation differs from the official API. Jadeite adds extra features to the API including: variable font sizes, constructions examples, placeholders for classes and methods, and auto-generated “See Also” links. Additionally it is missing some items found in standard Javadoc documentation, including: generics type information, “Deprecated” tags and comments, “See Also” links, along with other minor differences. Please send any questions or feedback to bam@cs.cmu.edu.


javax.mail
interface Part

All Known Subinterfaces:
MimePart
All Known Implementing Classes:
BodyPart, MimeBodyPart, IMAPBodyPart, PreencodedMimeBodyPart, Message, MimeMessage, IMAPMessage, MessageHeaders, POP3Message, SMTPMessage, IMAPNestedMessage

Most common way to construct:

Multipart mp = …;
int mp = …;

Part part = mp.getBodyPart(mp);

Based on 16 examples


public interface Part

The Part interface is the common base interface for Messages and BodyParts.

Part consists of a set of attributes and a "Content".

Attributes:

The JavaMail API defines a set of standard Part attributes that are considered to be common to most existing Mail systems. These attributes have their own settor and gettor methods. Mail systems may support other Part attributes as well, these are represented as name-value pairs where both the name and value are Strings.

Content:

The data type of the "content" is returned by the getContentType() method. The MIME typing system is used to name data types.

The "content" of a Part is available in various formats:

Part provides the writeTo() method that streams out its bytestream in mail-safe form suitable for transmission. This bytestream is typically an aggregation of the Part attributes and its content's bytestream.

Message and BodyPart implement the Part interface. Note that in MIME parlance, Part models an Entity (RFC 2045, Section 2.4).

See Also (auto-generated):

Session

Transport

Properties


Field Summary
static String ATTACHMENT
          This part should be presented as an attachment.
static String INLINE
          This part should be presented inline.
 
Method Summary
 void
addHeader(String header_name, String header_value)

          Add this value to the existing values for this header_name.
 Enumeration

          Return all the headers from this part as an Enumeration of Header objects.
 Object

          Return the content as a Java object.
 String

          Returns the Content-Type of the content of this part.
 DataHandler

          Return a DataHandler for the content within this part.
 String

          Return a description String for this part.
 String

          Return the disposition of this part.
 String

          Get the filename associated with this part, if possible.
 String[]
getHeader(String header_name)

          Get all the headers for this header name.
 InputStream

          Return an input stream for this part's "content".
 int

          Return the number of lines in the content of this part.
 Enumeration
getMatchingHeaders(String[] header_names)

          Return matching headers from this part as an Enumeration of Header objects.
 Enumeration
getNonMatchingHeaders(String[] header_names)

          Return non-matching headers from this envelope as an Enumeration of Header objects.
 int

          Return the size of the content of this part in bytes.
 boolean
isMimeType(String mimeType)

          Is this Part of the specified MIME type? This method compares only the primaryType and subType.
 void
removeHeader(String header_name)

          Remove all headers with this name.
 void

          This method sets the given Multipart object as this message's content.
 void
setContent(Object obj, String type)

          A convenience method for setting this part's content.
 void

          This method provides the mechanism to set this part's content.
 void
setDescription(String description)

          Set a description String for this part.
 void
setDisposition(String disposition)

          Set the disposition of this part.
 void
setFileName(String filename)

          Set the filename associated with this part, if possible.
 void
setHeader(String header_name, String header_value)

          Set the value for this header_name.
 void

          A convenience method that sets the given String as this part's content with a MIME type of "text/plain".
 void

          Output a bytestream for this Part.
 

Field Detail

ATTACHMENT

public static final String ATTACHMENT
This part should be presented as an attachment.

INLINE

public static final String INLINE
This part should be presented inline.
Method Detail

addHeader

public void addHeader(String header_name,
                      String header_value)
               throws MessagingException
Add this value to the existing values for this header_name.

Parameters:
header_name - the name of this header
header_value - the value for this header
Throws:
MessagingException

getAllHeaders

public Enumeration getAllHeaders()
                          throws MessagingException
Return all the headers from this part as an Enumeration of Header objects.

Returns:
enumeration of Header objects
Throws:
MessagingException

getContent

public Object getContent()
                  throws IOException,
                         MessagingException
Return the content as a Java object. The type of the returned object is of course dependent on the content itself. For example, 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 DataHandler system, an input stream is returned as the content

This is a convenience method that just invokes the DataHandler's getContent() method

Returns:
Object
Throws:
IOException - this is typically thrown by the DataHandler. Refer to the documentation for javax.activation.DataHandler for more details.
MessagingException

getContentType

public String getContentType()
                      throws MessagingException
Returns the Content-Type of the content of this part. Returns null if the Content-Type could not be determined.

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

Returns:
The ContentType of this part
Throws:
MessagingException

getDataHandler

public DataHandler getDataHandler()
                           throws MessagingException
Return a DataHandler for the content within this part. The DataHandler allows clients to operate on as well as retrieve the content.

Returns:
DataHandler for the content
Throws:
MessagingException

getDescription

public String getDescription()
                      throws MessagingException
Return a description String for this part. This typically associates some descriptive information with this part. Returns null if none is available.

Returns:
description of this part
Throws:
MessagingException

getDisposition

public String getDisposition()
                      throws MessagingException
Return the disposition of this part. The disposition describes how the part should be presented to the user. (See RFC 2183.) The return value should be considered without regard to case. For example:

 String disp = part.getDisposition();
 if (disp == null || disp.equalsIgnoreCase(Part.ATTACHMENT))
	// treat as attachment if not first part
 

Returns:
disposition of this part, or null if unknown
Throws:
MessagingException

getFileName

public String getFileName()
                   throws MessagingException
Get the filename associated with this part, if possible. Useful if this part represents an "attachment" that was loaded from a file. The filename will usually be a simple name, not including directory components.

Returns:
Filename to associate with this part
Throws:
MessagingException

getHeader

public String[] getHeader(String header_name)
                   throws MessagingException
Get all the headers for this header name. Returns null if no headers for this header name are available.

Parameters:
header_name - the name of this header
Returns:
the value fields for all headers with this name
Throws:
MessagingException

getInputStream

public InputStream getInputStream()
                           throws IOException,
                                  MessagingException
Return an input stream for this part's "content". Any mail-specific transfer encodings will be decoded before the input stream is provided.

This is typically a convenience method that just invokes the DataHandler's getInputStream() method.

Returns:
an InputStream
Throws:
IOException - this is typically thrown by the DataHandler. Refer to the documentation for javax.activation.DataHandler for more details.
MessagingException

getLineCount

public int getLineCount()
                 throws MessagingException
Return the number of lines in the content of this part. Return -1 if the number cannot be determined. Note that this number may not be an exact measure of the content length and may or may not account for any transfer encoding of the content.

Returns:
number of lines in the content.
Throws:
MessagingException

getMatchingHeaders

public Enumeration getMatchingHeaders(String[] header_names)
                               throws MessagingException
Return matching headers from this part as an Enumeration of Header objects.

Parameters:
header_names
Returns:
enumeration of Header objects
Throws:
MessagingException

getNonMatchingHeaders

public Enumeration getNonMatchingHeaders(String[] header_names)
                                  throws MessagingException
Return non-matching headers from this envelope as an Enumeration of Header objects.

Parameters:
header_names
Returns:
enumeration of Header objects
Throws:
MessagingException

getSize

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

Note that the size may not be an exact measure of the content size and may or may not account for any transfer encoding of the content. The size is appropriate for display in a user interface to give the user a rough idea of the size of this part.

Returns:
size of content in bytes
Throws:
MessagingException

isMimeType

public boolean isMimeType(String mimeType)
                   throws MessagingException
Is this Part of the specified MIME type? This method compares only the primaryType and subType. The parameters of the content types are ignored.

For example, this method will return true when comparing a Part of content type "text/plain" with "text/plain; charset=foobar".

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

Parameters:
mimeType
Throws:
MessagingException

removeHeader

public void removeHeader(String header_name)
                  throws MessagingException
Remove all headers with this name.

Parameters:
header_name - the name of this header
Throws:
MessagingException

setContent

public void setContent(Multipart mp)
                throws MessagingException
This method sets the given Multipart object as this message's content.

Parameters:
mp - The multipart object that is the Message's content
Throws:
MessagingException

setContent

public void setContent(Object obj,
                       String type)
                throws MessagingException
A convenience method for setting this part's content. The part internally wraps the content in a DataHandler.

Note that a DataContentHandler class for the specified type should be available to the JavaMail implementation for this to work right. i.e., to do setContent(foobar, "application/x-foobar"), a DataContentHandler for "application/x-foobar" should be installed. Refer to the Java Activation Framework for more information.

Parameters:
obj - A java object.
type - MIME type of this object.
Throws:
MessagingException

setDataHandler

public void setDataHandler(DataHandler dh)
                    throws MessagingException
This method provides the mechanism to set this part's content. The DataHandler wraps around the actual content.

Parameters:
dh - The DataHandler for the content.
Throws:
MessagingException

setDescription

public void setDescription(String description)
                    throws MessagingException
Set a description String for this part. This typically associates some descriptive information with this part.

Parameters:
description - description of this part
Throws:
MessagingException

setDisposition

public void setDisposition(String disposition)
                    throws MessagingException
Set the disposition of this part.

Parameters:
disposition - disposition of this part
Throws:
MessagingException

setFileName

public void setFileName(String filename)
                 throws MessagingException
Set the filename associated with this part, if possible. Useful if this part represents an "attachment" that was loaded from a file. The filename will usually be a simple name, not including directory components.

Parameters:
filename - Filename to associate with this part
Throws:
MessagingException

setHeader

public void setHeader(String header_name,
                      String header_value)
               throws MessagingException
Set the value for this header_name. Replaces all existing header values with this new value.

Parameters:
header_name - the name of this header
header_value - the value for this header
Throws:
MessagingException

setText

public void setText(String text)
             throws MessagingException
A convenience method that sets the given String as this part's content with a MIME type of "text/plain".

Parameters:
text - The text that is the Message's content.
Throws:
MessagingException

writeTo

public void writeTo(OutputStream os)
             throws IOException,
                    MessagingException
Output a bytestream for this Part. This bytestream is typically an aggregration of the Part attributes and an appropriately encoded bytestream from its 'content'.

Classes that implement the Part interface decide on the appropriate encoding algorithm to be used.

The bytestream is typically used for sending.

Parameters:
os
Throws:
IOException - if an error occurs writing to the stream or if an error is generated by the javax.activation layer.
MessagingException - if an error occurs fetching the data to be written


This documentation differs from the official API. Jadeite adds extra features to the API including: variable font sizes, constructions examples, placeholders for classes and methods, and auto-generated “See Also” links. Additionally it is missing some items found in standard Javadoc documentation, including: generics type information, “Deprecated” tags and comments, “See Also” links, along with other minor differences. Please send any questions or feedback to bam@cs.cmu.edu.
This page displays the Jadeite version of the documention. The official Sun™ documentation can be found here at http://java.sun.com/products/javamail/javadocs/index.html.