org.apache.mailet
Class MailAddress

java.lang.Object
  |
  +--org.apache.mailet.MailAddress

public class MailAddress
extends java.lang.Object
implements java.io.Serializable

A representation of an email address.

This class encapsulates functionalities to access to different parts of an email address without dealing with its parsing.

A MailAddress is an address specified in the MAIL FROM and RCPT TO commands in SMTP sessions. These are either passed by an external server to the mailet-compliant SMTP server, or they are created programmatically by the mailet-compliant server to send to another (external) SMTP server. Mailets and matchers use the MailAddress for the purpose of evaluating the sender and recipient(s) of a message.

MailAddress parses an email address as defined in RFC 821 (SMTP) p. 30 and 31 where addresses are defined in BNF convention. As the mailet API does not support the aged "SMTP-relayed mail" addressing protocol, this leaves all addresses to be a , as per the spec. The MailAddress's "user" is the of the and "host" is the of the mailbox.

This class is a good way to validate email addresses as there are some valid addresses which would fail with a simpler approach to parsing address. It also removes parsing burden from mailets and matchers that might not realize the flexibility of an SMTP address. For instance, "serge@home"@lokitech.com is a valid SMTP address (the quoted text serge@home is the user and lokitech.com is the host). This means all current parsing to date is incorrect as we just find the first @ and use that to separate user from host.

This parses an address as per the BNF specification for from RFC 821 on page 30 and 31, section 4.1.2. COMMAND SYNTAX. http://www.freesoft.org/CIE/RFC/821/15.htm

Version:
1.0
Author:
Roberto Lo Giacco , Serge Knystautas
See Also:
Serialized Form

Constructor Summary
MailAddress(java.lang.String address)
          Construct a MailAddress parsing the provided String object.
MailAddress(java.lang.String newUser, java.lang.String newHost)
          Construct a MailAddress with the provided personal name and email address.
 
Method Summary
 boolean equals(java.lang.Object object)
           
 java.lang.String getHost()
          Return the host part.
 java.lang.String getUser()
          Return the user part.
 javax.mail.internet.InternetAddress toInternetAddress()
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

MailAddress

public MailAddress(java.lang.String address)
            throws javax.mail.internet.ParseException
Construct a MailAddress parsing the provided String object.

The personal variable is left empty.

Parameters:
address - the email address compliant to the RFC822 format
Throws:
javax.mail.internet.ParseException - if the parse failed

MailAddress

public MailAddress(java.lang.String newUser,
                   java.lang.String newHost)
Construct a MailAddress with the provided personal name and email address.
Parameters:
user - the username or account name on the mail server
host - the server that should accept messages for this user
Throws:
javax.mail.internet.ParseException - if the parse failed
Method Detail

getHost

public java.lang.String getHost()
Return the host part.
Returns:
a String object representing the host part of this email address.
Throws:
AddressException - if the parse failed

getUser

public java.lang.String getUser()
Return the user part.
Returns:
a String object representing the user part of this email address.
Throws:
AddressException - if the parse failed

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

equals

public boolean equals(java.lang.Object object)
Overrides:
equals in class java.lang.Object

toInternetAddress

public javax.mail.internet.InternetAddress toInternetAddress()