Java Reference
In-Depth Information
CHAPTER 7
Messages and Parts
The
javax.mail.Message
class is the abstract superclass for all individual emails, news
postings, and similar messages:
public
abstract
class
Message
extends
Object
implements
Part
There's one concrete
Message
subclass in the standard JavaMail API,
javax.mail.internet.MimeMessage
. This is used for both email and Usenet news
messages. Service providers are free to add classes for their own message formats. For
instance, IBM might provide a
NotesMessage
class for IBM Notes.
The
Message
class mainly declares abstract getter and setter methods that define the
common properties of most messages. These properties include the addressees of the
message, the recipients of the message, the subject and content of the message, and
various other attributes. You can think of these as properties of the envelope that con‐
tains the message.
Furthermore, the
Message
class implements the
Part
interface. The
Part
interface
mostly handles the body of an email message. It declares methods for getting and setting
the content type of the message body, getting and setting the actual message body con‐
tent, getting and setting arbitrary headers from the message, and getting input streams
that are fed by the message body. The main body part of a message can contain other
parts. This is used to handle attachments, message bodies that are available in multiple
formats, and other multipart emails. Since the
Message
class is abstract and needs to be
subclassed by concrete classes such as
MimeMessage
, most of these methods are not
actually redeclared in
Message
but can be invoked by any actual instance of
Message
.
We'll begin by discussing the methods actually declared in
Message
, then move on to
those declared in
Part
.