javax.mail
Class Message

java.lang.Object
  extended by 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.sendMessage method.

Version:
1.3
Author:
Chris Burdess
See Also:
Part

Nested Class Summary
static class Message.RecipientType
          The types of recipients to which a message can be sent.
 
Field Summary
protected  boolean expunged
          True if this message has been expunged.
protected  Folder folder
          The containing folder.
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.
protected  Session session
          The session in scope for this message.
 
Fields inherited from interface javax.mail.Part
ATTACHMENT, INLINE
 
Constructor Summary
protected Message()
          Constructor with no folder or session.
protected Message(Folder folder, int msgnum)
          Constructor with a folder and a message number.
protected Message(Session session)
          Constructor with a session.
 
Method Summary
abstract  void addFrom(Address[] addresses)
          Adds addresses to the identity of the person sending this message.
 void addRecipient(Message.RecipientType type, Address address)
          Adds the recipient address of the given type.
abstract  void addRecipients(Message.RecipientType type, Address[] addresses)
          Adds the recipient addresses of the given type.
 Address[] getAllRecipients()
          Returns all the recipient addresses in the message.
abstract  Flags getFlags()
          Returns the flags for this message.
 Folder getFolder()
          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.
 int getMessageNumber()
          Returns the message number for this message within its folder.
abstract  java.util.Date getReceivedDate()
          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.Date getSentDate()
          Returns the date this message was sent.
abstract  java.lang.String getSubject()
          Returns the subject of this message.
 boolean isExpunged()
          Indicates whether this message is expunged.
 boolean isSet(Flags.Flag flag)
          Indicates whether the specified flag is set in this message.
 boolean match(SearchTerm term)
          Indicates whether the specified search term applies to this message.
abstract  Message reply(boolean replyToAll)
          Returns a new message suitable for a reply to this message.
abstract  void saveChanges()
          Save any changes made to this message into its underlying store, if the message was obtained from a folder.
protected  void setExpunged(boolean expunged)
          Sets the expunged flag for this message.
 void setFlag(Flags.Flag flag, boolean set)
          Sets the specified flag on this message to the given value.
abstract  void setFlags(Flags flag, boolean set)
          Sets the specified flags on this message to the given value.
abstract  void setFrom()
          Sets the identity of the person sending this message, as obtained from the property "mail.user".
abstract  void setFrom(Address address)
          Sets the identity of the person sending this message.
protected  void setMessageNumber(int msgnum)
          Sets the message number for this message.
 void setRecipient(Message.RecipientType type, Address address)
          Sets the recipient address of the specified type.
abstract  void setRecipients(Message.RecipientType type, Address[] addresses)
          Sets the recipient addresses of the specified type.
 void setReplyTo(Address[] addresses)
          Sets the addresses to which replies should be directed.
abstract  void setSentDate(java.util.Date date)
          Sets the date this message was sent.
abstract  void setSubject(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 folder
msgnum - 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 MessagingException
Sets 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 values
java.lang.IllegalStateException - if this message is obtained from a READ_ONLY folder
MessagingException

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 values
java.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 values
java.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 type
addresses - the addresses
Throws:
IllegalWriteException - if the underlying implementation does not support modification of existing values
java.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 values
MessagingException

addRecipients

public abstract void addRecipients(Message.RecipientType type,
                                   Address[] addresses)
                            throws MessagingException
Adds the recipient addresses of the given type.

Parameters:
type - the recipient type
addresses - the addresses
Throws:
IllegalWriteException - if the underlying implementation does not support modification of existing values
java.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 values
MessagingException

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 MessagingException
Returns the subject of this message.

Throws:
MessagingException

setSubject

public abstract void setSubject(java.lang.String subject)
                         throws MessagingException
Sets the subject of this message.

Parameters:
subject - the subject
Throws:
IllegalWriteException - if the underlying implementation does not support modification of existing values
java.lang.IllegalStateException - if this message is obtained from a READ_ONLY folder.
MessagingException

getSentDate

public abstract java.util.Date getSentDate()
                                    throws MessagingException
Returns the date this message was sent.

Throws:
MessagingException

setSentDate

public abstract void setSentDate(java.util.Date date)
                          throws MessagingException
Sets 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 values
java.lang.IllegalStateException - if this message is obtained from a READ_ONLY folder.
MessagingException

getReceivedDate

public abstract java.util.Date getReceivedDate()
                                        throws MessagingException
Returns 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 setFlags method 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 set
set - the value to be set
Throws:
IllegalWriteException - if the underlying implementation does not support modification of existing values
java.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 set
set - the value to be set
Throws:
IllegalWriteException - if the underlying implementation does not support modification of existing values
java.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 MessagingException
Save 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 values
java.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


© Copyright 2003, 2004 The Free Software Foundation, All rights reserved