javax.mail.internet
Class InternetAddress
java.lang.Object
javax.mail.Address
javax.mail.internet.InternetAddress
- All Implemented Interfaces:
- Serializable, Cloneable
public class InternetAddress
- extends Address
- implements Cloneable
This class represents an Internet email address using the syntax
of RFC822.
Typical address syntax is of the form "user@host.domain" or
"Personal Name ".
- Author:
- Bill Shannon, John Mani
- See Also:
- Serialized Form
address
protected String address
personal
protected String personal
- The personal name.
encodedPersonal
protected String encodedPersonal
- The RFC 2047 encoded version of the personal name.
This field and the personal
field track each
other, so if a subclass sets one of these fields directly, it
should set the other to null
, so that it is
suitably recomputed.
InternetAddress
public InternetAddress()
- Default constructor.
InternetAddress
public InternetAddress(String address)
throws AddressException
- Constructor.
Parse the given string and create an InternetAddress.
See the parse
method for details of the parsing.
The address is parsed using "strict" parsing.
This constructor does not perform the additional
syntax checks that the
InternetAddress(String address, boolean strict)
constructor does when strict
is true
.
This constructor is equivalent to
InternetAddress(address, false)
.
- Parameters:
address
- the address in RFC822 format
- Throws:
AddressException
- if the parse failed
InternetAddress
public InternetAddress(String address,
boolean strict)
throws AddressException
- Parse the given string and create an InternetAddress.
If
strict
is false, the detailed syntax of the
address isn't checked.
- Parameters:
address
- the address in RFC822 formatstrict
- enforce RFC822 syntax
- Throws:
AddressException
- if the parse failed- Since:
- JavaMail 1.3
InternetAddress
public InternetAddress(String address,
String personal)
throws UnsupportedEncodingException
- Construct an InternetAddress given the address and personal name.
The address is assumed to be a syntactically valid RFC822 address.
- Parameters:
address
- the address in RFC822 formatpersonal
- the personal name
- Throws:
UnsupportedEncodingException
InternetAddress
public InternetAddress(String address,
String personal,
String charset)
throws UnsupportedEncodingException
- Construct an InternetAddress given the address and personal name.
The address is assumed to be a syntactically valid RFC822 address.
- Parameters:
address
- the address in RFC822 formatpersonal
- the personal namecharset
- the MIME charset for the name
- Throws:
UnsupportedEncodingException
clone
public Object clone()
- Return a copy of this InternetAddress object.
- Overrides:
clone
in class Object
- Since:
- JavaMail 1.2
getType
public String getType()
- Return the type of this address. The type of an InternetAddress
is "rfc822".
- Specified by:
getType
in class Address
- Returns:
- address type
- See Also:
InternetAddress
setAddress
public void setAddress(String address)
- Set the email address.
- Parameters:
address
- email address
setPersonal
public void setPersonal(String name,
String charset)
throws UnsupportedEncodingException
- Set the personal name. If the name contains non US-ASCII
characters, then the name will be encoded using the specified
charset as per RFC 2047. If the name contains only US-ASCII
characters, no encoding is done and the name is used as is.
- Parameters:
name
- personal namecharset
- MIME charset to be used to encode the name as
per RFC 2047
- Throws:
UnsupportedEncodingException
- if the charset encoding
fails.- See Also:
setPersonal(String)
setPersonal
public void setPersonal(String name)
throws UnsupportedEncodingException
- Set the personal name. If the name contains non US-ASCII
characters, then the name will be encoded using the platform's
default charset. If the name contains only US-ASCII characters,
no encoding is done and the name is used as is.
- Parameters:
name
- personal name
- Throws:
UnsupportedEncodingException
- if the charset encoding
fails.- See Also:
setPersonal(String name, String charset)
getAddress
public String getAddress()
- Get the email address.
- Returns:
- email address
getPersonal
public String getPersonal()
- Get the personal name. If the name is encoded as per RFC 2047,
it is decoded and converted into Unicode. If the decoding or
conversion fails, the raw data is returned as is.
- Returns:
- personal name
toString
public String toString()
- Convert this address into a RFC 822 / RFC 2047 encoded address.
The resulting string contains only US-ASCII characters, and
hence is mail-safe.
- Specified by:
toString
in class Address
- Returns:
- possibly encoded address string
toUnicodeString
public String toUnicodeString()
- Returns a properly formatted address (RFC 822 syntax) of
Unicode characters.
- Returns:
- Unicode address string
- Since:
- JavaMail 1.2
equals
public boolean equals(Object a)
- The equality operator.
- Specified by:
equals
in class Address
- Parameters:
a
- Address object
hashCode
public int hashCode()
- Compute a hash code for the address.
- Overrides:
hashCode
in class Object
toString
public static String toString(Address[] addresses)
- Convert the given array of InternetAddress objects into
a comma separated sequence of address strings. The
resulting string contains only US-ASCII characters, and
hence is mail-safe.
- Parameters:
addresses
- array of InternetAddress objects
- Returns:
- comma separated string of addresses
- Throws:
ClassCastException,
- if any address object in the
given array is not an InternetAddress object. Note
that this is a RuntimeException.
toString
public static String toString(Address[] addresses,
int used)
- Convert the given array of InternetAddress objects into
a comma separated sequence of address strings. The
resulting string contains only US-ASCII characters, and
hence is mail-safe.
The 'used' parameter specifies the number of character positions
already taken up in the field into which the resulting address
sequence string is to be inserted. It is used to determine the
line-break positions in the resulting address sequence string.
- Parameters:
addresses
- array of InternetAddress objectsused
- number of character positions already used, in
the field into which the address string is to
be inserted.
- Returns:
- comma separated string of addresses
- Throws:
ClassCastException,
- if any address object in the
given array is not an InternetAddress object. Note
that this is a RuntimeException.
getLocalAddress
public static InternetAddress getLocalAddress(Session session)
- Return an InternetAddress object representing the current user.
The entire email address may be specified in the "mail.from"
property. If not set, the "mail.user" and "mail.host" properties
are tried. If those are not set, the "user.name" property and
InetAddress.getLocalHost
method are tried.
Security exceptions that may occur while accessing this information
are ignored. If it is not possible to determine an email address,
null is returned.
- Parameters:
session
- Session object used for property lookup
- Returns:
- current user's email address
parse
public static InternetAddress[] parse(String addresslist)
throws AddressException
- Parse the given comma separated sequence of addresses into
InternetAddress objects. Addresses must follow RFC822 syntax.
- Parameters:
addresslist
- comma separated address strings
- Returns:
- array of InternetAddress objects
- Throws:
AddressException
- if the parse failed
parse
public static InternetAddress[] parse(String addresslist,
boolean strict)
throws AddressException
- Parse the given sequence of addresses into InternetAddress
objects. If
strict
is false, simple email addresses
separated by spaces are also allowed. If strict
is
true, many (but not all) of the RFC822 syntax rules are enforced.
In particular, even if strict
is true, addresses
composed of simple names (with no "@domain" part) are allowed.
Such "illegal" addresses are not uncommon in real messages.
Non-strict parsing is typically used when parsing a list of
mail addresses entered by a human. Strict parsing is typically
used when parsing address headers in mail messages.
- Parameters:
addresslist
- comma separated address stringsstrict
- enforce RFC822 syntax
- Returns:
- array of InternetAddress objects
- Throws:
AddressException
- if the parse failed
parseHeader
public static InternetAddress[] parseHeader(String addresslist,
boolean strict)
throws AddressException
- Parse the given sequence of addresses into InternetAddress
objects. If
strict
is false, the full syntax rules for
individual addresses are not enforced. If strict
is
true, many (but not all) of the RFC822 syntax rules are enforced.
To better support the range of "invalid" addresses seen in real
messages, this method enforces fewer syntax rules than the
parse
method when the strict flag is false
and enforces more rules when the strict flag is true. If the
strict flag is false and the parse is successful in separating out an
email address or addresses, the syntax of the addresses themselves
is not checked.
- Parameters:
addresslist
- comma separated address stringsstrict
- enforce RFC822 syntax
- Returns:
- array of InternetAddress objects
- Throws:
AddressException
- if the parse failed- Since:
- JavaMail 1.3
validate
public void validate()
throws AddressException
- Validate that this address conforms to the syntax rules of
RFC 822. The current implementation checks many, but not
all, syntax rules. Note that even though the syntax of
the address may be correct, there's no guarantee that a
mailbox of that name exists.
- Throws:
AddressException
- if the address isn't valid.- Since:
- JavaMail 1.3
isGroup
public boolean isGroup()
- Indicates whether this address is an RFC 822 group address.
Note that a group address is different than the mailing
list addresses supported by most mail servers. Group addresses
are rarely used; see RFC 822 for details.
- Returns:
- true if this address represents a group
- Since:
- JavaMail 1.3
getGroup
public InternetAddress[] getGroup(boolean strict)
throws AddressException
- Return the members of a group address. A group may have zero,
one, or more members. If this address is not a group, null
is returned. The
strict
parameter controls whether
the group list is parsed using strict RFC 822 rules or not.
The parsing is done using the parseHeader
method.
- Returns:
- array of InternetAddress objects, or null
- Throws:
AddressException
- if the group list can't be parsed- Since:
- JavaMail 1.3
Submit a bug or feature Copyright 2006 Sun Microsystems, Inc. All rights reserved.