ThePart
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:
Thedata type of the "content" is returned by thegetContentType()
method. The MIME typing system is used to name data types.
The "content" of a Part is available in various formats:
getDataHandler()
method. The "content" of a Part is also available through ajavax.activation.DataHandler
object. The DataHandler object allows clients to discover the operations available on the content, and to instantiate the appropriate component to perform those operations.getInputStream()
method. Any mail-specific encodings are decoded before this stream is returnedgetContent()
method. This method returns the "content" as a Java object. The returned object is of course dependent on the content itself. In particular, a "multipart" Part's content is always a Multipart or subclass thereof. iegetContent()
on a "multipart" type Part will always return a Multipart (or subclass) object.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 (RFC2045, Section 2.4)
ATTACHMENT This part should be presented as an attachment. | |
INLINE This part should be presented inline. |
addHeader(java.lang.String header_name, java.lang.String header_value) Add this value to the existing values for this header_name. | |
getAllHeaders() Return all the headers from this part as an Enumeration of Header objects. | |
getContent() Return the content as a Java object. | |
getContentType() Returns the Content-Type of the content of this part. | |
getDataHandler() Return a DataHandler for the content within this part. | |
getDescription() Return a description String for this part. | |
getDisposition() Return the disposition of this part. | |
getFileName() Get the filename associated with this part, if possible. | |
getHeader(java.lang.String header_name) Get all the headers for this header name. | |
getInputStream() Return an input stream for this part's "content". | |
getLineCount() Return the number of lines in the content of this part. | |
getMatchingHeaders(java.lang.String[] header_names) Return matching headers from this part as an Enumeration of Header objects. | |
getNonMatchingHeaders(java.lang.String[] header_names) Return non-matching headers from this envelope as an Enumeration of Header objects. | |
getSize() Return the size of the content of this part in bytes. | |
isMimeType(java.lang.String mimeType) Is this Part of the specified MIME type? This method comparesonly the primaryType andsubType . | |
removeHeader(java.lang.String header_name) Remove all headers with this name. | |
setContent(Multipart mp) This method sets the given Multipart object as this message's content. | |
setContent(java.lang.Object obj, java.lang.String type) A convenience method for setting this part's content. | |
setDataHandler(DataHandler dh) This method provides the mechanism to set this part's content. | |
setDescription(java.lang.String description) Set a description String for this part. | |
setDisposition(java.lang.String disposition) Set the disposition of this part. | |
setFileName(java.lang.String filename) Set the filename associated with this part, if possible. | |
setHeader(java.lang.String header_name, java.lang.String header_value) Set the value for this header_name. | |
setText(java.lang.String text) A convenience method that sets the given String as this part's content with a MIME type of "text/plain". | |
writeTo(java.io.OutputStream os) Output a bytestream for this Part. |
public static final java.lang.StringATTACHMENT
getDisposition()
,setDisposition(java.lang.String)
public static final java.lang.StringINLINE
getDisposition()
,setDisposition(java.lang.String)
public intgetSize() throwsMessagingException
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.
MessagingException
- public intgetLineCount() throwsMessagingException
MessagingException
- public java.lang.StringgetContentType() throwsMessagingException
The MIME typing system is used to name Content-types.
MessagingException
- DataHandler
public booleanisMimeType(java.lang.String mimeType) throwsMessagingException
primaryType
andsubType
. The parameters of the content types are ignored. For example, this method will returntrue
when comparing a Part of content type"text/plain" with"text/plain; charset=foobar".
If thesubType
ofmimeType
is the special character '*', then the subtype is ignored during the comparison.
public java.lang.StringgetDisposition() throwsMessagingException
MessagingException
- ATTACHMENT
,INLINE
,getFileName()
public voidsetDisposition(java.lang.String disposition) throwsMessagingException
disposition
- disposition of this partMessagingException
- IllegalWriteException
- if the underlying implementationdoes not support modification of this headerjava.lang.IllegalStateException
- if this Part is obtainedfrom a READ_ONLY folderATTACHMENT
,INLINE
,setFileName(java.lang.String)
public java.lang.StringgetDescription() throwsMessagingException
MessagingException
- public voidsetDescription(java.lang.String description) throwsMessagingException
description
- description of this partMessagingException
- IllegalWriteException
- if the underlying implementationdoes not support modification of this headerjava.lang.IllegalStateException
- if this Part is obtainedfrom a READ_ONLY folderpublic java.lang.StringgetFileName() throwsMessagingException
public voidsetFileName(java.lang.String filename) throwsMessagingException
filename
- Filename to associate with this partIllegalWriteException
- if the underlying implementationdoes not support modification of this headerjava.lang.IllegalStateException
- if this Part is obtainedfrom a READ_ONLY folderpublic java.io.InputStreamgetInputStream() throws java.io.IOException,MessagingException
This is typically a convenience method that just invokes the DataHandler'sgetInputStream()
method.
java.io.IOException
- this is typically thrown by the DataHandler. Refer to the documentation for javax.activation.DataHandler for more details.MessagingException
- getDataHandler()
,DataHandler.getInputStream()
publicDataHandlergetDataHandler() throwsMessagingException
MessagingException
- public java.lang.ObjectgetContent() throws java.io.IOException,MessagingException
This is a convenience method that just invokes the DataHandler's getContent() method
MessagingException
- java.io.IOException
- this is typically thrown by the DataHandler. Refer to the documentation for javax.activation.DataHandler for more details.DataHandler.getContent()
public voidsetDataHandler(DataHandler dh) throwsMessagingException
dh
- The DataHandler for the content.MessagingException
- IllegalWriteException
- if the underlying implementationdoes not support modification of existing valuesjava.lang.IllegalStateException
- if this Part is obtainedfrom a READ_ONLY folderpublic voidsetContent(java.lang.Object obj, java.lang.String type) throwsMessagingException
Note that a DataContentHandler class for the specified type should be available to the JavaMail implementation for this to work right. i.e., to dosetContent(foobar, "application/x-foobar")
, a DataContentHandler for "application/x-foobar" should be installed. Refer to the Java Activation Framework for more information.
obj
- A java object.type
- MIME type of this object.IllegalWriteException
- if the underlying implementationdoes not support modification of existing valuesjava.lang.IllegalStateException
- if this Part is obtainedfrom a READ_ONLY folderpublic voidsetText(java.lang.String text) throwsMessagingException
text
- The text that is the Message's content.IllegalWriteException
- if the underlying implementation does not support modification of existing valuesjava.lang.IllegalStateException
- if this Part is obtainedfrom a READ_ONLY folderpublic voidsetContent(Multipart mp) throwsMessagingException
mp
- The multipart object that is the Message's contentIllegalWriteException
- if the underlying implementationdoes not support modification of existing valuesjava.lang.IllegalStateException
- if this Part is obtainedfrom a READ_ONLY folderpublic voidwriteTo(java.io.OutputStream os) throws java.io.IOException,MessagingException
Classes that implement the Part interface decide on the appropriate encoding algorithm to be used.
The bytestream is typically used for sending.
java.io.IOException
- if an error occurs writing to the stream or if an error is generatedby the javax.activation layer.MessagingException
- if an error occurs fetching thedata to be writtenDataHandler.writeTo(java.io.OutputStream)
public java.lang.String[]getHeader(java.lang.String header_name) throwsMessagingException
null
if no headers for this header name are available.header_name
- the name of this headerMessagingException
- public voidsetHeader(java.lang.String header_name, java.lang.String header_value) throwsMessagingException
header_name
- the name of this headerheader_value
- the value for this headerMessagingException
- IllegalWriteException
- if the underlying implementation does not support modification of existing valuesjava.lang.IllegalStateException
- if this Part is obtained from a READ_ONLY folderpublic voidaddHeader(java.lang.String header_name, java.lang.String header_value) throwsMessagingException
header_name
- the name of this headerheader_value
- the value for this headerMessagingException
- IllegalWriteException
- if the underlying implementation does not support modification of existing valuesjava.lang.IllegalStateException
- if this Part is obtained from a READ_ONLY folderpublic voidremoveHeader(java.lang.String header_name) throwsMessagingException
header_name
- the name of this headerMessagingException
- IllegalWriteException
- if the underlying implementation does not support modification of existing valuesjava.lang.IllegalStateException
- if this Part is obtained from a READ_ONLY folderpublic java.util.EnumerationgetAllHeaders() throwsMessagingException
MessagingException
- public java.util.EnumerationgetMatchingHeaders(java.lang.String[] header_names) throwsMessagingException
MessagingException
- public java.util.EnumerationgetNonMatchingHeaders(java.lang.String[] header_names) throwsMessagingException
MessagingException
-