| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjavax.mail.Message
javax.mail.internet.MimeMessage
com.sun.mail.imap.IMAPMessage
public class IMAPMessage
This class implements an IMAPMessage object.
An IMAPMessage object starts out as a light-weight object. It gets filled-in incrementally when a request is made for some item. Or when a prefetch is done using the FetchProfile.
An IMAPMessage has a messageNumber and a sequenceNumber. The messageNumber is its index into its containing folder's messageCache. The sequenceNumber is its IMAP sequence-number.
| Nested Class Summary | 
|---|
| Nested classes/interfaces inherited from class javax.mail.internet.MimeMessage | 
|---|
| MimeMessage.RecipientType | 
| Field Summary | |
|---|---|
| protected  com.sun.mail.imap.protocol.BODYSTRUCTURE | bs | 
| protected  com.sun.mail.imap.protocol.ENVELOPE | envelope | 
| protected  String | sectionId | 
| Fields inherited from class javax.mail.internet.MimeMessage | 
|---|
| content, contentStream, contentType, dh, flags, headers, modified, saved | 
| Fields inherited from class javax.mail.Message | 
|---|
| expunged, folder, msgnum, session | 
| Fields inherited from interface javax.mail.Part | 
|---|
| ATTACHMENT, INLINE | 
| Constructor Summary | |
|---|---|
| protected  | IMAPMessage(IMAPFolder folder,
            int msgnum)Constructor. | 
| protected  | IMAPMessage(Session session)Constructor, for use by IMAPNestedMessage. | 
| Method Summary | |
|---|---|
|  void | addFrom(Address[] addresses)Add the specified addresses to the existing "From" field. | 
|  void | addHeader(String name,
          String value)Add this value to the existing values for this header_name. | 
|  void | addHeaderLine(String line)Add a raw RFC 822 header-line. | 
|  void | addRecipients(Message.RecipientType type,
              Address[] addresses)Add the given addresses to the specified recipient type. | 
| protected  void | checkExpunged() | 
| protected  void | forceCheckExpunged()Do a NOOP to force any untagged EXPUNGE responses and then check if this message is expunged. | 
|  Enumeration | getAllHeaderLines()Get all header-lines. | 
|  Enumeration | getAllHeaders()Get all headers. | 
|  String | getContentID()Get the Content-ID. | 
|  String[] | getContentLanguage()Get the content language. | 
|  String | getContentMD5()Get the Content-MD5. | 
| protected  InputStream | getContentStream()Get all the bytes for this message. | 
|  String | getContentType()Get the Content-Type. | 
|  DataHandler | getDataHandler()Get the DataHandler object for this message. | 
|  String | getDescription()Get the decoded Content-Description. | 
|  String | getDisposition()Get the Content-Disposition. | 
|  String | getEncoding()Get the Content-Transfer-Encoding. | 
| protected  int | getFetchBlockSize() | 
|  String | getFileName()Get the "filename" Disposition parameter. | 
|  Flags | getFlags()Get the Flags for this message. | 
|  Address[] | getFrom()Get the "From" attribute. | 
|  String[] | getHeader(String name)Get the named header. | 
|  String | getHeader(String name,
          String delimiter)Get the named header. | 
|  String | getInReplyTo()Get the In-Reply-To header. | 
|  int | getLineCount()Get the total number of lines. | 
|  Enumeration | getMatchingHeaderLines(String[] names)Get all matching header-lines. | 
|  Enumeration | getMatchingHeaders(String[] names)Get matching headers. | 
| protected  Object | getMessageCacheLock()Get the messageCacheLock, associated with this Message's Folder. | 
|  String | getMessageID()Get the Message-ID. | 
|  Enumeration | getNonMatchingHeaderLines(String[] names)Get all non-matching headerlines. | 
|  Enumeration | getNonMatchingHeaders(String[] names)Get non-matching headers. | 
|  boolean | getPeek()Get whether or not to use the PEEK variant of FETCH when fetching message content. | 
| protected  com.sun.mail.imap.protocol.IMAPProtocol | getProtocol()Get this message's folder's protocol connection. | 
|  Date | getReceivedDate()Get the recieved date (INTERNALDATE) | 
|  Address[] | getRecipients(Message.RecipientType type)Get the desired Recipient type. | 
|  Address[] | getReplyTo()Get the ReplyTo addresses. | 
|  Address | getSender()Get the "Sender" attribute. | 
|  Date | getSentDate()Get the SentDate. | 
| protected  int | getSequenceNumber()Get this message's IMAP sequence number. | 
|  int | getSize()Get the message size. | 
|  String | getSubject()Get the decoded subject. | 
| protected  long | getUID() | 
|  void | invalidateHeaders()Invalidate cached header and envelope information for this message. | 
| protected  boolean | isREV1() | 
|  boolean | isSet(Flags.Flag flag)Test if the given Flags are set in this message. | 
|  void | removeHeader(String name)Remove all headers with this name. | 
|  void | setContentID(String cid)Set the "Content-ID" header field of this Message. | 
|  void | setContentLanguage(String[] languages)Set the "Content-Language" header of this MimePart. | 
|  void | setContentMD5(String md5)Set the "Content-MD5" header field of this Message. | 
|  void | setDataHandler(DataHandler content)This method provides the mechanism to set this part's content. | 
|  void | setDescription(String description,
               String charset)Set the "Content-Description" header field for this Message. | 
|  void | setDisposition(String disposition)Set the "Content-Disposition" header field of this Message. | 
| protected  void | setExpunged(boolean set)Sets the expunged flag for this Message. | 
|  void | setFileName(String filename)Set the filename associated with this part, if possible. | 
|  void | setFlags(Flags flag,
         boolean set)Set/Unset the given flags in this message. | 
|  void | setFrom(Address address)Set the RFC 822 "From" header field. | 
|  void | setHeader(String name,
          String value)Set the value for this header_name. | 
| protected  void | setMessageNumber(int msgnum)Wrapper around the protected method Message.setMessageNumber() to make that method accessible to IMAPFolder. | 
|  void | setPeek(boolean peek)Set whether or not to use the PEEK variant of FETCH when fetching message content. | 
|  void | setRecipients(Message.RecipientType type,
              Address[] addresses)Set the specified recipient type to the given addresses. | 
|  void | setReplyTo(Address[] addresses)Set the RFC 822 "Reply-To" header field. | 
|  void | setSender(Address address)Set the RFC 822 "Sender" header field. | 
|  void | setSentDate(Date d)Set the RFC 822 "Date" header field. | 
|  void | setSubject(String subject,
           String charset)Set the "Subject" header field. | 
| protected  void | setUID(long uid) | 
|  void | writeTo(OutputStream os)Write out the bytes into the given outputstream. | 
| Methods inherited from class javax.mail.internet.MimeMessage | 
|---|
| addRecipients, createInternetHeaders, createMimeMessage, getAllRecipients, getContent, getContentTypeObj, getInputStream, getRawInputStream, isMimeType, parse, reply, saveChanges, setContent, setContent, setDescription, setFrom, setRecipients, setSubject, setText, setText, setText, updateHeaders, updateMessageID, writeTo | 
| Methods inherited from class javax.mail.Message | 
|---|
| addRecipient, getFolder, getMessageNumber, isExpunged, match, setFlag, setRecipient | 
| Methods inherited from class java.lang.Object | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Field Detail | 
|---|
protected com.sun.mail.imap.protocol.BODYSTRUCTURE bs
protected com.sun.mail.imap.protocol.ENVELOPE envelope
protected String sectionId
| Constructor Detail | 
|---|
protected IMAPMessage(IMAPFolder folder,
                      int msgnum)
protected IMAPMessage(Session session)
| Method Detail | 
|---|
protected com.sun.mail.imap.protocol.IMAPProtocol getProtocol()
                                                       throws com.sun.mail.iap.ProtocolException,
                                                              FolderClosedException
com.sun.mail.iap.ProtocolException
FolderClosedException
protected boolean isREV1()
                  throws FolderClosedException
FolderClosedExceptionprotected Object getMessageCacheLock()
protected int getSequenceNumber()
protected void setMessageNumber(int msgnum)
setMessageNumber in class Messageprotected long getUID()
protected void setUID(long uid)
protected void setExpunged(boolean set)
Message
setExpunged in class Messageset - the expunged flag
protected void checkExpunged()
                      throws MessageRemovedException
MessageRemovedException
protected void forceCheckExpunged()
                           throws MessageRemovedException,
                                  FolderClosedException
MessageRemovedException
FolderClosedExceptionprotected int getFetchBlockSize()
public Address[] getFrom()
                  throws MessagingException
getFrom in class MimeMessageMessagingExceptionMimeMessage.headers
public void setFrom(Address address)
             throws MessagingException
MimeMessagenull,
 this header is removed.
setFrom in class MimeMessageaddress - the sender of this message
MessagingException
IllegalWriteException - if the underlying 
                        implementation does not support modification 
                        of existing values
public void addFrom(Address[] addresses)
             throws MessagingException
MimeMessage
addFrom in class MimeMessageaddresses - the senders of this message
IllegalWriteException - if the underlying 
                        implementation does not support modification 
                        of existing values
MessagingException
public Address getSender()
                  throws MessagingException
getSender in class MimeMessageMessagingExceptionMimeMessage.headers
public void setSender(Address address)
               throws MessagingException
MimeMessagenull,
 this header is removed.
setSender in class MimeMessageaddress - the sender of this message
IllegalWriteException - if the underlying
                        implementation does not support modification
                        of existing values
MessagingException
public Address[] getRecipients(Message.RecipientType type)
                        throws MessagingException
getRecipients in class MimeMessagetype - Type of recepient
MessagingException - if header could not
                  be retrieved
AddressException - if the header is misformattedMimeMessage.headers, 
Message.RecipientType.TO, 
Message.RecipientType.CC, 
Message.RecipientType.BCC, 
MimeMessage.RecipientType.NEWSGROUPS
public void setRecipients(Message.RecipientType type,
                          Address[] addresses)
                   throws MessagingException
MimeMessagenull, the corresponding
 recipient field is removed.
setRecipients in class MimeMessagetype - Recipient typeaddresses - Addresses
MessagingException
IllegalWriteException - if the underlying 
                        implementation does not support modification 
                        of existing valuesMimeMessage.getRecipients(javax.mail.Message.RecipientType)
public void addRecipients(Message.RecipientType type,
                          Address[] addresses)
                   throws MessagingException
MimeMessage
addRecipients in class MimeMessagetype - Recipient typeaddresses - Addresses
MessagingException
IllegalWriteException - if the underlying 
                        implementation does not support modification 
                        of existing values
public Address[] getReplyTo()
                     throws MessagingException
getReplyTo in class MimeMessageMessagingExceptionMimeMessage.headers
public void setReplyTo(Address[] addresses)
                throws MessagingException
MimeMessagenull, this header is removed.
setReplyTo in class MimeMessageaddresses - addresses to which replies should be directed
MessagingException
IllegalWriteException - if the underlying 
                        implementation does not support modification 
                        of existing values
MethodNotSupportedException - if the underlying 
                        implementation does not support setting this
                        attribute
public String getSubject()
                  throws MessagingException
getSubject in class MimeMessageMessagingExceptionMimeMessage.headers
public void setSubject(String subject,
                       String charset)
                throws MessagingException
MimeMessageThe application must ensure that the subject does not contain any line breaks.
Note that if the charset encoding process fails, a MessagingException is thrown, and an UnsupportedEncodingException is included in the chain of nested exceptions within the MessagingException.
setSubject in class MimeMessagesubject - The subjectcharset - The charset
IllegalWriteException - if the underlying
                                implementation does not support modification
                                of existing values
MessagingException
public Date getSentDate()
                 throws MessagingException
getSentDate in class MimeMessageMessagingException
public void setSentDate(Date d)
                 throws MessagingException
MimeMessagenull, the existing "Date" field is removed.
setSentDate in class MimeMessaged - the sent date of this message
MessagingException
IllegalWriteException - if the underlying 
                        implementation does not support modification 
                        of existing values
public Date getReceivedDate()
                     throws MessagingException
getReceivedDate in class MimeMessageMessagingException
public int getSize()
            throws MessagingException
Note that this returns RFC822.SIZE. That is, it's the size of the whole message, header and body included.
getSize in interface PartgetSize in class MimeMessageMessagingException
public int getLineCount()
                 throws MessagingException
Returns the "body_fld_lines" field from the BODYSTRUCTURE. Note that this field is available only for text/plain and message/rfc822 types
getLineCount in interface PartgetLineCount in class MimeMessageMessagingException
public String[] getContentLanguage()
                            throws MessagingException
getContentLanguage in interface MimePartgetContentLanguage in class MimeMessageMessagingException
public void setContentLanguage(String[] languages)
                        throws MessagingException
MimeMessage
setContentLanguage in interface MimePartsetContentLanguage in class MimeMessagelanguages - array of language tags
IllegalWriteException - if the underlying
                        implementation does not support modification
MessagingException
public String getInReplyTo()
                    throws MessagingException
MessagingException
public String getContentType()
                      throws MessagingException
getContentType in interface PartgetContentType in class MimeMessageMessagingExceptionDataHandler
public String getDisposition()
                      throws MessagingException
getDisposition in interface PartgetDisposition in class MimeMessageMessagingExceptionPart.ATTACHMENT, 
Part.INLINE, 
Part.getFileName()
public void setDisposition(String disposition)
                    throws MessagingException
MimeMessagedisposition is null, any existing "Content-Disposition"
 header field is removed.
setDisposition in interface PartsetDisposition in class MimeMessagedisposition - disposition of this part
MessagingException
IllegalWriteException - if the underlying implementation
                        does not support modification of this headerPart.ATTACHMENT, 
Part.INLINE, 
Part.setFileName(java.lang.String)
public String getEncoding()
                   throws MessagingException
getEncoding in interface MimePartgetEncoding in class MimeMessageMessagingException
public String getContentID()
                    throws MessagingException
getContentID in interface MimePartgetContentID in class MimeMessageMessagingException
public void setContentID(String cid)
                  throws MessagingException
MimeMessagecid parameter is null, any existing 
 "Content-ID" is removed.
setContentID in class MimeMessageIllegalWriteException - if the underlying
                        implementation does not support modification
MessagingException
public String getContentMD5()
                     throws MessagingException
getContentMD5 in interface MimePartgetContentMD5 in class MimeMessageMessagingException
public void setContentMD5(String md5)
                   throws MessagingException
MimeMessage
setContentMD5 in interface MimePartsetContentMD5 in class MimeMessagemd5 - the MD5 value
IllegalWriteException - if the underlying
                        implementation does not support modification
MessagingException
public String getDescription()
                      throws MessagingException
getDescription in interface PartgetDescription in class MimeMessageMessagingException
public void setDescription(String description,
                           String charset)
                    throws MessagingException
MimeMessagenull, then any 
 existing "Content-Description" fields are removed. If the description contains non US-ASCII characters, it will be encoded using the specified charset. If the description contains only US-ASCII characters, no encoding is done and it is used as-is.
Note that if the charset encoding process fails, a MessagingException is thrown, and an UnsupportedEncodingException is included in the chain of nested exceptions within the MessagingException.
setDescription in class MimeMessagedescription - Descriptioncharset - Charset for encoding
IllegalWriteException - if the underlying
                                implementation does not support modification
MessagingException
public String getMessageID()
                    throws MessagingException
getMessageID in class MimeMessageMessagingException - if the retrieval of this field
                        causes any exception.MessageIDTerm
public String getFileName()
                   throws MessagingException
getFileName in interface PartgetFileName in class MimeMessageMessagingException
public void setFileName(String filename)
                 throws MessagingException
MimeMessageSets the "filename" parameter of the "Content-Disposition" header field of this message.
 If the mail.mime.encodefilename System property
 is set to true, the MimeUtility.encodeText method will be used to encode the
 filename.  While such encoding is not supported by the MIME
 spec, many mailers use this technique to support non-ASCII
 characters in filenames.  The default value of this property
 is false.
setFileName in interface PartsetFileName in class MimeMessagefilename - Filename to associate with this part
IllegalWriteException - if the underlying implementation
                        does not support modification of this header
MessagingException
protected InputStream getContentStream()
                                throws MessagingException
getContentStream in class MimeMessageMessagingExceptionMimeMessage.getContentStream()
public DataHandler getDataHandler()
                           throws MessagingException
getDataHandler in interface PartgetDataHandler in class MimeMessageMessagingException
public void setDataHandler(DataHandler content)
                    throws MessagingException
MimeMessage
setDataHandler in interface PartsetDataHandler in class MimeMessagecontent - The DataHandler for the content.
MessagingException
IllegalWriteException - if the underlying implementation
                        does not support modification of existing values
public void writeTo(OutputStream os)
             throws IOException,
                    MessagingException
writeTo in interface PartwriteTo in class MimeMessageIOException - 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 writtenDataHandler.writeTo(java.io.OutputStream)
public String[] getHeader(String name)
                   throws MessagingException
getHeader in interface PartgetHeader in class MimeMessagename - name of header
MessagingExceptionMimeUtility
public String getHeader(String name,
                        String delimiter)
                 throws MessagingException
getHeader in interface MimePartgetHeader in class MimeMessagename - the name of this headerdelimiter - separator between values
MessagingException
public void setHeader(String name,
                      String value)
               throws MessagingException
MimeMessage
setHeader in interface PartsetHeader in class MimeMessagename - header namevalue - header value
MessagingException
IllegalWriteException - if the underlying 
                                implementation does not support modification 
                                of existing valuesMimeUtility
public void addHeader(String name,
                      String value)
               throws MessagingException
MimeMessage
addHeader in interface PartaddHeader in class MimeMessagename - header namevalue - header value
MessagingException
IllegalWriteException - if the underlying 
                                implementation does not support modification 
                                of existing valuesMimeUtility
public void removeHeader(String name)
                  throws MessagingException
MimeMessage
removeHeader in interface PartremoveHeader in class MimeMessagename - the name of this header
MessagingException
IllegalWriteException - if the underlying 
                                implementation does not support modification 
                                of existing values
public Enumeration getAllHeaders()
                          throws MessagingException
getAllHeaders in interface PartgetAllHeaders in class MimeMessageMessagingExceptionMimeUtility
public Enumeration getMatchingHeaders(String[] names)
                               throws MessagingException
getMatchingHeaders in interface PartgetMatchingHeaders in class MimeMessageMessagingException
public Enumeration getNonMatchingHeaders(String[] names)
                                  throws MessagingException
getNonMatchingHeaders in interface PartgetNonMatchingHeaders in class MimeMessageMessagingException
public void addHeaderLine(String line)
                   throws MessagingException
MimeMessage
addHeaderLine in interface MimePartaddHeaderLine in class MimeMessageIllegalWriteException - if the underlying
                        implementation does not support modification
MessagingException
public Enumeration getAllHeaderLines()
                              throws MessagingException
getAllHeaderLines in interface MimePartgetAllHeaderLines in class MimeMessageMessagingException
public Enumeration getMatchingHeaderLines(String[] names)
                                   throws MessagingException
getMatchingHeaderLines in interface MimePartgetMatchingHeaderLines in class MimeMessageMessagingException
public Enumeration getNonMatchingHeaderLines(String[] names)
                                      throws MessagingException
getNonMatchingHeaderLines in interface MimePartgetNonMatchingHeaderLines in class MimeMessageMessagingException
public Flags getFlags()
               throws MessagingException
getFlags in class MimeMessageMessagingExceptionFlags
public boolean isSet(Flags.Flag flag)
              throws MessagingException
isSet in class MimeMessageflag - the flag
MessagingExceptionFlags.Flag, 
Flags.Flag.ANSWERED, 
Flags.Flag.DELETED, 
Flags.Flag.DRAFT, 
Flags.Flag.FLAGGED, 
Flags.Flag.RECENT, 
Flags.Flag.SEEN
public void setFlags(Flags flag,
                     boolean set)
              throws MessagingException
setFlags in class MimeMessageflag - Flags object containing the flags to be setset - the value to be set
MessagingException
IllegalWriteException - if the underlying 
                        implementation does not support modification 
                        of existing values.MessageChangedEventpublic void setPeek(boolean peek)
public boolean getPeek()
public void invalidateHeaders()
| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||