Mutt and PGP Reference


Mutt is a Mail User Agent (MUA) for Unix. It is a descendant of ELM, borrowing ideas from other MUAs, like PINE and Mush. Right now it's a text mode application, not an X program. But that might change one day. Mutt was written by Michael Elkins, although many other people have contributed to the mutt coding process.


The Interface

When you open mutt, you will be presented with an interface that looks something like the following:

-*-Mutt: /var/mail/rnejdl [Msgs:73 New:1 Del:2 4.1M]---(reverse-date/date)-(28%)
  1  D+ Jul 01 13:08 - Tino Steward           Re: Party Tonight
  2 NDF Jul 01 13:01 - Rusty Nejdl            Trainnet Updates
  3   T Jun 30 13:39 - Inger Klekacz          RE: FW: indexing files
  4   T Jun 30 12:37 - Eric Davis             RE: PDF vs Authorware
  5 r C Jun 30 11:05 - Rob Klippel            RE: Cisco training
  6     Jun 29 20:42 - Network Solutions      Important Security Update to Your
  7   F Jun 29 20:14 - Rusty Nejdl            Re: Post Class Evaluation
  8 r + Jun 29 11:17 - Martin J. Evans        Re: Support Request - Personal
  9 r + Jun 29 10:06 - Martin J. Evans        Re: Support Request - Personal
 10 r + Jun 29 07:50 - Chip                   RE: JavaScript Class
 11 r + Jun 29 05:05 - Martin J. Evans        Support Request - Personal
 12   + Jun 28 13:43 - Chip                   RE: ODBC Bridge
 13   F Jun 28 11:42 - Rusty Nejdl            CBT Orphans
 14     Jun 28 11:39 -       ascendpipeline
 15   F Jun 28 00:59 - Rusty Nejdl            Trainnet Network
 16 r F Jun 27 19:19 - Rusty Nejdl            Re: CBT
 17     Jun 27 18:06 - Eric Davis             FW: Verio DACUM Validation and Ver
 18 r F Jun 27 15:25 - Rusty Nejdl            Re: CBT
 19   + Jun 27 09:01 - Wayne Hinson           Re: CBT
 20     Jun 26 23:54 - VMware                 VMware Newsletter - June 2000 - Is
 21     Jun 26 23:06 - S.D.                   Double Trouble
q:Quit  d:Del  u:Undel  s:Save  m:Mail  r:Reply  g:Group  ?:Help

In addition to who sent the message and the subject, a short summary of the disposition of each message is printed beside the message number. Zero or more of the following ``flags'' may appear, which mean:

D       message is deleted
K       contains a PGP public key
M       requires mailcap to view
N       message is new
O       message is old
P       message is PGP encrypted
r       message has been replied to
S       message is PGP signed
!       message is flagged
*       message is tagged

Furthermore, the following flags reflect who the message is addressed to.

+       message is to you and you only
T       message is to you, but also to or cc'ed to others
C       message is cc'ed to you
F       message is from you

Working with Mail Messages in Mutt

When you use Mutt, any incoming messages will be automatically displayed on the display. The program updates its list of messages any time that you use the arrow keys to move up and down and also every 30 seconds when you are doing nothing.

Below is a brief list of commands used to work with your messages in MUTT.

Command Description
j or Down move to the next entry.
k of Up Move to the previous entry.
z or PageDn Go to the next page.
Z or PageUp Go to the previous page.
= or Home Jump to the first message.
* or End Jump to the last message.
m Starts a message to send to someone.
d Marks a messages as deleted.
u Undeletes a message.
enter Views a particular message.
v View any attachments on a particular message.
r Reply to just the sender of a message.
g Reply to everyone in an e-mail.
o Order your messages. There are several options available to sort your messages by:
  d - Date Sent
  f - From
  r - Date Received
  s - Subject
  o - To. This is espcially useful in messages with mailing lists and CC lines.
  t - Thread. This will group your messages acccording to a message thread. That is, all the replies to a specific message will be grouped together.
  u - Unsort. This will put mutt back to its default setting, which simply displays the messages in the order they are stored in the mail box.
  z - Size.
  c - Score. I am not completely sure what this means.
s Allows you to save a message to a file.
q Quits Mutt. When you quit Mutt, you will be asked if you want to delete any messages marked for delete. The default is Yes. You will then be asked if you want to move your mail to the ~/Mail directory. Although the default is Yes, I advise against this.
$ Synchronizes your mail. Any messages that are marked for delete will be deleted from the mail spool.


Mutt's Command Line Interface

Mutt, by default, stores any messages in your home directory in a folder called Mail. In my Mail folder, I have these files which contain mails that I have saved there to be kept separated from the rest of my mail:

[tethys]:[5:51pm]:[/home/rnejdl/Mail] > ls
abw             log             sent-mail       tech
eanderson       nancym          sig.txt         trash
inbox           outbox          sysmon          vantive
[tethys]:[5:51pm]:[/home/rnejdl/Mail] >

To view messages in a folder, I can run mutt with the -f flag and specify a specific folder. If, for example, I wanted to see the mail on the tech list, which is stored in the file called tech, I could run the following command:

[tethys]:[5:51pm]:[/home/rnejdl/Mail] > mutt -f tech

Pressing enter at that point would open up mutt with any mail stored in that file.

Mutt has many other options with more details listed in the man pages, but a brief listing of the more interesting command options is below:

-H      Specify a draft file that contains a header and body to use when starting messages.
-c      Specify a carbon copy recipient for all e-mail messages.
-a      Attach a file to your messages, such as a signature file.

PGP and Mutt

To use PGP with MUTT, you must first generate a PGP key. Use the following instructions to generate a PGP key:
  1. Make sure that you are in your home directory.
  2. Check to see if you have a .pgp directory. If you do not then type mkdir .pgp.
  3. Next, generate a PGP key by typing pgp -kg.
    1. Select "3" for the 1024-bit encryption.
    2. Type your real name followed by your e-mail address in angle brackets, like this:
      Rusty Nejdl <>
    3. Type your passphrase. Use a password that is difficult for others to remember and easy for you to remember.
    4. Retype your passphrase.
    5. It will ask you to start generating the key. Just keep typing random letters until it says "Enough, thank you." The computer uses the times between each keystroke to generate a random seed key to create your key.
  4. At the command line, type: mutt
  5. To send someone a PGP key using mutt, do the following:
    1. Press Esc and then the letter k
    2. Enter the e-mail address of the person you want to send the key to.
    3. Enter a subject for this e-mail.
    4. Enter the key ID. In this case, type your username and mutt will pull up a list of PGP keys. If there is only one key listed, press enter.
    5. Finally, press y to send the e-mail.

The .muttrc file

The .muttrc file controls the look and feel of your mutt e-mail client as well as information such as your e-mail address and real name. Below is an example of a fairly robust .muttrc file. This file contains examples of most of the configuration options that are used within mutt.

If this configuring your mutt client to this level is beyond your needs, then there is an online tool that will build you a .muttrc file using a web interface located at

There is one line below that may be needed if you are having problems with mutt and PGP. If mutt is not able to find your PGP key, you may need to add a line that says source /usr/home/rnejdl/pgp2.rc to your .muttrc file. The file that was sourced can be found using the located command. On, this file is located at /usr/local/doc/mutt/samples/pgp2.rc. More information on this can be found at

#source ~/.mail_aliases
set alias_file=~/.mail_aliases
set hdr_format="%3C %Z %[%b %d %H:%M] - %-22.22n %s"
#set hdr_format="%3C %Z %[%b %d %H:%M] - %-22.22n %s"
set pager_format="[%C/%T] %s %> %n"
set attribution="%n(%u) wrote:"
#set status_format="-+ %v +-+ !*&$@: +-+ [New=%n] [Sort=%s] [Messages=%m] "

source /usr/home/rnejdl/pgp2.rc
set editor="/usr/local/bin/vim"
set alternates="(rnejdl\@*|(rnejdl*\"
unset autoedit
set copy=yes
set askcc
set noconfirmappend
set noconfirmcreate
set delete=yes
#set force_name
set auto_tag
set help
#set hold
set include=ask-yes
set indent_str="> "
set signature="~/Mail/sig.txt"
#set sig_dashes
set nomark_old
#set mbox=+4.1999
#set metoo
set sort=reverse-date
set move=ask-no
#set point_new
set noprompt_after
set quote_regexp="^[>|\#:}] *"
set read_inc=50
set record= =outbox
set resolve
set fast_reply
set postponed=~/tmp/postponed
set reverse_alias
set save_name
set shell="/usr/local/bin/tcsh"
set status_on_top
set tilde
set timeout=60
set tmpdir=~/tmp
#set use_mailcap=yes
set write_inc=50
#set pager_index_lines=5

ignore *
unignore from: to cc date X-Smack X-World X-Team X-Mailer

color status brightwhite blue
color body brightred black "((http|ftp)://|mailto:)[^ \n\t]*[^., \n\t>]"
color tilde brightcyan black
color indicator brightwhite red
color hdrdefault brightwhite black
color message brightmagenta black
color bold brightgreen black
color error brightyellow black
#color quoted yellow black
#color quoted5 yellow black
color tree brightblue black
color attachment green black

color quoted     green           black # quoted text
color quoted1    magenta        black
color quoted2    red            black
color quoted3    green          black
color quoted4    cyan           black
color quoted5    yellow           black
color quoted6    magenta        black
color quoted7    red            black
color quoted8    green          black
color quoted9    cyan           black

#mono status bold
mono body bold "(ftp|http)://[^ ]+"
#mono tilde bold
#mono indicator bold

macro compose P "p,e"
macro compose Y "p,f"
macro index ^[d "D.^M"

mailboxes  /var/mail/rnejdl 

my_hdr From: Rusty Nejdl 
my_hdr X-State: Dazed

save-hook =mutt
save-hook =mutt

For more Information

More information on Mutt and its configuration can be found at some of these URL's listed below:

The home page of Mutt can be found at
A comprehensize guide that goes further into Mutt and its usage can be found at allows you to build a .muttrc file by using a web interface.

Test Yourself

Feel like you've learned a bit about MUTT, then take the Mutt and PGP Quiz.