The mutt package is in my opinion the best Unix mail utility around. It is text-based, not GUI, but its features are outstanding.
Following is a quick introduction to mutt.
THE HEADLINES SCREEN:
As many other mail utilities, when you first enter mutt you will be at the main message list. Here is a sample screen:
q:Quit d:Del u:Undel s:Save m:Mail r:Reply g:Group ?:Help 463 Aug 29 Gene Nelson ( 489) Suggestions from Richard F. Tax for group 464 Aug 29 Marjorie Chan ( 73) Reporting back on scripted Cantonese text 465 Aug 29 Marjorie Chan ( 4) Oops - should be 1986-1988 (not 1996-1998 466 Aug 30 Linda Kilcrease ( 60) article on Calif. high tech firm opening 467 Sep 01 Norm Matloff ( 86) Re: Cantonese Translations 468 r Sep 03 email@example.com ( 23) Jason Jue -- ECS154 in FQ 469 Sep 08 firstname.lastname@example.org ( 17) PCR 470 F Sep 09 To matloff ( 142) Fwd: 471 r Sep 09 Vandiver, Sue ( 58) Re: e-mail list 472 Sep 09 root ( 113) 473 Sep 09 root ( 110) 474 Sep 12 Tianwei Xie ( 25) Re: new address for KX Web site 475 r Sep 12 Tianwei Xie ( 23) Re: new address for KX Web site 476 Sep 12 email@example.com ( 7) adv hrs 477 O Sep 13 root ( 68) 478 Sep 14 Robert Rivers ( 58) Fwd: HELP Wanted: Desparately Speaking 479 Sep 14 Richard F Tax ( 18) Re: Fwd: HELP Wanted: Desperately Speakin 480 Sep 15 Gene Nelson ( 47) An employer - created glut to insure age 481 Sep 15 Gene Nelson ( 212) Response to "Myth" from UCEA 482 r Sep 15 Joel Chen ( 5) Re: no "endian" problem 483 r Sep 15 Robert Rivers ( 14) Re: Computerworld ---Mutt: /var/mail/matloff [570 msgs, 3 new, 2M]---(mailbox-order)--------------Note the access-history information shown to the right of the message numbers, such as the r in
482 r Sep 15 Joel Chen ( 5) Re: no "endian" problemThat means that we have already replied to this message---a real help if we forget whether we have done so or not! The letter N means a new message, O one which is not new but which we have not read yet, D means the message is deleted, d means the attachment is deleted but not the message itself, * means the message is tagged (see below), and so on.
If you save a message, mutt will prompt you for the name of the file you wish to save or append to. It does allow you to use file-completion (use the TAB key), a la emacs and tcsh, so you can save typing. Note: If we save a message, it is automatically marked as deleted, though you can use the u key to undelete.
Here are some of the keystrokes which can be used in a headlines screen:
down arrow or j move down within the (undeleted) headlines list (use J if you want to get to a deleted message) up arrow or k move up within the (undeleted) headlines list (use K if you want to get to a deleted message)
move to message ? help space bar read the message currently pointed to by the cursor d delete the message currently pointed to by the cursor u undelete the message currently pointed to by the cursor s save the message currently pointed to by the cursor r reply to the message currently pointed to by the cursor (reply to sender only) g reply to the message currently pointed to by the cursor (reply to entire group) f forward the message currently pointed to by the cursor to someone else t tag the message currently pointed to by the cursor m compose a message to mail (either a new or a previously-unfinished one) z next page of message headlines Z previous page of message headlines / search for regexp (see below) x exit mutt without deleting "deleted" messages q exit mutt and delete "deleted" messages * move to last message of the entire list
In the search command, you have various choices concerning WHAT is to be searched. For example
will search for "xyz" in the message headlines, while
/ ~b xyz
/ ~h xyz
/ ~b xyz ~b uvw
VIEWING MESSAGES WITH THE PAGER:
When you select a message to read, you view the message one screen at a time, using mutt's pager (like the Unix "more" command). Here are some commands available;
space bar go to the next page of this message - go to the previous page of this message q quit this message and go back to the headlines list d delete the message currently pointed to by the cursor s save the message currently pointed to by the cursor r reply to the message currently pointed to by the cursor (reply to sender only) g reply to the message currently pointed to by the cursor (reply to entire group) f forward the message currently pointed to by the cursor to someone elseNote that many of the same commands for the headlines page apply here too.
SENDING MESSAGES (INCLUDING REPLYING TO MESSAGES):
Assuming that you have a line
set autoeditin your ~/.muttrc file (see below), mutt will automatically put you in the text editor when you wish to send a message or reply to one. In the latter case, the original message will be placed in your editing buffer with `>' marks at the start of each line, making it convenient to show which of the sender's original statements you are replying to.
You can specify the editor you wish to use with a line in your ~/.muttrc file, such as
set editor="/usr/home/matloff/Machines/Editors/VIM/VIM"If you do not set this, mutt will take the system vi as the default editor. (If try to send or reply but mutt enters the editor but immediately exits, that means mutt can't find the editor. Check ~/.muttrc and the VISUAL environment variable.)
When you finish editing and are ready to send, simply leave your editor as usual, e.g. for vi by typing `ZZ'. You then will be in the mutt send-message screen, e.g.
To: firstname.lastname@example.org Cc: Bcc: Subject: Re: schedule Reply-To: Fcc: ===== Attachments ===== - 1 /tmp/mutt-heather-7245-1 [text/plain, 7bit, 1K]This is the last step before sending off the message. Do you wish to go ahead now? You have several keystroke choices:
-- Mutt: Compose -- 1/1 --
y yes, go ahead and sent it q no, don't send it; you will then be asked whether you wish to postpone for later E do some more editing of the message (including the header) t add to or change the "To:" list c add to or change the "Cc:" list (copies to third parties) b add to or change the "Bcc:" list (secret copies to third parties) s add to or change the "Subject:" listThe E feature is especially valuable. It gives you one more chance to make sure you are sending to everyone you want (and not sending to those you don't want), and to refine the message if needed.
The postponement feature is even more valuable. Say for example that you are composing a message but are only halfway done when you run out of time. The postponement feature allows you to very conveniently save what you have written before, and then resume writing it later. Or, maybe while composing one message you suddenly realize you need some information in another message which you have already received; the postponement feature allows you to leave your unfinished work, go look at the other message, and then return to writing the unfinished message.
To resume writing a postponed message, hit the m key while in the headlines list. You will then be presented with a list of unfinished messages, which you can traverse just like the headlines list. By the way, the unfinished messages are stored in ~/postponed.
This is another nice feature of mutt.
For example, suppose you are involved in a long e-mail discussion with several people, and currently have seven or eight messages from that discussion, all of which you wish to reply to. Instead of replying individually to each message, you can tag them all and then reply to all of them at once.
To perform an action on all of your tagged messages, type
;For instance, if you want to do a group reply (i.e. send to all people on the list) to all of the seven or eight messages in the example above), type
;gTo save all of your tagged messages to a certain file, type
;sTo delete all of your tagged messages, type
;dTagged messages are marked with `*' in the headlines list. If you accidentally tag a message by hitting the t key, just hit the t key again to untag it.
When you are in the headlines list, hitting the l key will result in mutt asking you to supply a pattern. Mutt will then list only those messages matching the pattern. If for example you input "John", it will only list messages with "John" in their headers (From: and Subject:). The other messages are still there, but this command allows you to concentrate on these.
Also, if you are in the main menu, listing your messages, hitting the e key allows you to edit that message. Your text editor will be invoked, and then you make the changes you want. After doing a save operation in the editor, the edited version of the message will appear in your messages list, with the same timestamp, right after the old one (assuming you have mutt display messages in chronological order). You can then delete the old one.
MIME MESSAGES, ATTACHMENTS AND SO ON:
MIME messages are non-text, such as graphical files, HTML and so on, which are included as attachments to the given e-mail message.
You can add an attachment to a message you send out with mutt by simply using the `a' command; you will be prompted for a file name. The attachment will be sent in 8-bit form, so you don't have to worry about non-text files being corrupted.
If you receive a MIME message, mutt allows you to specify a program to read it. If for instance I receive a message which is an HTML file, I have a line in my ~/.mailcap file,
text/html; lynx -force_html %s; needsterminal;
You can view attachments using the `v' command, which will display a menu of the attachments for that message. Move the cursor to the item you want (using the arrow keys or j/k), and then hit return. At that point the program you have specified to view the attachment will be invoked, such as lynx above.
If you use `s' to save an attached file, the e-mail header will not be included in the save file; only the attachment itself will be saved, an exact copy of the original file from which the attachment was made.
If after using `v' to view the attachment list for a message you type `d' to delete an attachment, the rest of the message will still be intact.
Mutt automatically decodes base64 messages; note, though, that the decoded message may still be unreadable, if for example it turns out to be a Microsoft Word file. You may wish to download the free wv Word conversion package, and have mutt automatically invoke wv on Word files.
YOUR ~/.muttrc AND OTHER STARTUP FILES:
You should create a file named .muttrc in your home directory, and have at least the following lines in it:
set sort=mailbox-order setautoedit. set deleteI also recommend that you have a line like
source ~/.mail_aliaseswith the latter file containing mail aliases for people you frequently send e-mail to. If for example you wish to save typing when sending to me, you could have a line
alias nm email@example.com from then on simply send your mail to "nm".
If you wish to not have your read messages moved from your original mail file to your home mbox file, then include this:
If you are having trouble with the From: line that mutt produces in your outgoing messages (I originally was getting two "at" signs, making it difficult for my recipients to reply to me), you can customize it in your startup file, e.g.
my_hdr From: Norm Matloff <firstname.lastname@example.org>
Mutt can be configured so that different features are in different colors. See the documentation for details.
COOL TRICKS USING MUTT'S ADVANCED FEATURES:
See the Mutt home page.