Anatomy of an email address
Note: RFC2821 and RFC2822, the successors to RFC821 and RFC822 are out.
Internet style addresses
A normal Internet style email address looks like this:
There are two parts in any address: The local part to the left of the @ (at) sign and the domain to the right of the @ sign. The domain should always be a Fully Qualified Domain Name (FQDN), i.e. a host name with a domain.
Adresses without the domain-part like
should not be used. They will either be rejected or get the domain of the first mail server the mail passes through, which might not be the domain that the sender intended it to get.
One special case is the postmaster address: Every email system must accept mail to postmaster (without the domain part) and deliver this mail to somebody who is responsible for this mail system (see RFC2821 section 4.5.1).
If there is a (temporary) problem with the domain name system, Address Literals (also called Domain Literals) can be used for addressing. An address looks like this:
The use of Domain Literals was strongly discouraged by RFC822, but the new RFC2821 doesn't say anything about this discouragement any more. It can be seen in the wild every once in a while. Note that the squared brackets are required for this kind of address.
A special form of an email address is the explicit source route. To be exact, it is more than an address. It is an address plus some routing information, telling the hosts between sender and receiver over which route they should send the mail on. A source route address looks like this:
This means: Send this mail to donald.mit.edu, then to mail.mit.edu and only then on to email@example.com.
The usage of this format is deprecated. Because of the spam threat, most mail servers on the Internet will block relaying. So they will probably not heed the source route and deliver directly to the final destination.
The percent hack
The so called percent hack is another form of source route. Here an address lookes like this:
The mail is sent to the host donald.mit.edu, which will strip off the domain and change the rightmost percent sign (%) into an At sign (@), which will result in the following address:
So it sends the mail on to mail.mit.edu and so on. This use of the percent sign is deprecated because of the associated risk of spam relaying. (See above.)
Note that there is no official document, that makes the percent sign special. It is strictly up to the receiving host, whether it will interpret the percent sign in this special way.
UUCP style addresses
Back in the old days, when there was no Internet, people exchanged messages by UUCP (Unix To Unix Copy). Emails often travelled through several intermediate hosts before they reached their destination. And because there was no domain name system and no central control, nobody had a list of all the computers on the net. If you wanted to send a mail to somebody, you would have to know all the hosts between your computer and the recipients. Email addresses looked like this:
This is called a bang path, it gives, from left to right, the names of the hosts the email should go through. Only the last (rightmost) element is not a host name, but the account name of the recipient.
Every once in a while you can still see an address with this format, but it should not be used on the Internet today. Most MTAs wont accept source routes anyways, because of the spam relaying risks. (See above.)
There is one problem with mixing bang pathes and Internet style addresses. Look at an address like this:
Does this mean: Send to rusx, then to umoskva, then to kgbvax and then to firstname.lastname@example.org. Or does it mean, send it to gateway.ru, which will look at the local part and send it on to rusx and so on. There is no official rule how this should be interpreted.
X.400 is a mail standard developed by ISO. Nowadays it only plays a marginal role, but there are still some companies and other organizations using it in their internal mail system with a gateway to the Internet. A X.400 mail address look like this:
S=postmaster; OU=rz; P=uni-frankfurt; A=d400; C=de;
As you can see they have no resemblance to internet type addresses. They use a hierarchy of attributes and values. Here, 'S' stands for 'surname', 'OU' for 'organisational unit', 'C' for 'country' and so on. The attributes are not always the same.
For interoperation with Internet mail, the addresses are translated to a form that can be understood by Internet mailers. One typical form looks like this: