###---------------------------------------------------------------------------- ### ~/.mutt/rc -- karsten#rohrbach.de 20041020 ### http://www.webmonster.de, http://www.rohrbach.de/Content/Karsten ###---------------------------------------------------------------------------- ### you are looking at the file ~/.mutt/rc which is my main mutt configuration ### file. there are several files included from this config like the alias ### list in ~/.mutt/aliases or the autoview and list configurations i do not ### want you to see ;-) please do not ask me to send you these files. ### you will also need to figure out scoring for yoourself ;-) ### thank you. -karsten ### this configuration uses qmail as MTA. ### i got several inboxes which are spooled vie .qmail and/or procmail recipes. ### spam handling is done via bogofilter. ###---------------------------------------------------------------------------- ### system ###---------------------------------------------------------------------------- set alias_file=~/.mutt/aliases # where i keep my aliases source ~/.mutt/aliases # read them in set date_format="%Y.%m.%d %H:%M:%S %z" # dates ISO-8601 format set folder=~/Mail # home of mail folders unset help # no ui spam #set index_format="%Z %{%D} %2N %4l %-20.20a %s" set index_format="%Z %[%D] %2N %4l %-20.20F %s" # customized index format set ispell="/usr/local/bin/ispell" set mbox=~/Maildir/ # main incoming folder set menu_scroll=yes # don't page menus set move=no # don't use read mbox set noconfirmappend # don't get on my nerves... set quit=ask-yes # don't simply die on 'q' set read_inc=128 # read progress step 128 set status_chars="-*XA" set status_format=\ "[%r|%f|%b] #%M/%m=%L/%l [%nN %dD %tT] (%s.%S) %> (%P) [WM]" unset suspend # ^Z messes up my terminal set write_inc=128 # write progress step 128 source ~/.mutt/score # read in scoring metrics ###---------------------------------------------------------------------------- ### identity ###---------------------------------------------------------------------------- # WARNING # i got plenty mails from different mail accounts which get # joined onto my primary box. so i match all my email adresses # with a more or less sloppy regex. some people do not like that # since it is neither strict nor picky, eg it catches sometimes # adresses that you do not want to catch. you have to READ the # headers of your outgoing mails to see that it didnt catch for # example postmaster@scene.org (in my case) which is an account # that gets catched but it should not. happens from time to time. # if you just hit "reply" the reverse_name does the right thing # and inserts (in this example) postmaster@scene.org as my From: # when redhound (the postmaster@scene.org) would bounce me a mail # to comment on ;-) you have been warned. set alternates="(rohrbach|alpha|karsten|webmaster|postmaster|ftpadmin|ircadmin|operations|baz|kr)@*.(webmonster|rohrbach|demoscene|lofthaus|spam|tonwerk|elektro-kartell|nacamar|scene|foo42|byteb|byteborg|tonkun|qmx).(de|net|com|org|st)" set envelope_from # spoof mail from address set from="karsten@rohrbach.de" # default from address set hidden_host # cloak system name set hostname="mail.webmonster.de" # override system name set realname="Karsten W. Rohrbach" # real name for From: #set reverse_name # set sender=recipient # DEPRECATED # this one's pretty special - since my primary private account is # karsten@rohrbach.de which sits on datasink.webmonster.de, outgoing # mail would have the true account rohrbach@datasink.webmonster.de in # the From header. # '-femail@domain.dom' forges a wrong (or better "right") From line # this is now handled by mutt internally with the reverse_name # option set, so this old stuff is just included as an example #set sendmail="/var/qmail/bin/qmail-inject -fkarsten@rohrbach.de" # mutt now invokes sendmail with '-f
' # so you do not need the fixed rule above when setting reverse_name #set sendmail="/var/qmail/bin/sendmail" # pymsgauth wrapper # see: http://www.qcc.ca/~charlesc/software/pymsgauth/pymsgauth.html set sendmail="/usr/local/bin/pymsgauth-mail" ###---------------------------------------------------------------------------- ### message composition ###---------------------------------------------------------------------------- set abort_nosubject=no # allow empty subject set abort_unmodified=no # send menu after not editing set allow_8bit # do not base64 or mangle msgs set askcc # ask for cc set attribution="%n(%a)@%d:" # attribution in replies # it is important to always edit the mails with headers. # only with headers in the editor you can see what you are # sending at first glance. i think the compose screen is not # verbose enough, and i do not read the whole screen before # hitting the 'y' key all the time ;-) set edit_headers # i use vim as editor, sigrot to rotate .sig lines set editor="sigrot;vim -u ~/.vmuttrc -c ':0;/^$'" set forw_format="Fwd: %s" # traditional Fwd: subject set include=ask-yes # include original in reply set mime_forward # forward whole mime attachmts #set mime_forward_decode # decode fwd to text/plain set mime_forward_rest # forward the rest of mime msg set postponed=~/Mail/postponed # postponed mail folder set recall=ask-yes # ask to recall postponed set record=~/Mail/sent-mail # archive outgoing mail set write_bcc # Bcc header in file to send ###---------------------------------------------------------------------------- ### pager ###---------------------------------------------------------------------------- set ascii_chars # ascii chars in threadmarks set beep_new # beep when mail arrives set delete=yes # delete flagged when exiting set fast_reply # don't ask questions set mailcap_path=~/.mutt/mailcap # where mutt mailcap lives set markers=no # wrap without plus signs set pager_context=3 # page to page line context # format string for pager - nice set pager_format="[%4C/%4m] (%S%Z) %%=%N $i %> [%lL]" set pager_index_lines=6 # mini-index on pager top set pager_stop # don't auto-go to next msg set sort=threads # default sort order set tilde # pad empty lines like vi source ~/.mutt/autoview # MIME autoviews alternative_order text/plain text/html text # multipart/alt precedence ###---------------------------------------------------------------------------- ### pgp setup (from mutt dist examples) ###---------------------------------------------------------------------------- #set pgp_autosign # autosign all outgoing mails set pgp_replyencrypt # autocrypt replies to crypted set pgp_replysign # autosign replies to signed set pgp_replysignencrypted # autosign replies to sig/crypt set pgp_retainable_sigs # nested mime fmt sigs set pgp_sign_as=0xDEC948A6 # primary keyid set pgp_timeout=2400 # passphrase timeout set pgp_sort_keys=trust # sort order unset pgp_show_unusable # don't display revoked et al. # decode application/pgp set pgp_decode_command=\ "gpg %?p?--passphrase-fd 0? --no-verbose --batch --output - %f" # verify a pgp/mime signature set pgp_verify_command=\ "gpg --no-verbose --batch --output - --verify %s %f" # decrypt a pgp/mime attachment set pgp_decrypt_command=\ "gpg --passphrase-fd 0 --no-verbose --batch --output - %f" # create a pgp/mime signed attachment set pgp_sign_command=\ "gpg --no-verbose --batch --output - --passphrase-fd 0 \ --armor --always-trust --detach-sign --textmode %?a?-u %a? %f" # create a application/pgp signed (old-style) message set pgp_clearsign_command=\ "gpg --no-verbose --batch --output - --passphrase-fd 0 \ --armor --always-trust --textmode --clearsign %?a?-u %a? %f" # create a pgp/mime encrypted attachment set pgp_encrypt_only_command=\ "pgpewrap gpg -v --batch --output - --encrypt --textmode \ --armor --always-trust -- -r %r -- %f" # create a pgp/mime encrypted and signed attachment set pgp_encrypt_sign_command=\ "pgpewrap gpg --passphrase-fd 0 -v --batch --output - --encrypt \ --sign %?a?-u %a? --armor --always-trust -- -r %r -- %f" # import a key into the public key ring set pgp_import_command="gpg --no-verbose --import -v %f" # export a key from the public key ring set pgp_export_command="gpg --no-verbose --export --armor %r" # verify a key set pgp_verify_key_command=\ "gpg --no-verbose --batch --fingerprint --check-sigs %r" # read in the public key ring set pgp_list_pubring_command=\ "gpg --no-verbose --batch --with-colons --list-keys %r" # read in the secret key ring set pgp_list_secring_command=\ "gpg --no-verbose --batch --with-colons --list-secret-keys %r" # receive key from keyserver: set pgp_getkeys_command="" ###---------------------------------------------------------------------------- ### headers ###---------------------------------------------------------------------------- # now that's a fun part ;-) my_hdr X-Arbitrary-Number-Of-The-Day: 42 my_hdr X-URL: http://www.rohrbach.de./ my_hdr X-Phone: +49 (0)171 8915569 my_hdr X-Work-URL: http://wibas.de./ my_hdr X-Work-Phone: +49 (0)6151 50334935 ###---------------------------------------------------------------------------- ### header config ###---------------------------------------------------------------------------- # quench unwanted headers in reader ignore * unignore return-path from: to cc bcc subject resent-by date unignore authenticated-sender apparently-from unignore x-address x-organisation reply-to unignore mail-followup-to user-agent x-mailer unignore x-spammer x-bogosity x-spam-status unignore message-id # sort headers hdr_order Return-Path: Message-ID: \ From: Resent-By: Reply-To: X-Organisation: \ X-Address: To: Cc: Bcc: \ Date: X-Bogosity: Subject: ###---------------------------------------------------------------------------- ### color config ###---------------------------------------------------------------------------- # if you have a color console this rox... color hdrdefault green black color quoted yellow black color signature red black color indicator white blue color attachment magenta black color error red black color status white blue color tree yellow black color normal white black color body cyan black (http|ftp)://[_a-zA-Z0-9\./~\-]+ # gnupg coloring (source: kris kennaway ) color body green black "^gpg: Good signature from" color body brightred black "^gpg: Bad signature from" color body brightred black "^gpg: BAD signature from" color body brightred black "^gpg: Note: This key has expired!" color body brightyellow black "^gpg: WARNING: This key is not certified with a trusted signature!" color body brightyellow black "^gpg: There is no indication that the signature belongs to the owner." color body brightyellow black "^gpg: can't handle these multiple signatures" color body brightyellow black "^gpg: signature verification suppressed" color body brightyellow black "^gpg: invalid node with packet of type" # index coloring based on score #color index white black color index cyan black '~n -0' color index green black '~n 1-9' color index white black '~n 10-19' color index brightyellow black '~n 20-' #color index brightyellow black '~p' color header cyan black 'X-Mailer:.*Outlook' ###---------------------------------------------------------------------------- ### folder hooks ###---------------------------------------------------------------------------- source ~/.mutt/hooks ###---------------------------------------------------------------------------- ### multiple mailboxes (for lists, etc.) ###---------------------------------------------------------------------------- source ~/.mutt/mailboxes source ~/.mutt/lists ###---------------------------------------------------------------------------- ### custom key bindings + macros ###---------------------------------------------------------------------------- bind index previous-entry bind index next-entry bind pager previous-page bind pager next-page bind pager top bind pager bottom bind pager previous-line bind pager next-line #bind pager d delete-message bind pager \t next-unread #bind compose \n send-message #macro index D "all^m" "tag all and delete" #macro index U "all^m" "tag all and undelete" ### magic ispell macro compose i "set ispell=\"/usr/local/bin/ispell -d /usr/local/share/ispell/american.hash\"^m" "run ispell (american)" macro compose I "set ispell=\"/usr/local/bin/ispell -d /usr/local/share/ispell/deutsch.hash\"^m" "run ispell (german)" ### magic bogofilter keys # delete msg bind index d delete-message bind pager d delete-message # delete as ham macro index \Cd "unset wait_key^mbogofilter -nS^mset wait_key^m" "delete message as non-spam" macro pager \Cd "unset wait_key^mbogofilter -nS^mset wait_key^m" "delete message as non-spam" # undelete as ham (reverses delete as ham) macro index \Cu "unset wait_key^mbogofilter -Ns^mset wait_key^m" "undelete message as non-spam" macro pager \Cu "unset wait_key^mbogofilter -Ns^mset wait_key^m" "undelete message as non-spam" # delete as spam macro index \ed "unset wait_key^mbogofilter -Ns^mset wait_key^m=SPAM-archive/^m" "delete message as spam" macro pager \ed "unset wait_key^mbogofilter -Ns^mset wait_key^m=SPAM-archive/^m" "delete message as spam" # undelete as spam (reverses delete as spam) macro index \eu "unset wait_key^mbogofilter -nS^mset wait_key^m" "undelete message as spam" macro pager \eu "unset wait_key^mbogofilter -nS^mset wait_key^m" "undelete message as spam" # add to ham DB macro index N "unset wait_key^mbogofilter -n^mset wait_key^m" "add message to non-spam DB" macro pager N "unset wait_key^mbogofilter -n^mset wait_key^m" "add message to non-spam DB" # remove from ham DB macro index \eN "unset wait_key^mbogofilter -N^mset wait_key^m" "remove message from non-spam DB" macro pager \eN "unset wait_key^mbogofilter -N^mset wait_key^m" "remove message from non-spam DB" # add to spam DB macro index S "unset wait_key^mbogofilter -s^mset wait_key^m" "add message to spam DB" macro pager S "unset wait_key^mbogofilter -s^mset wait_key^m" "add message to spam DB" # remove from spam DB macro index \eS "unset wait_key^mbogofilter -S^mset wait_key^m" "remove message from spam DB" macro pager \eS "unset wait_key^mbogofilter -S^mset wait_key^m" "remove message from spam DB" ###---------------------------------------------------------------------------- ### eof .muttrc ###----------------------------------------------------------------------------