O'Reilly logo

JavaMail API by Elliotte Rusty Harold

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 5. Addresses

The javax.mail.Address class is very simple. It’s an abstract class that exists mainly to be subclassed by other, protocol-specific address classes:

public abstract class Address extends Object

There are two of these subclasses in the standard JavaMail API: InternetAddress for SMTP email and NewsAddress for Usenet newsgroups:

public class InternetAddress extends Address
public class NewsAddress extends Address

Providers of other mail protocols also subclass Address with classes that represent their style of address.

The Address Class

The Address class itself is extremely simple. It has only three methods, all abstract, two of which are simple utility methods that override the corresponding methods in java.lang.Object:

public abstract String getType()
public abstract String toString()
public abstract boolean equals(Object o)

Since all three of these methods are abstract, there aren’t any guarantees about the methods’ semantics, since all must be overridden in subclasses. However, this does require that subclasses provide their own implementations of equals() and toString() rather than relying on the rather generic implementations available from java.lang.Object (and as always when you override equals() you should override hashCode() too). In general, the getType() method returns a string such as “rfc822” or “news” that indicates the kind of Address object this is.

The InternetAddress Class

An InternetAddress object represents an RFC 822-style email address. This is the ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required