A complete e-mail system can consist of all the following components1:

Mail Storage Agent (MSA)
eg: qpopper
Mail Retrieval Agent (MRA)
eg: fetchmail, getmail
Mail Delivery Agent (MDA)
eg: procmail, maildrop
eg: kbiff, gbiff, ixbiff, xbiff, wmbiff
Mail User Agent (MUA)
eg: mutt, pine, balsa, kmail, evolution, tkrat, elm, mush, mh
eg: less, more
eg: vim, emacs
OpenPGP Client2
eg: PGP, GnuPG
Signature Generator
eg: signature, siggen
Mail Transfer Agent (MTA)
eg: exim, sendmail, qmail, smail
List Server
eg: listserv, majordomo

How these can fit together:

  1. My ISP's MSA holds e-mail sent to me.
  2. My MRA gets it from my ISP (using POP or IMAP).
  3. My vacation program could send an automated reply to all incoming e-mail (or just some).
  4. My MDA organises and filters my incoming e-mail.
  5. My biff lets me know that new e-mail has arrived.
  6. My MUA shows me a list of e-mail and allows me to deal with each appropriately by either reading:
    1. My OpenPGP client can decrypt e-mail or verify signatures.
    2. My pager allows me to read through an e-mail.
    ...or writing:
    1. My text editor (or word processor) allows me to write the e-mail.
    2. My signature generator adds a tagline.
    3. My OpenPGP client encrypts or signs the e-mail.
  7. My MUA passes the e-mail to my MTA which passes it to my ISP's MTA (using SMTP).
  8. If my e-mail was addressed to a mailing list, a list server will expand the address.
  9. My e-mail is received by someone else's ISP; GOTO 1.

This is an extreme example of a system that uses all possible components. The only required components are:

  • MSA
  • MRA
  • MUA
  • Pager
  • Editor
  • MTA

Quite often (moreso in Windows than Unix) some of these components are combined into a single program. For example, MUAs can often retrive and transfer e-mail themselves and include an internal pager, editor, OpenPGP client, and signature generator. There are also some servers that act as a MSA, MTA, and list server.

1: All examples are taken from Unix (where these components are more seperable) and I tried to include some of the most popular options. Please give additional examples under the specific node unless you are providing an example of a complete system.

2: In theory you could use a standard other than OpenPGP (even other than PKI!) to encrypt and sign your e-mail, but I've never heard of someone doing such a thing.