Class Message
- java.lang.Object
-
- javax.mail.Message
-
- All Implemented Interfaces:
Part
- Direct Known Subclasses:
MimeMessage
public abstract class Message extends java.lang.Object implements Part
An abstract mail message, consisting of headers and content.A message is retrieved from a folder, and is normally a lightweight object that retrieves its properties on demand. Fetch profiles may be used to prefetch certain properties of a message.
To send a message, an appropriate subclsass is instantiated, its properties set, and it is then delivered via a transport using the
Transport.sendMessagemethod.- Version:
- 1.4
- Author:
- Chris Burdess
- See Also:
Part
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classMessage.RecipientTypeThe types of recipients to which a message can be sent.
-
Field Summary
Fields Modifier and Type Field Description protected booleanexpungedTrue if this message has been expunged.protected FolderfolderThe containing folder.protected intmsgnumThe number of this message within its folder, starting from 1, or 0 if the message was not retrieved from a folder.protected SessionsessionThe session in scope for this message.-
Fields inherited from interface javax.mail.Part
ATTACHMENT, INLINE
-
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract voidaddFrom(Address[] addresses)Adds addresses to the identity of the person sending this message.voidaddRecipient(Message.RecipientType type, Address address)Adds the recipient address of the given type.abstract voidaddRecipients(Message.RecipientType type, Address[] addresses)Adds the recipient addresses of the given type.Address[]getAllRecipients()Returns all the recipient addresses in the message.abstract FlagsgetFlags()Returns the flags for this message.FoldergetFolder()Returns the folder from which this message was obtained.abstract Address[]getFrom()Returns the identity of the person(s) who ordered the sending of this message.intgetMessageNumber()Returns the message number for this message within its folder.abstract java.util.DategetReceivedDate()Returns the date this message was received.abstract Address[]getRecipients(Message.RecipientType type)Returns all the recipient addresses of the specified type.Address[]getReplyTo()Returns the addresses to which replies should be directed.abstract java.util.DategetSentDate()Returns the date this message was sent.abstract java.lang.StringgetSubject()Returns the subject of this message.booleanisExpunged()Indicates whether this message is expunged.booleanisSet(Flags.Flag flag)Indicates whether the specified flag is set in this message.booleanmatch(SearchTerm term)Indicates whether the specified search term applies to this message.abstract Messagereply(boolean replyToAll)Returns a new message suitable for a reply to this message.abstract voidsaveChanges()Save any changes made to this message into its underlying store, if the message was obtained from a folder.protected voidsetExpunged(boolean expunged)Sets the expunged flag for this message.voidsetFlag(Flags.Flag flag, boolean set)Sets the specified flag on this message to the given value.abstract voidsetFlags(Flags flag, boolean set)Sets the specified flags on this message to the given value.abstract voidsetFrom()Sets the identity of the person sending this message, as obtained from the property "mail.user".abstract voidsetFrom(Address address)Sets the identity of the person sending this message.protected voidsetMessageNumber(int msgnum)Sets the message number for this message.voidsetRecipient(Message.RecipientType type, Address address)Sets the recipient address of the specified type.abstract voidsetRecipients(Message.RecipientType type, Address[] addresses)Sets the recipient addresses of the specified type.voidsetReplyTo(Address[] addresses)Sets the addresses to which replies should be directed.abstract voidsetSentDate(java.util.Date date)Sets the date this message was sent.abstract voidsetSubject(java.lang.String subject)Sets the subject of this message.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface javax.mail.Part
addHeader, getAllHeaders, getContent, getContentType, getDataHandler, getDescription, getDisposition, getFileName, getHeader, getInputStream, getLineCount, getMatchingHeaders, getNonMatchingHeaders, getSize, isMimeType, removeHeader, setContent, setContent, setDataHandler, setDescription, setDisposition, setFileName, setHeader, setText, writeTo
-
-
-
-
Field Detail
-
msgnum
protected int msgnum
The number of this message within its folder, starting from 1, or 0 if the message was not retrieved from a folder.
-
expunged
protected boolean expunged
True if this message has been expunged.
-
folder
protected Folder folder
The containing folder.
-
session
protected Session session
The session in scope for this message.
-
-
Constructor Detail
-
Message
protected Message()
Constructor with no folder or session.
-
Message
protected Message(Folder folder, int msgnum)
Constructor with a folder and a message number. Used by folder implementations.- Parameters:
folder- the containing foldermsgnum- the sequence number within the folder
-
Message
protected Message(Session session)
Constructor with a session. Used to create messages for sending.- Parameters:
session- the session in scope
-
-
Method Detail
-
getFrom
public abstract Address[] getFrom() throws MessagingException
Returns the identity of the person(s) who ordered the sending of this message.In certain implementations, this may be different from the entity that actually sent the message.
- Throws:
MessagingException
-
setFrom
public abstract void setFrom() throws MessagingExceptionSets the identity of the person sending this message, as obtained from the property "mail.user". If this property is absent, the system property "user.name" is used.- Throws:
IllegalWriteException- if the underlying implementation does not support modification of existing valuesjava.lang.IllegalStateException- if this message is obtained from a READ_ONLY folderMessagingException
-
setFrom
public abstract void setFrom(Address address) throws MessagingException
Sets the identity of the person sending this message.- Parameters:
address- the sender- Throws:
IllegalWriteException- if the underlying implementation does not support modification of existing valuesjava.lang.IllegalStateException- if this message is obtained from a READ_ONLY folder.MessagingException
-
addFrom
public abstract void addFrom(Address[] addresses) throws MessagingException
Adds addresses to the identity of the person sending this message.- Parameters:
addresses- the senders- Throws:
IllegalWriteException- if the underlying implementation does not support modification of existing valuesjava.lang.IllegalStateException- if this message is obtained from a READ_ONLY folder.MessagingException
-
getRecipients
public abstract Address[] getRecipients(Message.RecipientType type) throws MessagingException
Returns all the recipient addresses of the specified type.- Parameters:
type- the recipient type- Throws:
MessagingException
-
getAllRecipients
public Address[] getAllRecipients() throws MessagingException
Returns all the recipient addresses in the message.- Throws:
MessagingException
-
setRecipients
public abstract void setRecipients(Message.RecipientType type, Address[] addresses) throws MessagingException
Sets the recipient addresses of the specified type.- Parameters:
type- the recipient typeaddresses- the addresses- Throws:
IllegalWriteException- if the underlying implementation does not support modification of existing valuesjava.lang.IllegalStateException- if this message is obtained from a READ_ONLY folder.MessagingException
-
setRecipient
public void setRecipient(Message.RecipientType type, Address address) throws MessagingException
Sets the recipient address of the specified type.- Throws:
IllegalWriteException- if the underlying implementation does not support modification of existing valuesMessagingException
-
addRecipients
public abstract void addRecipients(Message.RecipientType type, Address[] addresses) throws MessagingException
Adds the recipient addresses of the given type.- Parameters:
type- the recipient typeaddresses- the addresses- Throws:
IllegalWriteException- if the underlying implementation does not support modification of existing valuesjava.lang.IllegalStateException- if this message is obtained from a READ_ONLY folder.MessagingException
-
addRecipient
public void addRecipient(Message.RecipientType type, Address address) throws MessagingException
Adds the recipient address of the given type.- Throws:
IllegalWriteException- if the underlying implementation does not support modification of existing valuesMessagingException
-
getReplyTo
public Address[] getReplyTo() throws MessagingException
Returns the addresses to which replies should be directed. This defaults to the sender of the message.- Throws:
MessagingException
-
setReplyTo
public void setReplyTo(Address[] addresses) throws MessagingException
Sets the addresses to which replies should be directed.- Throws:
MessagingException
-
getSubject
public abstract java.lang.String getSubject() throws MessagingExceptionReturns the subject of this message.- Throws:
MessagingException
-
setSubject
public abstract void setSubject(java.lang.String subject) throws MessagingExceptionSets the subject of this message.- Parameters:
subject- the subject- Throws:
IllegalWriteException- if the underlying implementation does not support modification of existing valuesjava.lang.IllegalStateException- if this message is obtained from a READ_ONLY folder.MessagingException
-
getSentDate
public abstract java.util.Date getSentDate() throws MessagingExceptionReturns the date this message was sent.- Throws:
MessagingException
-
setSentDate
public abstract void setSentDate(java.util.Date date) throws MessagingExceptionSets the date this message was sent.- Parameters:
date- the sent date of this message- Throws:
IllegalWriteException- if the underlying implementation does not support modification of existing valuesjava.lang.IllegalStateException- if this message is obtained from a READ_ONLY folder.MessagingException
-
getReceivedDate
public abstract java.util.Date getReceivedDate() throws MessagingExceptionReturns the date this message was received.- Throws:
MessagingException
-
getFlags
public abstract Flags getFlags() throws MessagingException
Returns the flags for this message.Modifying any of these flags does not affect the message flags. Use the
setFlagsmethod to change the message's flags.- Throws:
MessagingException
-
isSet
public boolean isSet(Flags.Flag flag) throws MessagingException
Indicates whether the specified flag is set in this message.- Parameters:
flag- the flag- Throws:
MessagingException
-
setFlags
public abstract void setFlags(Flags flag, boolean set) throws MessagingException
Sets the specified flags on this message to the given value. Any flags in this message that are not specified in the given flags are unaffected.- Parameters:
flag- the flags to be setset- the value to be set- Throws:
IllegalWriteException- if the underlying implementation does not support modification of existing valuesjava.lang.IllegalStateException- if this message is obtained from a READ_ONLY folder.MessagingException
-
setFlag
public void setFlag(Flags.Flag flag, boolean set) throws MessagingException
Sets the specified flag on this message to the given value.- Parameters:
flag- the flag to be setset- the value to be set- Throws:
IllegalWriteException- if the underlying implementation does not support modification of existing valuesjava.lang.IllegalStateException- if this message is obtained from a READ_ONLY folder.MessagingException
-
getMessageNumber
public int getMessageNumber()
Returns the message number for this message within its folder.- See Also:
msgnum
-
setMessageNumber
protected void setMessageNumber(int msgnum)
Sets the message number for this message.- See Also:
msgnum
-
getFolder
public Folder getFolder()
Returns the folder from which this message was obtained.
-
isExpunged
public boolean isExpunged()
Indicates whether this message is expunged.- See Also:
Folder.expunge()
-
setExpunged
protected void setExpunged(boolean expunged)
Sets the expunged flag for this message.
-
reply
public abstract Message reply(boolean replyToAll) throws MessagingException
Returns a new message suitable for a reply to this message. The new message will have its recipients set appropriately, but will have no content.The subject field is filled in with the original subject prefixed with "Re:" (unless it already starts with "Re:").
- Parameters:
replyToAll- if the reply should be sent to all recipients of this message- Throws:
MessagingException
-
saveChanges
public abstract void saveChanges() throws MessagingExceptionSave any changes made to this message into its underlying store, if the message was obtained from a folder. The message may be saved immediately or when its containing folder is closed.This method ensures that any header fields are consistent with the changed message contents.
- Throws:
IllegalWriteException- if the underlying implementation does not support modification of existing valuesjava.lang.IllegalStateException- if this message is obtained from a READ_ONLY folder.MessagingException
-
match
public boolean match(SearchTerm term) throws MessagingException
Indicates whether the specified search term applies to this message.- Parameters:
term- the search term- Throws:
MessagingException
-
-