Mail

There are two main participants in email, servers and clients. Servers generally speak Simple Mail Transport Protocol (SMTP) to each other; to clients, they might speak SMTP, but they are more likely to communicate with IMAP or POP.

All of these protocols are somewhat similar, as you might imagine.

SMTP example

Connected to mail.cs.fsu.edu.
Escape character is '^]'.
220 *****************************
helo mail.cs.fsu.edu
250 mail.cs.fsu.edu
mail from: 
250 Ok
rcpt to: 
250 Ok
data
354 End data with .
Subject: This is a test

Test email.

.
250 Ok: queued as 37A76F343C
quit
221 Bye

POP example

openssl s_client -connect mail.cs.fsu.edu:995
[ .... lots of secure handshake information ... ]
CONNECTED(00000003)
+OK POP3 mail  server ready
user rlangley
+OK User name accepted, password please
pass *********
+OK Mailbox open, 10 messages
list
+OK Mailbox scan listing follows
1 1219
2 5033
3 4626
4 3767
5 3920
6 7581
7 8074
8 2105
9 8966
10 2243
.
quit
+OK Sayonara

IMAP example

openssl s_client -connect mail.cs.fsu.edu:993
CONNECTED(00000003)
[ ... lots of secure handshake information ... ]
* OK [CAPABILITY IMAP4REV1 LITERAL+ SASL-IR LOGIN-REFERRALS AUTH=PLAIN AUTH=LOGIN] mail IMAP4rev1  at Tue, 9 Apr 2013 15:45:16 -0400 (EDT)
tag1 login rlangley *********
tag1 OK [CAPABILITY IMAP4REV1 LITERAL+ IDLE NAMESPACE MAILBOX-REFERRALS BINARY UNSELECT SCAN SORT THREAD=REFERENCES THREAD=ORDEREDSUBJECT MULTIAPPEND] User rlangley authenticated
tag2 select INBOX
* 10 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1351002924] UID validity status
* OK [UIDNEXT 11] Predicted next UID
* FLAGS (\Answered \Flagged \Deleted \Draft \Seen)
* OK [PERMANENTFLAGS (\* \Answered \Flagged \Deleted \Draft \Seen)] Permanent flags
* OK [UNSEEN 1] first unseen message in /var/spool/mail/rlangley
tag2 OK [READ-WRITE] SELECT completed

Major Text Clients

In the Unix world, there are only a few text/text-like clients that are reasonably popular:

  • mutt
  • alpine
  • rmail/gnus/mew (inside of Emacs)
  • mail/mailx (becoming hard to find)

Other command line tools for working with email

  • biabam (useful for sending attachments)
  • sendemail (useful for sending attachments)
  • fetchmail (useful for retrieving email en masse)

Major GUI clients

  • Thunderbird
  • Claws/Sylpheed
  • Evolution

Text web browsers

  • w3m
  • links/elinks/lynx/links2

Other web tools

  • wget/puf
  • curl
  • httrack
  • mirrortool.pl (very old, similar idea to even older mirror.pl)