For electronic mail, an address is made up of at least the name of a machine handling the person's mail, and a user identification recognized by this system. This may be the recipient's login name, but may also be anything else. Other mail addressing schemes, like X.400, use a more general set of ``attributes'' which are used to look up the recipient's host in an X.500 directory server.
The way a machine name is interpreted, i.e. at which site your message will finally wind up, and how to combine this name with the recipient's user name greatly depends on the network you are on.
Internet sites adhere to the RFC 822 standard, which requires a notation of firstname.lastname@example.org, where host.domain is the host's fully qualified domain name. The middle thing is called an ``at'' sign. Because this notation does not involve a route to the destination host but gives the (unique) hostname instead, this is called an absolute address.
In the original UUCP environment, the prevalent form was path!host!user, where path described a sequence of hosts the message had to travel before reaching the destination host. This construct is called the bang path notation, because an exclamation mark is loosely called a ``bang''. Today, many UUCP-based networks have adopted RFC 822, and will understand this type of address.
Now, these two types of addressing don't mix too well. Assume an address of hostA!user@hostB. It is not clear whether the `@' sign takes precedence over the path, or vice versa: do we have to send the message to hostB, which mails it to hostA!user, or should it be sent to hostA, which fowards it to user@hostB?
Addresses that mix different types of address operators are called hybrid addresses. Most notorious is the above example. It is usually resolved by giving the `@' sign precedence over the path. In the above example, this means sending the message to hostB first.
However, there is a way to specify routes in RFC 822-conformant ways: <@hostA,@hostB:user@hostC> denotes the address of user on hostC, where hostC is to be reached through hostA and hostB (in that order). This type of address is freqeuently called a route-addr address.
Then, there is the `%' address operator: user%hostB@hostA will first be sent to hostA, which expands the rightmost (in this case, only) percent sign to an `@' sign. The address is now user@hostB, and the mailer will happily forward your message to hostB which delivers it to user. This type of address is sometimes referred to as ``Ye Olde ARPANET Kludge'', and its use is discouraged. Nevertheless, many mail transport agents generate this type of address.
Other networks have still different means of addressing. DECnet-based networks, for example, use two colons as an address separator, yielding an address of host::user. Lastly, the X.400 standard uses an entirely different scheme, by describing a recipient by a set of attribute-value pairs, like country and organization.
On FidoNet, each user is identified by a code like 2:320/204.9, consisting of four numbers denoting zone (2 is for Europe), net (320 being Paris and Banlieue), node (the local hub), and point (the individual user's PC). Fidonet addresses can be mapped to RFC 822; the above would be written as Thomas.Quinot@p9.f204.n320.z2.fidonet.org. Now didn't I say domain names are easy to remember?
There are some implications to using these different types of addressing which will be described throughout the following sections. In a RFC 822 environment, however, you will rarely use anything else than absolute addresses like email@example.com.