Modern email systems are a suite of programs working together. User agents (e.g., elm, mail) are the programs that interface with the end user for creation and display of email. Transport agents (sendmail, smail, fetchmail) are responsible for forwarding mail to the system for which it is intended. Delivery agents (rmail) put mail in the system in the proper mailbox.
The topic of configuring an Internet-connected email service would fill a large book by itself.[1] The sendmail and fetchmail commands are included in this chapter primarily to give a feel for how they fit into the overall Linux world.
[1] In fact, there is a definite reference book that you may use: Costales, Bryan, Sendmail, 2nd ed., Sebastopol, CA: O'Reilly Books, 1997.
If you're configuring sendmail for a single system or small network, you probably don't need to make extensive modifications to the sendmail.cf file, for which you should thank God. These days most Linux distributions contain a default sendmail.cf file that should meet most needs. Alternatively, you can use the m4 macro generator to build new sendmail.cf files with special functionality (for example, dumb relays to a smarter server). For details on these and other deeply confusing processes, consult the sendmail web site:
http://www.sendmail.org
To use the default sendmail.cf you will need to make one minor change. Edit the file and search for the string Dj$w. Change the ".foo.com" appended to it to your domain name. Next, modify the sendmail.cw file to contain all the possible variations on your machine name. For example, sequences like the following have worked for me:
yourmachine
yourmachine.
yourmachine.yourdomain
yourmachine.yourdomain.com
yourmachine.yourmachine.yourdomain.com
Then restart the sendmail daemon with the sendmail control script and you should be in business.
In addition, Linux provides several utilities (wall, write, talk, rwall) for communicating directly with another user's terminal. These are fairly invasive programs and should be used sparingly. If having messages show up on your screen uninvited irritates you, use the mesg utility to deny other users permission to display to your terminal.
biff | Toggle message notification. |
elm | Invoke email user interface. |
fetchmail | Retrieve mail from remote servers. |
formail | Invoke mail filter. |
| Invoke email user interface. |
makemap | Create sendmail's database maps. |
mesg | Toggle your terminal's writability. |
mimencode | Encode binary files. |
rmail | Interpret incoming mail. |
rwall | Write to all users on remote systems. |
sendmail | Mail transport agent. |
talk | Talk interactively to another user. |
uuencode | Encode binary file for mail transmission. |
wall | Write to all users on local system. |
write | Write to a particular user. |