Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

javax.mail.internet
Class MimeMessage  view MimeMessage download MimeMessage.java

java.lang.Object
  extended byjavax.mail.Message
      extended byjavax.mail.internet.MimeMessage
All Implemented Interfaces:
MimePart, javax.mail.Part

public class MimeMessage
extends javax.mail.Message
implements MimePart

Version:
$Rev: 151116 $ $Date: 2005-02-02 19:41:11 -0800 (Wed, 02 Feb 2005) $

Nested Class Summary
static class MimeMessage.RecipientType
          Extends javax.mail.Message.RecipientType to support addition recipient types.
 
Field Summary
protected  byte[] content
          This message's content (unless sourced from a SharedInputStream).
protected  java.io.InputStream contentStream
          If the data for this message was supplied by a SharedInputStream then this is another such stream representing the content of this message; if this field is non-null, then content 55 will be null.
private  MailDateFormat dateFormat
           
protected  javax.activation.DataHandler dh
          The javax.activation.DataHandler for this Message's content.
protected  javax.mail.Flags flags
          This message's flags.
protected  InternetHeaders headers
          This message's headers.
protected  boolean modified
          Flag indicating that the message has been modified; set to true when an empty message is created or when saveChanges() 55 is called.
protected  boolean saved
          Flag indicating that the message has been saved.
 
Fields inherited from class javax.mail.Message
expunged, folder, msgnum, session
 
Fields inherited from interface javax.mail.Part
ATTACHMENT, INLINE
 
Constructor Summary
protected MimeMessage(javax.mail.Folder folder, java.io.InputStream in, int number)
          Create a MimeMessage by reading an parsing the data from the supplied stream.
protected MimeMessage(javax.mail.Folder folder, int number)
          Create an new MimeMessage in the supplied javax.mail.Folder and message number.
protected MimeMessage(javax.mail.Folder folder, InternetHeaders headers, byte[] content, int number)
          Create a MimeMessage with the supplied headers and content.
  MimeMessage(MimeMessage message)
          Copy a MimeMessage.
  MimeMessage(javax.mail.Session session)
          Create a new MimeMessage.
  MimeMessage(javax.mail.Session session, java.io.InputStream in)
          Create a MimeMessage by reading an parsing the data from the supplied stream.
 
Method Summary
 void addFrom(javax.mail.Address[] addresses)
          Add multiple addresses to the "From" header.
private  void addHeader(java.lang.String header, javax.mail.Address[] addresses)
           
 void addHeader(java.lang.String name, java.lang.String value)
           
 void addHeaderLine(java.lang.String line)
           
 void addRecipients(javax.mail.Message.RecipientType type, javax.mail.Address[] address)
          Add recipents of a specified type.
 void addRecipients(javax.mail.Message.RecipientType type, java.lang.String address)
           
private  void addRecipientsToList(java.util.List list, javax.mail.Message.RecipientType type)
           
protected  InternetHeaders createInternetHeaders(java.io.InputStream in)
           
 java.util.Enumeration getAllHeaderLines()
           
 java.util.Enumeration getAllHeaders()
           
 javax.mail.Address[] getAllRecipients()
          Get all recipients of this message.
 java.lang.Object getContent()
           
 java.lang.String getContentID()
           
 java.lang.String[] getContentLanguage()
           
 java.lang.String getContentMD5()
           
protected  java.io.InputStream getContentStream()
           
 java.lang.String getContentType()
           
 javax.activation.DataHandler getDataHandler()
           
 java.lang.String getDescription()
           
 java.lang.String getDisposition()
           
 java.lang.String getEncoding()
           
 java.lang.String getFileName()
           
 javax.mail.Flags getFlags()
          Return a copy the flags associated with this message.
 javax.mail.Address[] getFrom()
          Return the "From" header indicating the identity of the person who the message is from; in some circumstances this may be different to the actual sender.
 java.lang.String[] getHeader(java.lang.String name)
           
 java.lang.String getHeader(java.lang.String name, java.lang.String delimiter)
           
private  InternetAddress[] getHeaderAsAddresses(java.lang.String header, boolean strict)
           
private  java.lang.String getHeaderForRecipientType(javax.mail.Message.RecipientType type)
           
 java.io.InputStream getInputStream()
           
 int getLineCount()
           
 java.util.Enumeration getMatchingHeaderLines(java.lang.String[] names)
           
 java.util.Enumeration getMatchingHeaders(java.lang.String[] names)
           
 java.lang.String getMessageID()
           
 java.util.Enumeration getNonMatchingHeaderLines(java.lang.String[] names)
           
 java.util.Enumeration getNonMatchingHeaders(java.lang.String[] names)
           
 java.io.InputStream getRawInputStream()
           
 java.util.Date getReceivedDate()
          Return the date this message was received.
 javax.mail.Address[] getRecipients(javax.mail.Message.RecipientType type)
          Get all recipients of the given type.
 javax.mail.Address[] getReplyTo()
          Get the addresses to which replies should be directed.
 javax.mail.Address getSender()
          Return the "Sender" header as an address.
 java.util.Date getSentDate()
          Return the date that this message was sent.
private  java.lang.String getSingleHeader(java.lang.String name)
           
 int getSize()
           
 java.lang.String getSubject()
          Get the subject for this message.
 boolean isMimeType(java.lang.String type)
           
 boolean isSet(javax.mail.Flags.Flag flag)
          Check whether the supplied flag is set.
private  boolean isStrictAddressing()
           
protected  void parse(java.io.InputStream in)
          Parse the supplied stream and initialize headers 55 and content 55 appropriately.
 void removeHeader(java.lang.String name)
           
 javax.mail.Message reply(boolean replyToAll)
          Create a new message suitable as a reply to this message with all headers set up appropriately.
 void saveChanges()
          To ensure changes are saved to the store, this message should be invoked before its containing folder is closed.
 void setContent(javax.mail.Multipart part)
           
 void setContent(java.lang.Object content, java.lang.String type)
           
 void setContentID(java.lang.String cid)
           
 void setContentLanguage(java.lang.String[] languages)
           
 void setContentMD5(java.lang.String md5)
           
 void setDataHandler(javax.activation.DataHandler handler)
           
 void setDescription(java.lang.String description)
           
 void setDescription(java.lang.String description, java.lang.String charset)
           
 void setDisposition(java.lang.String disposition)
           
 void setFileName(java.lang.String name)
           
 void setFlags(javax.mail.Flags flags, boolean set)
          Set the flags specified to the supplied value; flags not included in the supplied javax.mail.Flags parameter are not affected.
 void setFrom()
          Set the "From" header using the value returned by InternetAddress.getLocalAddress(javax.mail.Session) 55 .
 void setFrom(javax.mail.Address address)
          Set the "From" header to the supplied address.
private  void setHeader(java.lang.String header, javax.mail.Address address)
           
private  void setHeader(java.lang.String header, javax.mail.Address[] addresses)
           
 void setHeader(java.lang.String name, java.lang.String value)
           
 void setRecipients(javax.mail.Message.RecipientType type, javax.mail.Address[] addresses)
          Set the list of recipients for the specified type.
 void setRecipients(javax.mail.Message.RecipientType type, java.lang.String address)
           
 void setReplyTo(javax.mail.Address[] address)
          Set the addresses to which replies should be directed.
 void setSender(javax.mail.Address address)
          Set the "Sender" header.
 void setSentDate(java.util.Date sent)
          Set the date this message was sent.
 void setSubject(java.lang.String subject)
          Set the subject of this message
 void setSubject(java.lang.String subject, java.lang.String charset)
           
 void setText(java.lang.String text)
           
 void setText(java.lang.String text, java.lang.String charset)
           
protected  void updateHeaders()
           
 void writeTo(java.io.OutputStream out)
           
 void writeTo(java.io.OutputStream out, java.lang.String[] ignoreHeaders)
           
 
Methods inherited from class javax.mail.Message
addRecipient, getFolder, getMessageNumber, isExpunged, match, setExpunged, setFlag, setMessageNumber, setRecipient
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

dh

protected javax.activation.DataHandler dh
The javax.activation.DataHandler for this Message's content.


content

protected byte[] content
This message's content (unless sourced from a SharedInputStream).


contentStream

protected java.io.InputStream contentStream
If the data for this message was supplied by a SharedInputStream then this is another such stream representing the content of this message; if this field is non-null, then content 55 will be null.


headers

protected InternetHeaders headers
This message's headers.


flags

protected javax.mail.Flags flags
This message's flags.


modified

protected boolean modified
Flag indicating that the message has been modified; set to true when an empty message is created or when saveChanges() 55 is called.


saved

protected boolean saved
Flag indicating that the message has been saved.


dateFormat

private final MailDateFormat dateFormat
Constructor Detail

MimeMessage

public MimeMessage(javax.mail.Session session)
Create a new MimeMessage. An empty message is created, with empty headers 55 and empty flags 55 . The modified 55 flag is set.


MimeMessage

public MimeMessage(javax.mail.Session session,
                   java.io.InputStream in)
            throws javax.mail.MessagingException
Create a MimeMessage by reading an parsing the data from the supplied stream.


MimeMessage

public MimeMessage(MimeMessage message)
            throws javax.mail.MessagingException
Copy a MimeMessage.


MimeMessage

protected MimeMessage(javax.mail.Folder folder,
                      int number)
Create an new MimeMessage in the supplied javax.mail.Folder and message number.


MimeMessage

protected MimeMessage(javax.mail.Folder folder,
                      java.io.InputStream in,
                      int number)
               throws javax.mail.MessagingException
Create a MimeMessage by reading an parsing the data from the supplied stream.


MimeMessage

protected MimeMessage(javax.mail.Folder folder,
                      InternetHeaders headers,
                      byte[] content,
                      int number)
               throws javax.mail.MessagingException
Create a MimeMessage with the supplied headers and content.

Method Detail

parse

protected void parse(java.io.InputStream in)
              throws javax.mail.MessagingException
Parse the supplied stream and initialize headers 55 and content 55 appropriately.


getFrom

public javax.mail.Address[] getFrom()
                             throws javax.mail.MessagingException
Description copied from class: javax.mail.Message
Return the "From" header indicating the identity of the person who the message is from; in some circumstances this may be different to the actual sender.


setFrom

public void setFrom(javax.mail.Address address)
             throws javax.mail.MessagingException
Description copied from class: javax.mail.Message
Set the "From" header to the supplied address.


setFrom

public void setFrom()
             throws javax.mail.MessagingException
Set the "From" header using the value returned by InternetAddress.getLocalAddress(javax.mail.Session) 55 .


addFrom

public void addFrom(javax.mail.Address[] addresses)
             throws javax.mail.MessagingException
Description copied from class: javax.mail.Message
Add multiple addresses to the "From" header.


getSender

public javax.mail.Address getSender()
                             throws javax.mail.MessagingException
Return the "Sender" header as an address.


setSender

public void setSender(javax.mail.Address address)
               throws javax.mail.MessagingException
Set the "Sender" header.


getRecipients

public javax.mail.Address[] getRecipients(javax.mail.Message.RecipientType type)
                                   throws javax.mail.MessagingException
Description copied from class: javax.mail.Message
Get all recipients of the given type.


getAllRecipients

public javax.mail.Address[] getAllRecipients()
                                      throws javax.mail.MessagingException
Description copied from class: javax.mail.Message
Get all recipients of this message. The default implementation extracts the To, Cc, and Bcc recipients using Message.getRecipients(javax.mail.Message.RecipientType)>Message.getRecipients(javax.mail.Message.RecipientType) 55 and then concatentates the results into a single array; it returns null if no headers are defined.


addRecipientsToList

private void addRecipientsToList(java.util.List list,
                                 javax.mail.Message.RecipientType type)
                          throws javax.mail.MessagingException

setRecipients

public void setRecipients(javax.mail.Message.RecipientType type,
                          javax.mail.Address[] addresses)
                   throws javax.mail.MessagingException
Description copied from class: javax.mail.Message
Set the list of recipients for the specified type.


setRecipients

public void setRecipients(javax.mail.Message.RecipientType type,
                          java.lang.String address)
                   throws javax.mail.MessagingException

addRecipients

public void addRecipients(javax.mail.Message.RecipientType type,
                          javax.mail.Address[] address)
                   throws javax.mail.MessagingException
Description copied from class: javax.mail.Message
Add recipents of a specified type.


addRecipients

public void addRecipients(javax.mail.Message.RecipientType type,
                          java.lang.String address)
                   throws javax.mail.MessagingException

getReplyTo

public javax.mail.Address[] getReplyTo()
                                throws javax.mail.MessagingException
Description copied from class: javax.mail.Message
Get the addresses to which replies should be directed.

As the most common behavior is to return to sender, the default implementation simply calls Message.getFrom()>Message.getFrom() 55 .


setReplyTo

public void setReplyTo(javax.mail.Address[] address)
                throws javax.mail.MessagingException
Description copied from class: javax.mail.Message
Set the addresses to which replies should be directed.

The default implementation throws a MethodNotSupportedException.


getSubject

public java.lang.String getSubject()
                            throws javax.mail.MessagingException
Description copied from class: javax.mail.Message
Get the subject for this message.


setSubject

public void setSubject(java.lang.String subject)
                throws javax.mail.MessagingException
Description copied from class: javax.mail.Message
Set the subject of this message


setSubject

public void setSubject(java.lang.String subject,
                       java.lang.String charset)
                throws javax.mail.MessagingException

getSentDate

public java.util.Date getSentDate()
                           throws javax.mail.MessagingException
Description copied from class: javax.mail.Message
Return the date that this message was sent.


setSentDate

public void setSentDate(java.util.Date sent)
                 throws javax.mail.MessagingException
Description copied from class: javax.mail.Message
Set the date this message was sent.


getReceivedDate

public java.util.Date getReceivedDate()
                               throws javax.mail.MessagingException
Description copied from class: javax.mail.Message
Return the date this message was received.


getSize

public int getSize()
            throws javax.mail.MessagingException
Specified by:
getSize in interface javax.mail.Part

getLineCount

public int getLineCount()
                 throws javax.mail.MessagingException
Specified by:
getLineCount in interface javax.mail.Part

getContentType

public java.lang.String getContentType()
                                throws javax.mail.MessagingException
Specified by:
getContentType in interface javax.mail.Part

isMimeType

public boolean isMimeType(java.lang.String type)
                   throws javax.mail.MessagingException
Specified by:
isMimeType in interface javax.mail.Part

getDisposition

public java.lang.String getDisposition()
                                throws javax.mail.MessagingException
Specified by:
getDisposition in interface javax.mail.Part

setDisposition

public void setDisposition(java.lang.String disposition)
                    throws javax.mail.MessagingException
Specified by:
setDisposition in interface javax.mail.Part

getEncoding

public java.lang.String getEncoding()
                             throws javax.mail.MessagingException
Specified by:
getEncoding in interface MimePart

getContentID

public java.lang.String getContentID()
                              throws javax.mail.MessagingException
Specified by:
getContentID in interface MimePart

setContentID

public void setContentID(java.lang.String cid)
                  throws javax.mail.MessagingException

getContentMD5

public java.lang.String getContentMD5()
                               throws javax.mail.MessagingException
Specified by:
getContentMD5 in interface MimePart

setContentMD5

public void setContentMD5(java.lang.String md5)
                   throws javax.mail.MessagingException
Specified by:
setContentMD5 in interface MimePart

getDescription

public java.lang.String getDescription()
                                throws javax.mail.MessagingException
Specified by:
getDescription in interface javax.mail.Part

setDescription

public void setDescription(java.lang.String description)
                    throws javax.mail.MessagingException
Specified by:
setDescription in interface javax.mail.Part

setDescription

public void setDescription(java.lang.String description,
                           java.lang.String charset)
                    throws javax.mail.MessagingException

getContentLanguage

public java.lang.String[] getContentLanguage()
                                      throws javax.mail.MessagingException
Specified by:
getContentLanguage in interface MimePart

setContentLanguage

public void setContentLanguage(java.lang.String[] languages)
                        throws javax.mail.MessagingException
Specified by:
setContentLanguage in interface MimePart

getMessageID

public java.lang.String getMessageID()
                              throws javax.mail.MessagingException

getFileName

public java.lang.String getFileName()
                             throws javax.mail.MessagingException
Specified by:
getFileName in interface javax.mail.Part

setFileName

public void setFileName(java.lang.String name)
                 throws javax.mail.MessagingException
Specified by:
setFileName in interface javax.mail.Part

getInputStream

public java.io.InputStream getInputStream()
                                   throws javax.mail.MessagingException,
                                          java.io.IOException
Specified by:
getInputStream in interface javax.mail.Part

getContentStream

protected java.io.InputStream getContentStream()
                                        throws javax.mail.MessagingException

getRawInputStream

public java.io.InputStream getRawInputStream()
                                      throws javax.mail.MessagingException

getDataHandler

public javax.activation.DataHandler getDataHandler()
                                            throws javax.mail.MessagingException
Specified by:
getDataHandler in interface javax.mail.Part

getContent

public java.lang.Object getContent()
                            throws javax.mail.MessagingException,
                                   java.io.IOException
Specified by:
getContent in interface javax.mail.Part

setDataHandler

public void setDataHandler(javax.activation.DataHandler handler)
                    throws javax.mail.MessagingException
Specified by:
setDataHandler in interface javax.mail.Part

setContent

public void setContent(java.lang.Object content,
                       java.lang.String type)
                throws javax.mail.MessagingException
Specified by:
setContent in interface javax.mail.Part

setText

public void setText(java.lang.String text)
             throws javax.mail.MessagingException
Specified by:
setText in interface MimePart

setText

public void setText(java.lang.String text,
                    java.lang.String charset)
             throws javax.mail.MessagingException
Specified by:
setText in interface MimePart

setContent

public void setContent(javax.mail.Multipart part)
                throws javax.mail.MessagingException
Specified by:
setContent in interface javax.mail.Part

reply

public javax.mail.Message reply(boolean replyToAll)
                         throws javax.mail.MessagingException
Description copied from class: javax.mail.Message
Create a new message suitable as a reply to this message with all headers set up appropriately. The message body will be empty.

if replyToAll is set then the new message will be addressed to all recipients of this message; otherwise the reply will be addressed only to the sender as returned by Message.getReplyTo()>Message.getReplyTo() 55 .

The subject field will be initialized with the subject field from the orginal message; the text "Re:" will be prepended unless it is already present.


writeTo

public void writeTo(java.io.OutputStream out)
             throws javax.mail.MessagingException,
                    java.io.IOException
Specified by:
writeTo in interface javax.mail.Part

writeTo

public void writeTo(java.io.OutputStream out,
                    java.lang.String[] ignoreHeaders)
             throws javax.mail.MessagingException,
                    java.io.IOException

getHeader

public java.lang.String[] getHeader(java.lang.String name)
                             throws javax.mail.MessagingException
Specified by:
getHeader in interface javax.mail.Part

getHeader

public java.lang.String getHeader(java.lang.String name,
                                  java.lang.String delimiter)
                           throws javax.mail.MessagingException
Specified by:
getHeader in interface MimePart

setHeader

public void setHeader(java.lang.String name,
                      java.lang.String value)
               throws javax.mail.MessagingException
Specified by:
setHeader in interface javax.mail.Part

addHeader

public void addHeader(java.lang.String name,
                      java.lang.String value)
               throws javax.mail.MessagingException
Specified by:
addHeader in interface javax.mail.Part

removeHeader

public void removeHeader(java.lang.String name)
                  throws javax.mail.MessagingException
Specified by:
removeHeader in interface javax.mail.Part

getAllHeaders

public java.util.Enumeration getAllHeaders()
                                    throws javax.mail.MessagingException
Specified by:
getAllHeaders in interface javax.mail.Part

getMatchingHeaders

public java.util.Enumeration getMatchingHeaders(java.lang.String[] names)
                                         throws javax.mail.MessagingException
Specified by:
getMatchingHeaders in interface javax.mail.Part

getNonMatchingHeaders

public java.util.Enumeration getNonMatchingHeaders(java.lang.String[] names)
                                            throws javax.mail.MessagingException
Specified by:
getNonMatchingHeaders in interface javax.mail.Part

addHeaderLine

public void addHeaderLine(java.lang.String line)
                   throws javax.mail.MessagingException
Specified by:
addHeaderLine in interface MimePart

getAllHeaderLines

public java.util.Enumeration getAllHeaderLines()
                                        throws javax.mail.MessagingException
Specified by:
getAllHeaderLines in interface MimePart

getMatchingHeaderLines

public java.util.Enumeration getMatchingHeaderLines(java.lang.String[] names)
                                             throws javax.mail.MessagingException
Specified by:
getMatchingHeaderLines in interface MimePart

getNonMatchingHeaderLines

public java.util.Enumeration getNonMatchingHeaderLines(java.lang.String[] names)
                                                throws javax.mail.MessagingException
Specified by:
getNonMatchingHeaderLines in interface MimePart

getFlags

public javax.mail.Flags getFlags()
                          throws javax.mail.MessagingException
Description copied from class: javax.mail.Message
Return a copy the flags associated with this message.


isSet

public boolean isSet(javax.mail.Flags.Flag flag)
              throws javax.mail.MessagingException
Description copied from class: javax.mail.Message
Check whether the supplied flag is set. The default implementation checks the flags returned by Message.getFlags()>Message.getFlags() 55 .


setFlags

public void setFlags(javax.mail.Flags flags,
                     boolean set)
              throws javax.mail.MessagingException
Description copied from class: javax.mail.Message
Set the flags specified to the supplied value; flags not included in the supplied javax.mail.Flags parameter are not affected.


saveChanges

public void saveChanges()
                 throws javax.mail.MessagingException
Description copied from class: javax.mail.Message
To ensure changes are saved to the store, this message should be invoked before its containing folder is closed. Implementations may save modifications immediately but are free to defer such updates to they may be sent to the server in one batch; if saveChanges is not called then such changes may not be made permanent.


updateHeaders

protected void updateHeaders()
                      throws javax.mail.MessagingException

createInternetHeaders

protected InternetHeaders createInternetHeaders(java.io.InputStream in)
                                         throws javax.mail.MessagingException

getHeaderAsAddresses

private InternetAddress[] getHeaderAsAddresses(java.lang.String header,
                                               boolean strict)
                                        throws javax.mail.MessagingException

isStrictAddressing

private boolean isStrictAddressing()

setHeader

private void setHeader(java.lang.String header,
                       javax.mail.Address address)

setHeader

private void setHeader(java.lang.String header,
                       javax.mail.Address[] addresses)

addHeader

private void addHeader(java.lang.String header,
                       javax.mail.Address[] addresses)

getHeaderForRecipientType

private java.lang.String getHeaderForRecipientType(javax.mail.Message.RecipientType type)
                                            throws javax.mail.MessagingException

getSingleHeader

private java.lang.String getSingleHeader(java.lang.String name)
                                  throws javax.mail.MessagingException