public abstract class Message extends Object implements Part
Message implements the Part interface. Message contains a set of attributes and a "content". Messages within a folder also have a set of flags that describe its state within the folder.
 Message defines some new attributes in addition to those defined
 in the Part interface. These attributes specify meta-data
 for the message - i.e., addressing  and descriptive information about 
 the message. 
Message objects are obtained either from a Folder or by constructing a new Message object of the appropriate subclass. Messages that have been received are normally retrieved from a folder named "INBOX".
 A Message object obtained from a folder is just a lightweight
 reference to the actual message. The Message is 'lazily' filled 
 up (on demand) when each item is requested from the message. Note
 that certain folder implementations may return Message objects that
 are pre-filled with certain user-specified items.
 
 To send a message, an appropriate subclass of Message (e.g., 
 MimeMessage) is instantiated, the attributes and content are 
 filled in, and the message is sent using the Transport.send 
 method. 
Part| Modifier and Type | Class and Description | 
|---|---|
| static class  | Message.RecipientTypeThis inner class defines the types of recipients allowed by
 the Message class. | 
| Modifier and Type | Field and Description | 
|---|---|
| protected boolean | expungedTrue if this message has been expunged. | 
| protected Folder | folderThe containing folder, if this message is obtained from a folder | 
| protected int | msgnumThe number of this message within its folder, or zero if
 the message was not retrieved from a folder. | 
| protected Session | sessionThe Session object for this Message | 
ATTACHMENT, INLINE| Modifier | Constructor and Description | 
|---|---|
| protected  | Message()No-arg version of the constructor. | 
| protected  | Message(Folder folder,
       int msgnum)Constructor that takes a Folder and a message number. | 
| protected  | Message(Session session)Constructor that takes a Session. | 
| Modifier and Type | Method and Description | 
|---|---|
| abstract void | addFrom(Address[] addresses)Add these addresses to the existing "From" attribute | 
| void | addRecipient(Message.RecipientType type,
            Address address)Add this recipient address to the existing ones of the given type. | 
| abstract void | addRecipients(Message.RecipientType type,
             Address[] addresses)Add these recipient addresses to the existing ones of the given type. | 
| Address[] | getAllRecipients()Get all the recipient addresses for the message. | 
| abstract Flags | getFlags()Returns a  Flagsobject containing the flags for 
 this message. | 
| Folder | getFolder()Get the folder from which this message was obtained. | 
| abstract Address[] | getFrom()Returns the "From" attribute. | 
| int | getMessageNumber()Get the Message number for this Message. | 
| abstract Date | getReceivedDate()Get the date this message was received. | 
| abstract Address[] | getRecipients(Message.RecipientType type)Get all the recipient addresses of the given type. | 
| Address[] | getReplyTo()Get the addresses to which replies should be directed. | 
| abstract Date | getSentDate()Get the date this message was sent. | 
| Session | getSession()Return the Session used when this message was created. | 
| abstract String | getSubject()Get the subject of this message. | 
| boolean | isExpunged()Checks whether this message is expunged. | 
| boolean | isSet(Flags.Flag flag)Check whether the flag specified in the  flagargument is set in this message. | 
| boolean | match(SearchTerm term)Apply the specified Search criterion to this message. | 
| abstract Message | reply(boolean replyToAll)Get a new Message suitable for a reply to this message. | 
| abstract void | saveChanges()Save any changes made to this message into the message-store
 when the containing folder is closed, if the message is contained
 in a folder. | 
| protected void | setExpunged(boolean expunged)Sets the expunged flag for this Message. | 
| void | setFlag(Flags.Flag flag,
       boolean set)Set the specified flag on this message to the specified value. | 
| abstract void | setFlags(Flags flag,
        boolean set)Set the specified flags on this message to the specified value. | 
| abstract void | setFrom()Set the "From" attribute in this Message. | 
| abstract void | setFrom(Address address)Set the "From" attribute in this Message. | 
| protected void | setMessageNumber(int msgnum)Set the Message number for this Message. | 
| void | setRecipient(Message.RecipientType type,
            Address address)Set the recipient address. | 
| abstract void | setRecipients(Message.RecipientType type,
             Address[] addresses)Set the recipient addresses. | 
| void | setReplyTo(Address[] addresses)Set the addresses to which replies should be directed. | 
| abstract void | setSentDate(Date date)Set the sent date of this message. | 
| abstract void | setSubject(String subject)Set the subject of this message. | 
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitaddHeader, getAllHeaders, getContent, getContentType, getDataHandler, getDescription, getDisposition, getFileName, getHeader, getInputStream, getLineCount, getMatchingHeaders, getNonMatchingHeaders, getSize, isMimeType, removeHeader, setContent, setContent, setDataHandler, setDescription, setDisposition, setFileName, setHeader, setText, writeToprotected int msgnum
protected boolean expunged
protected Folder folder
protected Session session
protected Message()
protected Message(Folder folder, int msgnum)
folder - containing foldermsgnum - this message's sequence number within this folderprotected Message(Session session)
session - A Session objectpublic Session getSession()
public abstract Address[] getFrom() throws MessagingException
In certain implementations, this may be different from the entity that actually sent the message.
 This method returns null if this attribute
 is not present in this message. Returns an empty array if
 this attribute is present, but contains no addresses.
MessagingExceptionpublic abstract void setFrom()
                      throws MessagingException
MessagingExceptionIllegalWriteException - if the underlying 
                        implementation does not support modification 
                        of existing valuesIllegalStateException - if this message is
                        obtained from a READ_ONLY folder.public abstract void setFrom(Address address) throws MessagingException
address - the senderMessagingExceptionIllegalWriteException - if the underlying 
                        implementation does not support modification 
                        of existing valuesIllegalStateException - if this message is
                        obtained from a READ_ONLY folder.public abstract void addFrom(Address[] addresses) throws MessagingException
addresses - the sendersIllegalWriteException - if the underlying 
                        implementation does not support modification 
                        of existing valuesIllegalStateException - if this message is
                        obtained from a READ_ONLY folder.MessagingExceptionpublic abstract Address[] getRecipients(Message.RecipientType type) throws MessagingException
 This method returns null if no recipients of
 the given type are present in this message. It may return an 
 empty array if the header is present, but contains no addresses.
type - the recipient typeMessagingExceptionMessage.RecipientType.TO, 
Message.RecipientType.CC, 
Message.RecipientType.BCCpublic Address[] getAllRecipients() throws MessagingException
getRecipients method. 
 This method returns null if none of the recipient
 headers are present in this message.  It may Return an empty array
 if any recipient header is present, but contains no addresses.
MessagingExceptionMessage.RecipientType.TO, 
Message.RecipientType.CC, 
Message.RecipientType.BCC, 
getRecipients(javax.mail.Message.RecipientType)public abstract void setRecipients(Message.RecipientType type, Address[] addresses) throws MessagingException
type - the recipient typeaddresses - the addressesMessagingExceptionIllegalWriteException - if the underlying 
                        implementation does not support modification 
                        of existing valuesIllegalStateException - if this message is
                        obtained from a READ_ONLY folder.public void setRecipient(Message.RecipientType type, Address address) throws MessagingException
 The default implementation uses the setRecipients method.
type - the recipient typeaddress - the addressMessagingExceptionIllegalWriteException - if the underlying 
                        implementation does not support modification 
                        of existing valuespublic abstract void addRecipients(Message.RecipientType type, Address[] addresses) throws MessagingException
type - the recipient typeaddresses - the addressesMessagingExceptionIllegalWriteException - if the underlying 
                        implementation does not support modification 
                        of existing valuesIllegalStateException - if this message is
                        obtained from a READ_ONLY folder.public void addRecipient(Message.RecipientType type, Address address) throws MessagingException
 The default implementation uses the addRecipients method.
type - the recipient typeaddress - the addressMessagingExceptionIllegalWriteException - if the underlying 
                        implementation does not support modification 
                        of existing valuespublic Address[] getReplyTo() throws MessagingException
 The default implementation simply calls the getFrom
 method. 
 This method returns null if the corresponding
 header is not present. Returns an empty array if the header
 is present, but contains no addresses.
MessagingExceptiongetFrom()public void setReplyTo(Address[] addresses) throws MessagingException
The default implementation provided here just throws the MethodNotSupportedException.
addresses - addresses to which replies should be directedMessagingExceptionIllegalWriteException - if the underlying 
                        implementation does not support modification 
                        of existing valuesIllegalStateException - if this message is
                        obtained from a READ_ONLY folder.MethodNotSupportedException - if the underlying 
                        implementation does not support setting this
                        attributepublic abstract String getSubject() throws MessagingException
MessagingExceptionpublic abstract void setSubject(String subject) throws MessagingException
subject - the subjectMessagingExceptionIllegalWriteException - if the underlying 
                        implementation does not support modification 
                        of existing valuesIllegalStateException - if this message is
                        obtained from a READ_ONLY folder.public abstract Date getSentDate() throws MessagingException
MessagingExceptionpublic abstract void setSentDate(Date date) throws MessagingException
date - the sent date of this messageMessagingExceptionIllegalWriteException - if the underlying 
                        implementation does not support modification 
                        of existing valuesIllegalStateException - if this message is
                        obtained from a READ_ONLY folder.public abstract Date getReceivedDate() throws MessagingException
MessagingExceptionpublic abstract Flags getFlags() throws MessagingException
Flags object containing the flags for 
 this message. 
 Modifying any of the flags in this returned Flags object will 
 not affect the flags of this message. Use setFlags()
 to do that. 
MessagingExceptionFlags, 
setFlags(javax.mail.Flags, boolean)public boolean isSet(Flags.Flag flag) throws MessagingException
flag
 argument is set in this message. 
 The default implementation uses getFlags.
flag - the flagMessagingExceptionFlags.Flag, 
Flags.Flag.ANSWERED, 
Flags.Flag.DELETED, 
Flags.Flag.DRAFT, 
Flags.Flag.FLAGGED, 
Flags.Flag.RECENT, 
Flags.Flag.SEENpublic abstract void setFlags(Flags flag, boolean set) throws MessagingException
Flags object are unaffected. 
 This will result in a MessageChangedEvent being 
 delivered to any MessageChangedListener registered on this 
 Message's containing folder.
flag - Flags object containing the flags to be setset - the value to be setMessagingExceptionIllegalWriteException - if the underlying 
                        implementation does not support modification 
                        of existing values.IllegalStateException - if this message is
                        obtained from a READ_ONLY folder.MessageChangedEventpublic void setFlag(Flags.Flag flag, boolean set) throws MessagingException
MessageChangedEvent being 
 delivered to any MessageChangedListener registered on this 
 Message's containing folder. 
 The default implementation uses the setFlags method.
flag - Flags.Flag object containing the flag to be setset - the value to be setMessagingExceptionIllegalWriteException - if the underlying 
                        implementation does not support modification 
                        of existing values.IllegalStateException - if this message is
                        obtained from a READ_ONLY folder.MessageChangedEventpublic int getMessageNumber()
Valid message numbers start at 1. Messages that do not belong to any folder (like newly composed or derived messages) have 0 as their message number.
protected void setMessageNumber(int msgnum)
public Folder getFolder()
public boolean isExpunged()
getMessageNumber() are invalid on an expunged 
 Message object. 
 Messages that are expunged due to an explict expunge()
 request on the containing Folder are removed from the Folder 
 immediately. Messages that are externally expunged by another source
 are marked "expunged" and return true for the isExpunged() method, 
 but they are not removed from the Folder until an explicit 
 expunge() is done on the Folder. 
 
 See the description of expunge() for more details on
 expunge handling.
Folder.expunge()protected void setExpunged(boolean expunged)
expunged - the expunged flagpublic abstract Message reply(boolean replyToAll) throws MessagingException
 If replyToAll is set, the new Message will be addressed
 to all recipients of this message.  Otherwise, the reply will be
 addressed to only the sender of this message (using the value
 of the getReplyTo method).  
The "Subject" field is filled in with the original subject prefixed with "Re:" (unless it already starts with "Re:").
The reply message will use the same session as this message.
replyToAll - reply should be sent to all recipients
                                of this messageMessagingExceptionpublic abstract void saveChanges()
                          throws MessagingException
Messages obtained from folders opened READ_ONLY should not be modified and saveChanges should not be called on such messages.
MessagingExceptionIllegalStateException - if this message is
                        obtained from a READ_ONLY folder.IllegalWriteException - if the underlying 
                        implementation does not support modification 
                        of existing values.public boolean match(SearchTerm term) throws MessagingException
term - the Search criterionMessagingExceptionSearchTermCopyright © 1996-2015, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.