javax.mail.internet

Class InternetAddress

public class InternetAddress extends Address implements Cloneable

An RFC 822 address.

Version: 1.3

Author: Chris Burdess

Field Summary
protected Stringaddress
The string representation of the address.
protected StringencodedPersonal
The RFC 2047 encoded version of the personal name.
protected Stringpersonal
The personal name.
Constructor Summary
InternetAddress()
Constructor for an empty address.
InternetAddress(String address)
Constructor with an RFC 822 string representation of the address.
InternetAddress(String address, boolean strict)
Constructor with an RFC 822 string representation of the address.
InternetAddress(String address, String personal)
Constructor with an address and personal name.
InternetAddress(String address, String personal, String charset)
Construct with an address and personal name.
Method Summary
Objectclone()
Returns a copy of this address.
booleanequals(Object other)
StringgetAddress()
Returns the email address.
InternetAddress[]getGroup(boolean strict)
Returns the members of a group address.
static InternetAddressgetLocalAddress(Session session)
Returns an InternetAddress object representing the current user.
StringgetPersonal()
Returns the personal name.
StringgetType()
Returns the type of this address.
inthashCode()
booleanisGroup()
Indicates whether this address is an RFC 822 group address.
static InternetAddress[]parse(String addresslist)
Parses the given comma-separated sequence of RFC 822 addresses into InternetAddresses.
static InternetAddress[]parse(String addresslist, boolean strict)
Parses the given comma-separated sequence of RFC 822 addresses into InternetAddresses.
static InternetAddress[]parseHeader(String addresslist, boolean strict)
Parses the given comma-separated sequence of RFC 822 addresses into InternetAddresses.
voidsetAddress(String address)
Sets the email address.
voidsetPersonal(String name, String charset)
Sets the personal name.
voidsetPersonal(String name)
Sets the personal name.
StringtoString()
Returns the RFC 822 / RFC 2047 string representation of this address.
static StringtoString(Address[] addresses)
Converts the given array of InternetAddresses into a comma-separated sequence of address strings.
static StringtoString(Address[] addresses, int used)
Converts the given array of InternetAddresses into a comma-separated sequence of address strings.
StringtoUnicodeString()
Returns the RFC 822 string representation of this address.
voidvalidate()
Validate this address according to the syntax rules of RFC 822.

Field Detail

address

protected String address
The string representation of the address.

encodedPersonal

protected String encodedPersonal
The RFC 2047 encoded version of the personal name.

personal

protected String personal
The personal name.

Constructor Detail

InternetAddress

public InternetAddress()
Constructor for an empty address.

InternetAddress

public InternetAddress(String address)
Constructor with an RFC 822 string representation of the address. Note that this parses the address in non-strict mode: this is for compatibility with implementations and not with the JavaMail specification.

Parameters: address the address in RFC 822 format

Throws: AddressException if the parse failed

InternetAddress

public InternetAddress(String address, boolean strict)
Constructor with an RFC 822 string representation of the address.

Parameters: address the address in RFC 822 format strict enforce RFC 822 syntax

Throws: AddressException if the parse failed

Since: JavaMail 1.3

InternetAddress

public InternetAddress(String address, String personal)
Constructor with an address and personal name. The address is assumed to be syntactically valid according to RFC 822.

Parameters: address the address in RFC 822 format personal the personal name

InternetAddress

public InternetAddress(String address, String personal, String charset)
Construct with an address and personal name. The address is assumed to be syntactically valid according to RFC 822.

Parameters: address the address in RFC 822 format personal the personal name charset the charset for the personal name

Method Detail

clone

public Object clone()
Returns a copy of this address.

equals

public boolean equals(Object other)

getAddress

public String getAddress()
Returns the email address.

getGroup

public InternetAddress[] getGroup(boolean strict)
Returns the members of a group address. A group may have any number of members. If this address is not a group, this method returns null.

Throws: AddressException if a parse error occurs

Since: JavaMail 1.3

getLocalAddress

public static InternetAddress getLocalAddress(Session session)
Returns an InternetAddress object representing the current user. This information is determined from the following locations, in order of preference:
  1. the session property mail.from
  2. the session properties mail.user or user.name, and mail.host
  3. the system property user.name and the hostname of localhost as determined by InetAddress.getLocalHost

Parameters: session the session

getPersonal

public String getPersonal()
Returns the personal name.

getType

public String getType()
Returns the type of this address. The type of an InternetAddress is "rfc822".

hashCode

public int hashCode()

isGroup

public boolean isGroup()
Indicates whether this address is an RFC 822 group address. Group addresses are not mailing list addresses and are rarely used; see RFC 822 for details.

Since: JavaMail 1.3

parse

public static InternetAddress[] parse(String addresslist)
Parses the given comma-separated sequence of RFC 822 addresses into InternetAddresses.

Parameters: addresslist the comma-separated addresses

Throws: AddressException if the parse failed

parse

public static InternetAddress[] parse(String addresslist, boolean strict)
Parses the given comma-separated sequence of RFC 822 addresses into InternetAddresses. If strict is false, simple email addresses separated by spaces are also allowed. If strict is true, many (but not all) of the RFC 822 syntax rules are enforced. Even if strict is true, addresses composed of simple names (with no "@domain" part) are allowed.

Parameters: addresslist the comma-separated addresses strict whether to enforce RFC 822 syntax

Throws: AddressException if the parse failed

parseHeader

public static InternetAddress[] parseHeader(String addresslist, boolean strict)
Parses the given comma-separated sequence of RFC 822 addresses into InternetAddresses. If strict is false, simple email addresses separated by spaces are also allowed. If strict is true, many (but not all) of the RFC 822 syntax rules are enforced.

Parameters: addresslist the comma-separated addresses strict whether to enforce RFC 822 syntax

Throws: AddressException if the parse failed

Since: JavaMail 1.3

setAddress

public void setAddress(String address)
Sets the email address.

setPersonal

public void setPersonal(String name, String charset)
Sets the personal name. If the name contains non US-ASCII characters, it will be encoded using the specified charset as per RFC 2047.

Parameters: name the personal name charset the charset to be used for any encoding UnsupportedEncodingException if charset encoding fails

setPersonal

public void setPersonal(String name)
Sets the personal name. If the name contains non US-ASCII characters, it will be encoded using the platform default charset.

Parameters: name the personal name

Throws: UnsupportedEncodingException if charset encoding fails

toString

public String toString()
Returns the RFC 822 / RFC 2047 string representation of this address. The resulting string contains only US-ASCII characters, and is therefore mail-safe.

toString

public static String toString(Address[] addresses)
Converts the given array of InternetAddresses into a comma-separated sequence of address strings. The resulting string contains only US-ASCII characters, and is therefore mail-safe.

Parameters: addresses the InternetAddresses

Throws: ClassCastException if any of the specified addresses is not an InternetAddress

toString

public static String toString(Address[] addresses, int used)
Converts the given array of InternetAddresses into a comma-separated sequence of address strings. The resulting string contains only US-ASCII characters, and is therefore mail-safe.

Parameters: addresses the InternetAddresses used the number of character positions already used, in the field into which the address string is to be inserted

Throws: ClassCastException if any of the specified addresses is not an InternetAddress

toUnicodeString

public String toUnicodeString()
Returns the RFC 822 string representation of this address. The returned string may contain unencoded Unicode characters and may therefore not be mail-safe.

validate

public void validate()
Validate this address according to the syntax rules of RFC 822. This implementation checks many but not all of the syntax rules.

Throws: AddressException if the address is invalid

Since: JavaMail 1.3

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