X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=doc%2Fmanual.txt;h=dd1efa12e71d428d01f1c6fdd99615c2391bcad6;hp=6b1b1e9450626c1584d1139c49ba466101ade04d;hb=cf6bb4753ad027d11465533b7f3ef35b797f2908;hpb=6833ce8bdca2d64e14485118f2a4417b7e1cb1b1 diff --git a/doc/manual.txt b/doc/manual.txt index 6b1b1e9..dd1efa1 100644 --- a/doc/manual.txt +++ b/doc/manual.txt @@ -1,7016 +1,10766 @@ - The Mutt E-Mail Client - by Michael Elkins - version 1.5.6 - - ``All mail clients suck. This one just sucks less.'' -me, circa 1995 - ______________________________________________________________________ - - Table of Contents - - 1. Introduction - - 1.1 Mutt Home Page - 1.2 Mailing Lists - 1.3 Software Distribution Sites - 1.4 IRC - 1.5 USENET - 1.6 Copyright - - 2. Getting Started - - 2.1 Moving Around in Menus - 2.2 Editing Input Fields - 2.3 Reading Mail - The Index and Pager - 2.3.1 The Message Index - 2.3.1.1 Status Flags - 2.3.2 The Pager - 2.3.3 Threaded Mode - 2.3.4 Miscellaneous Functions - 2.4 Sending Mail - 2.4.1 Editing the message header - 2.4.2 Using Mutt with PGP - 2.4.3 Sending anonymous messages via mixmaster. - 2.5 Forwarding and Bouncing Mail - 2.6 Postponing Mail - 2.7 Reading news via NNTP - - 3. Configuration - - 3.1 Syntax of Initialization Files - 3.2 Defining/Using aliases - 3.3 Changing the default key bindings - 3.4 Defining aliases for character sets - 3.5 Setting variables based upon mailbox - 3.6 Keyboard macros - 3.7 Using color and mono video attributes - 3.8 Ignoring (weeding) unwanted message headers - 3.9 Alternative addresses - 3.10 Mailing lists - 3.11 Using Multiple spool mailboxes - 3.12 Defining mailboxes which receive mail - 3.13 User defined headers - 3.14 Defining the order of headers when viewing messages - 3.15 Specify default save filename - 3.16 Specify default Fcc: mailbox when composing - 3.17 Specify default save filename and default Fcc: mailbox at once - 3.18 Change settings based upon message recipients - 3.19 Change settings before formatting a message - 3.20 Choosing the cryptographic key of the recipient - 3.21 Adding key sequences to the keyboard buffer - 3.22 Executing functions - 3.23 Message Scoring - 3.24 Setting variables - 3.25 Reading initialization commands from another file - 3.26 Removing hooks - - 4. Advanced Usage - - 4.1 Regular Expressions - 4.2 Patterns - 4.2.1 Pattern Modifier - 4.2.2 Complex Patterns - 4.2.3 Searching by Date - 4.3 Using Tags - 4.4 Using Hooks - 4.4.1 Message Matching in Hooks - 4.5 External Address Queries - 4.6 Mailbox Formats - 4.7 Mailbox Shortcuts - 4.8 Handling Mailing Lists - 4.9 Delivery Status Notification (DSN) Support - 4.10 POP3 Support (OPTIONAL) - 4.11 IMAP Support (OPTIONAL) - 4.11.1 The Folder Browser - 4.11.2 Authentication - 4.12 Managing multiple IMAP/POP accounts (OPTIONAL) - 4.13 Start a WWW Browser on URLs (EXTERNAL) - - 5. Mutt's MIME Support - - 5.1 Using MIME in Mutt - 5.1.1 Viewing MIME messages in the pager - 5.1.2 The Attachment Menu - 5.1.3 The Compose Menu - 5.2 MIME Type configuration with - 5.3 MIME Viewer configuration with - 5.3.1 The Basics of the mailcap file - 5.3.2 Secure use of mailcap - 5.3.3 Advanced mailcap Usage - 5.3.3.1 Optional Fields - 5.3.3.2 Search Order - 5.3.3.3 Command Expansion - 5.3.4 Example mailcap files - 5.4 MIME Autoview - 5.5 MIME Multipart/Alternative - 5.6 MIME Lookup - - 6. Reference - - 6.1 Command line options - 6.2 Configuration Commands - 6.3 Configuration variables - 6.3.1 abort_nosubject - 6.3.2 abort_unmodified - 6.3.3 alias_file - 6.3.4 alias_format - 6.3.5 allow_8bit - 6.3.6 allow_ansi - 6.3.7 arrow_cursor - 6.3.8 ascii_chars - 6.3.9 askbcc - 6.3.10 askcc - 6.3.11 ask_follow_up - 6.3.12 ask_x_comment_to - 6.3.13 attach_format - 6.3.14 attach_sep - 6.3.15 attach_split - 6.3.16 attribution - 6.3.17 autoedit - 6.3.18 auto_tag - 6.3.19 beep - 6.3.20 beep_new - 6.3.21 bounce - 6.3.22 bounce_delivered - 6.3.23 catchup_newsgroup - 6.3.24 charset - 6.3.25 check_new - 6.3.26 collapse_unread - 6.3.27 uncollapse_jump - 6.3.28 compose_format - 6.3.29 confirmappend - 6.3.30 confirmcreate - 6.3.31 connect_timeout - 6.3.32 content_type - 6.3.33 copy - 6.3.34 crypt_autopgp - 6.3.35 crypt_autosmime - 6.3.36 date_format - 6.3.37 default_hook - 6.3.38 delete - 6.3.39 delete_untag - 6.3.40 digest_collapse - 6.3.41 display_filter - 6.3.42 dotlock_program - 6.3.43 dsn_notify - 6.3.44 dsn_return - 6.3.45 duplicate_threads - 6.3.46 edit_headers - 6.3.47 editor - 6.3.48 encode_from - 6.3.49 envelope_from - 6.3.50 escape - 6.3.51 fast_reply - 6.3.52 fcc_attach - 6.3.53 fcc_clear - 6.3.54 folder - 6.3.55 folder_format - 6.3.56 followup_to - 6.3.57 followup_to_poster - 6.3.58 force_name - 6.3.59 forward_decode - 6.3.60 forward_edit - 6.3.61 forward_format - 6.3.62 forward_quote - 6.3.63 from - 6.3.64 gecos_mask - 6.3.65 group_index_format - 6.3.66 hdrs - 6.3.67 header - 6.3.68 help - 6.3.69 hidden_host - 6.3.70 hide_limited - 6.3.71 hide_missing - 6.3.72 hide_top_limited - 6.3.73 hide_top_missing - 6.3.74 history - 6.3.75 honor_followup_to - 6.3.76 hostname - 6.3.77 ignore_list_reply_to - 6.3.78 imap_authenticators - 6.3.79 imap_delim_chars - 6.3.80 imap_force_ssl - 6.3.81 imap_home_namespace - 6.3.82 imap_keepalive - 6.3.83 imap_list_subscribed - 6.3.84 imap_pass - 6.3.85 imap_passive - 6.3.86 imap_peek - 6.3.87 imap_servernoise - 6.3.88 imap_user - 6.3.89 implicit_autoview - 6.3.90 include - 6.3.91 indent_string - 6.3.92 index_format - 6.3.93 inews - 6.3.94 ispell - 6.3.95 keep_flagged - 6.3.96 locale - 6.3.97 mail_check - 6.3.98 mailcap_path - 6.3.99 mailcap_sanitize - 6.3.100 maildir_trash - 6.3.101 mark_old - 6.3.102 markers - 6.3.103 mask - 6.3.104 mbox - 6.3.105 mbox_type - 6.3.106 metoo - 6.3.107 menu_scroll - 6.3.108 meta_key - 6.3.109 mh_purge - 6.3.110 mh_seq_flagged - 6.3.111 mh_seq_replied - 6.3.112 mh_seq_unseen - 6.3.113 mime_forward - 6.3.114 mime_forward_decode - 6.3.115 mime_forward_rest - 6.3.116 mime_subject - 6.3.117 mix_entry_format - 6.3.118 mixmaster - 6.3.119 move - 6.3.120 message_format - 6.3.121 narrow_tree - 6.3.122 news_cache_dir - 6.3.123 news_server - 6.3.124 newsrc - 6.3.125 nntp_context - 6.3.126 nntp_load_description - 6.3.127 nntp_user - 6.3.128 nntp_pass - 6.3.129 nntp_poll - 6.3.130 nntp_reconnect - 6.3.131 pager - 6.3.132 pager_context - 6.3.133 pager_format - 6.3.134 pager_index_lines - 6.3.135 pager_stop - 6.3.136 crypt_autosign - 6.3.137 crypt_autoencrypt - 6.3.138 pgp_ignore_subkeys - 6.3.139 crypt_replyencrypt - 6.3.140 crypt_replysign - 6.3.141 crypt_replysignencrypted - 6.3.142 crypt_timestamp - 6.3.143 pgp_use_gpg_agent - 6.3.144 crypt_verify_sig - 6.3.145 smime_is_default - 6.3.146 smime_ask_cert_label - 6.3.147 smime_decrypt_use_default_key - 6.3.148 pgp_entry_format - 6.3.149 pgp_good_sign - 6.3.150 pgp_check_exit - 6.3.151 pgp_long_ids - 6.3.152 pgp_retainable_sigs - 6.3.153 pgp_show_unusable - 6.3.154 pgp_sign_as - 6.3.155 pgp_strict_enc - 6.3.156 pgp_timeout - 6.3.157 pgp_sort_keys - 6.3.158 pgp_create_traditional - 6.3.159 pgp_auto_traditional - 6.3.160 pgp_decode_command - 6.3.161 pgp_getkeys_command - 6.3.162 pgp_verify_command - 6.3.163 pgp_decrypt_command - 6.3.164 pgp_clearsign_command - 6.3.165 pgp_sign_command - 6.3.166 pgp_encrypt_sign_command - 6.3.167 pgp_encrypt_only_command - 6.3.168 pgp_import_command - 6.3.169 pgp_export_command - 6.3.170 pgp_verify_key_command - 6.3.171 pgp_list_secring_command - 6.3.172 pgp_list_pubring_command - 6.3.173 forward_decrypt - 6.3.174 smime_timeout - 6.3.175 smime_encrypt_with - 6.3.176 smime_keys - 6.3.177 smime_ca_location - 6.3.178 smime_certificates - 6.3.179 smime_decrypt_command - 6.3.180 smime_verify_command - 6.3.181 smime_verify_opaque_command - 6.3.182 smime_sign_command - 6.3.183 smime_sign_opaque_command - 6.3.184 smime_encrypt_command - 6.3.185 smime_pk7out_command - 6.3.186 smime_get_cert_command - 6.3.187 smime_get_signer_cert_command - 6.3.188 smime_import_cert_command - 6.3.189 smime_get_cert_email_command - 6.3.190 smime_default_key - 6.3.191 ssl_starttls - 6.3.192 certificate_file - 6.3.193 ssl_usesystemcerts - 6.3.194 entropy_file - 6.3.195 ssl_use_sslv2 - 6.3.196 ssl_use_sslv3 - 6.3.197 ssl_use_tlsv1 - 6.3.198 pipe_split - 6.3.199 pipe_decode - 6.3.200 pipe_sep - 6.3.201 pop_authenticators - 6.3.202 pop_auth_try_all - 6.3.203 pop_checkinterval - 6.3.204 pop_delete - 6.3.205 pop_host - 6.3.206 pop_last - 6.3.207 pop_reconnect - 6.3.208 pop_user - 6.3.209 pop_pass - 6.3.210 post_indent_string - 6.3.211 post_moderated - 6.3.212 postpone - 6.3.213 postponed - 6.3.214 preconnect - 6.3.215 print - 6.3.216 print_command - 6.3.217 print_decode - 6.3.218 print_split - 6.3.219 prompt_after - 6.3.220 query_command - 6.3.221 quit - 6.3.222 quote_regexp - 6.3.223 read_inc - 6.3.224 read_only - 6.3.225 realname - 6.3.226 recall - 6.3.227 record - 6.3.228 reply_regexp - 6.3.229 reply_self - 6.3.230 reply_to - 6.3.231 resolve - 6.3.232 reverse_alias - 6.3.233 reverse_name - 6.3.234 reverse_realname - 6.3.235 rfc2047_parameters - 6.3.236 save_address - 6.3.237 save_empty - 6.3.238 save_name - 6.3.239 score - 6.3.240 score_threshold_delete - 6.3.241 score_threshold_flag - 6.3.242 score_threshold_read - 6.3.243 send_charset - 6.3.244 sendmail - 6.3.245 sendmail_wait - 6.3.246 shell - 6.3.247 save_unsubscribed - 6.3.248 show_new_news - 6.3.249 show_only_unread - 6.3.250 sig_dashes - 6.3.251 sig_on_top - 6.3.252 signature - 6.3.253 simple_search - 6.3.254 smart_wrap - 6.3.255 smileys - 6.3.256 sleep_time - 6.3.257 sort - 6.3.258 sort_alias - 6.3.259 sort_aux - 6.3.260 sort_browser - 6.3.261 sort_re - 6.3.262 spoolfile - 6.3.263 status_chars - 6.3.264 status_format - 6.3.265 status_on_top - 6.3.266 strict_threads - 6.3.267 suspend - 6.3.268 text_flowed - 6.3.269 thread_received - 6.3.270 thorough_search - 6.3.271 tilde - 6.3.272 timeout - 6.3.273 tmpdir - 6.3.274 to_chars - 6.3.275 tunnel - 6.3.276 use_8bitmime - 6.3.277 use_domain - 6.3.278 use_from - 6.3.279 use_ipv6 - 6.3.280 user_agent - 6.3.281 visual - 6.3.282 wait_key - 6.3.283 weed - 6.3.284 wrap_search - 6.3.285 wrapmargin - 6.3.286 write_inc - 6.3.287 write_bcc - 6.3.288 x_comment_to - 6.4 Functions - 6.4.1 generic - 6.4.2 index - 6.4.3 pager - 6.4.4 alias - 6.4.5 query - 6.4.6 attach - 6.4.7 compose - 6.4.8 postpone - 6.4.9 browser - 6.4.10 pgp - 6.4.11 editor - - 7. Miscellany - - 7.1 Acknowledgements - 7.2 About this document - - ______________________________________________________________________ - - 11.. IInnttrroodduuccttiioonn - - MMuutttt is a small but very powerful text-based MIME mail client. Mutt - is highly configurable, and is well suited to the mail power user with - advanced features like key bindings, keyboard macros, mail threading, - regular expression searches and a powerful pattern matching language - for selecting groups of messages. - - 11..11.. MMuutttt HHoommee PPaaggee - - http://www.mutt.org/ - - 11..22.. MMaaiilliinngg LLiissttss - - To subscribe to one of the following mailing lists, send a message - with the word _s_u_b_s_c_r_i_b_e in the body to list-name_-_r_e_q_u_e_s_t@mutt.org. - - · mutt-announce@mutt.org -- low traffic list for announcements - - · mutt-users@mutt.org -- help, bug reports and feature requests - - · mutt-dev@mutt.org -- development mailing list - - NNoottee:: all messages posted to _m_u_t_t_-_a_n_n_o_u_n_c_e are automatically forwarded - to _m_u_t_t_-_u_s_e_r_s, so you do not need to be subscribed to both lists. - - 11..33.. SSooffttwwaarree DDiissttrriibbuuttiioonn SSiitteess - - · ftp://ftp.mutt.org/mutt/ - - For a list of mirror sites, please refer to - http://www.mutt.org/download.html. - - 11..44.. IIRRCC - - Visit channel _#_m_u_t_t on OpenProjects.Net (www.openprojects.net) to chat - with other people interested in Mutt. - - 11..55.. UUSSEENNEETT - - See the newsgroup comp.mail.mutt. - - 11..66.. CCooppyyrriigghhtt - - Mutt is Copyright (C) 1996-2000 Michael R. Elkins and - others - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or (at - your option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. - - 22.. GGeettttiinngg SSttaarrtteedd - - This section is intended as a brief overview of how to use Mutt. - There are many other features which are described elsewhere in the - manual. There is even more information available in the Mutt FAQ and - various web pages. See the Mutt Page for more details. - - The keybindings described in this section are the defaults as - distributed. Your local system administrator may have altered the - defaults for your site. You can always type ``?'' in any menu to - display the current bindings. - - The first thing you need to do is invoke mutt, simply by typing mutt - at the command line. There are various command-line options, see - either the mutt man page or the ``reference''. - - 22..11.. MMoovviinngg AArroouunndd iinn MMeennuuss - - Information is presented in menus, very similar to ELM. Here is a - table showing the common keys used to navigate menus in Mutt. - - j or Down next-entry move to the next entry - k or Up previous-entry move to the previous entry - z or PageDn page-down go to the next page - Z or PageUp page-up go to the previous page - = or Home first-entry jump to the first entry - * or End last-entry jump to the last entry - q quit exit the current menu - ? help list all keybindings for the current menu + The Mutt Next Generation E-Mail Client - 22..22.. EEddiittiinngg IInnppuutt FFiieellddss + Andreas Krennmair - Mutt has a builtin line editor which is used as the primary way to - input textual data such as email addresses or filenames. The keys - used to move around while editing are very similar to those of Emacs. + - ^A or bol move to the start of the line - ^B or backward-char move back one char - Esc B backward-word move back one word - ^D or delete-char delete the char under the cursor - ^E or eol move to the end of the line - ^F or forward-char move forward one char - Esc F forward-word move forward one word - complete complete filename or alias - ^T complete-query complete address with query - ^K kill-eol delete to the end of the line - ESC d kill-eow delete to the end ot the word - ^W kill-word kill the word in front of the cursor - ^U kill-line delete entire line - ^V quote-char quote the next typed key - history-up recall previous string from history - history-down recall next string from history - backspace kill the char in front of the cursor - Esc u upcase-word convert word to upper case - Esc l downcase-word convert word to lower case - Esc c capitalize-word capitalize the word - ^G n/a abort - n/a finish editing + Michael Elkins - You can remap the _e_d_i_t_o_r functions using the ``bind'' command. For - example, to make the _D_e_l_e_t_e key delete the character in front of the - cursor rather than under, you could use + - bind editor backspace + version devel-r473 - 22..33.. RReeaaddiinngg MMaaiill -- TThhee IInnddeexx aanndd PPaaggeerr + Abstract - Similar to many other mail clients, there are two modes in which mail - is read in Mutt. The first is the index of messages in the mailbox, - which is called the ``index'' in Mutt. The second mode is the display - of the message contents. This is called the ``pager.'' + Michael Elinks on mutt, circa 1995: ``All mail clients suck. This one just + sucks less.'' - The next few sections describe the functions provided in each of these - modes. + Sven Guckes on mutt, ca. 2003: ``But it still sucks!'' - 22..33..11.. TThhee MMeessssaaggee IInnddeexx + -------------------------------------------------------------------------- - c change to a different mailbox - ESC c change to a folder in read-only mode - C copy the current message to another mailbox - ESC C decode a message and copy it to a folder - ESC s decode a message and save it to a folder - D delete messages matching a pattern - d delete the current message - F mark as important - l show messages matching a pattern - N mark message as new - o change the current sort method - O reverse sort the mailbox - q save changes and exit - s save-message - T tag messages matching a pattern - t toggle the tag on a message - ESC t toggle tag on entire message thread - U undelete messages matching a pattern - u undelete-message - v view-attachments - x abort changes and exit - display-message - jump to the next new message - @ show the author's full e-mail address - $ save changes to mailbox - / search - ESC / search-reverse - ^L clear and redraw the screen - ^T untag messages matching a pattern - - 22..33..11..11.. SSttaattuuss FFllaaggss - - 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: - - DD message is deleted (is marked for deletion) - - dd message have attachments marked for deletion - - KK contains a PGP public key - - NN message is new - - OO message is old - - PP message is PGP encrypted - - rr message has been replied to - - SS message is signed, and the signature is succesfully verified - - ss message is signed - - !! message is flagged - - ** message is tagged - - Some of the status flags can be turned on or off using - - · sseett--ffllaagg (default: w) - - · cclleeaarr--ffllaagg (default: W) - - Furthermore, the following flags reflect who the message is addressed - to. They can be customized with the ``$to_chars'' variable. - - ++ message is to you and you only - - TT message is to you, but also to or cc'ed to others - - CC message is cc'ed to you - - FF message is from you - - LL message is sent to a subscribed mailing list - - 22..33..22.. TThhee PPaaggeerr - - By default, Mutt uses its builtin pager to display the body of - messages. The pager is very similar to the Unix program _l_e_s_s though - not nearly as featureful. - - go down one line - display the next page (or next message if at the end of a message) - - go back to the previous page - n search for next match - S skip beyond quoted text - T toggle display of quoted text - ? show keybindings - / search for a regular expression (pattern) - ESC / search backwards for a regular expression - \ toggle search pattern coloring - ^ jump to the top of the message - - In addition, many of the functions from the _i_n_d_e_x are available in the - pager, such as _d_e_l_e_t_e_-_m_e_s_s_a_g_e or _c_o_p_y_-_m_e_s_s_a_g_e (this is one advantage - over using an external pager to view messages). - - Also, the internal pager supports a couple other advanced features. - For one, it will accept and translate the ``standard'' nroff sequences - for bold and underline. These sequences are a series of either the - letter, backspace (^H), the letter again for bold or the letter, - backspace, ``_'' for denoting underline. Mutt will attempt to display - these in bold and underline respectively if your terminal supports - them. If not, you can use the bold and underline ``color'' objects to - specify a color or mono attribute for them. - - Additionally, the internal pager supports the ANSI escape sequences - for character attributes. Mutt translates them into the correct color - and character settings. The sequences Mutt supports are: - - ESC [ Ps;Ps;Ps;...;Ps m - where Ps = - 0 All Attributes Off - 1 Bold on - 4 Underline on - 5 Blink on - 7 Reverse video on - 3x Foreground color is x - 4x Background color is x + Table of Contents - Colors are - 0 black - 1 red - 2 green - 3 yellow - 4 blue - 5 magenta - 6 cyan - 7 white + 1. Introduction - Mutt uses these attributes for handling text/enriched messages, and - they can also be used by an external ``autoview'' script for - highlighting purposes. NNoottee:: If you change the colors for your - display, for example by changing the color associated with color2 for - your xterm, then that color will be used instead of green. + 1. Overview - 22..33..33.. TThhrreeaaddeedd MMooddee + 2. Mutt-ng Home Page - When the mailbox is ``sorted'' by _t_h_r_e_a_d_s, there are a few additional - functions available in the _i_n_d_e_x and _p_a_g_e_r modes. + 3. Mailing Lists - ^D delete-thread delete all messages in the current thread - ^U undelete-thread undelete all messages in the current thread - ^N next-thread jump to the start of the next thread - ^P previous-thread jump to the start of the previous thread - ^R read-thread mark the current thread as read - ESC d delete-subthread delete all messages in the current subthread - ESC u undelete-subthread undelete all messages in the current subthread - ESC n next-subthread jump to the start of the next subthread - ESC p previous-subthread jump to the start of the previous subthread - ESC r read-subthread mark the current subthread as read - ESC t tag-thread toggle the tag on the current thread - ESC v collapse-thread toggle collapse for the current thread - ESC V collapse-all toggle collapse for all threads - P parent-message jump to parent message in thread - - NNoottee:: Collapsing a thread displays only the first message in the - thread and hides the others. This is useful when threads contain so - many messages that you can only see a handful of threads on the - screen. See %M in ``$index_format''. For example, you could use - "%?M?(#%03M)&(%4l)?" in ``$index_format'' to optionally display the - number of hidden messages if the thread is collapsed. - - See also: ``$strict_threads''. - - 22..33..44.. MMiisscceellllaanneeoouuss FFuunnccttiioonnss - - ccrreeaattee--aalliiaass (default: a) - - Creates a new alias based upon the current message (or prompts for a - new one). Once editing is complete, an ``alias'' command is added to - the file specified by the ``$alias_file'' variable for future use. - NNoottee:: Specifying an ``$alias_file'' does not add the aliases specified - there-in, you must also ``source'' the file. - - cchheecckk--ttrraaddiittiioonnaall--ppggpp (default: ESC P) - - This function will search the current message for content signed or - encrypted with PGP the "traditional" way, that is, without proper MIME - tagging. Technically, this function will temporarily change the MIME - content types of the body parts containing PGP data; this is similar - to the ``edit-type'' function's effect. - - ddiissppllaayy--ttooggggllee--wweeeedd (default: h) - - Toggles the weeding of message header fields specified by ``ignore'' - commands. - - eeddiitt (default: e) - - This command (available in the ``index'' and ``pager'') allows you to - edit the raw current message as it's present in the mail folder. - After you have finished editing, the changed message will be appended - to the current folder, and the original message will be marked for - deletion. - - eeddiitt--ttyyppee - (default: ^E on the attachment menu, and in the pager and index menus; - ^T on the compose menu) - - This command is used to temporarily edit an attachment's content type - to fix, for instance, bogus character set parameters. When invoked - from the index or from the pager, you'll have the opportunity to edit - the top-level attachment's content type. On the ``attachment menu'', - you can change any attachment's content type. These changes are not - persistent, and get lost upon changing folders. - - Note that this command is also available on the ``compose menu''. - There, it's used to fine-tune the properties of attachments you are - going to send. - - eenntteerr--ccoommmmaanndd (default: ``:'') - - This command is used to execute any command you would normally put in - a configuration file. A common use is to check the settings of - variables, or in conjunction with ``macros'' to change settings on the - fly. - - eexxttrraacctt--kkeeyyss (default: ^K) - - This command extracts PGP public keys from the current or tagged - message(s) and adds them to your PGP public key ring. - - ffoorrggeett--ppaasssspphhrraassee (default: ^F) - - This command wipes the passphrase(s) from memory. It is useful, if you - misspelled the passphrase. - - lliisstt--rreeppllyy (default: L) - - Reply to the current or tagged message(s) by extracting any addresses - which match the addresses given by the ``lists or subscribe'' - commands, but also honor any Mail-Followup-To header(s) if the - ``$honor_followup_to'' configuration variable is set. Using this when - replying to messages posted to mailing lists helps avoid duplicate - copies being sent to the author of the message you are replying to. - - ppiippee--mmeessssaaggee (default: |) - - Asks for an external Unix command and pipes the current or tagged - message(s) to it. The variables ``$pipe_decode'', ``$pipe_split'', - ``$pipe_sep'' and ``$wait_key'' control the exact behaviour of this - function. - - rreesseenndd--mmeessssaaggee (default: ESC e) - - With resend-message, mutt takes the current message as a template for - a new message. This function is best described as "recall from - arbitrary folders". It can conveniently be used to forward MIME - messages while preserving the original mail structure. Note that the - amount of headers included here depends on the value of the ``$weed'' - variable. - - This function is also available from the attachment menu. You can use - this to easily resend a message which was included with a bounce - message as a message/rfc822 body part. - - sshheellll--eessccaappee (default: !) - - Asks for an external Unix command and executes it. The ``$wait_key'' - can be used to control whether Mutt will wait for a key to be pressed - when the command returns (presumably to let the user read the output - of the command), based on the return status of the named command. - - ttooggggllee--qquuootteedd (default: T) - - The _p_a_g_e_r uses the ``$quote_regexp'' variable to detect quoted text - when displaying the body of the message. This function toggles the - display of the quoted material in the message. It is particularly - useful when are interested in just the response and there is a large - amount of quoted text in the way. - - sskkiipp--qquuootteedd (default: S) - - This function will go to the next line of non-quoted text which come - after a line of quoted text in the internal pager. - - 22..44.. SSeennddiinngg MMaaiill - - The following bindings are available in the _i_n_d_e_x for sending - messages. - - m compose compose a new message - r reply reply to sender - g group-reply reply to all recipients - L list-reply reply to mailing list address - f forward forward message - b bounce bounce (remail) message - ESC k mail-key mail a PGP public key to someone - - Bouncing a message sends the message as is to the recipient you - specify. Forwarding a message allows you to add comments or modify - the message you are forwarding. These items are discussed in greater - detail in the next chapter ````Forwarding and Bouncing Mail''''. - - Mutt will then enter the _c_o_m_p_o_s_e menu and prompt you for the - recipients to place on the ``To:'' header field. Next, it will ask - you for the ``Subject:'' field for the message, providing a default if - you are replying to or forwarding a message. See also ``$askcc'', - ``$askbcc'', ``$autoedit'', ``$bounce'', and ``$fast_reply'' for - changing how Mutt asks these questions. - - Mutt will then automatically start your ``$editor'' on the message - body. If the ``$edit_headers'' variable is set, the headers will be - at the top of the message in your editor. Any messages you are - replying to will be added in sort order to the message, with - appropriate ``$attribution'', ``$indent_string'' and - ``$post_indent_string''. When forwarding a message, if the - ``$mime_forward'' variable is unset, a copy of the forwarded message - will be included. If you have specified a ``$signature'', it will be - appended to the message. - - Once you have finished editing the body of your mail message, you are - returned to the _c_o_m_p_o_s_e menu. The following options are available: - - a attach-file attach a file - A attach-message attach message(s) to the message - ESC k attach-key attach a PGP public key - d edit-description edit description on attachment - D detach-file detach a file - t edit-to edit the To field - ESC f edit-from edit the From field - r edit-reply-to edit the Reply-To field - c edit-cc edit the Cc field - b edit-bcc edit the Bcc field - y send-message send the message - s edit-subject edit the Subject - S smime-menu select S/MIME options - f edit-fcc specify an ``Fcc'' mailbox - p pgp-menu select PGP options - P postpone-message postpone this message until later - q quit quit (abort) sending the message - w write-fcc write the message to a folder - i ispell check spelling (if available on your system) - ^F forget-passphrase wipe passphrase(s) from memory - - NNoottee:: The attach-message function will prompt you for a folder to - attach messages from. You can now tag messages in that folder and they - will be attached to the message you are sending. Note that certain - operations like composing a new mail, replying, forwarding, etc. are - not permitted when you are in that folder. The %r in - ``$status_format'' will change to a 'A' to indicate that you are in - attach-message mode. - - 22..44..11.. EEddiittiinngg tthhee mmeessssaaggee hheeaaddeerr - - When editing the header of your outgoing message, there are a couple - of special features available. - - If you specify - Fcc: _f_i_l_e_n_a_m_e - Mutt will pick up _f_i_l_e_n_a_m_e just as if you had used the _e_d_i_t_-_f_c_c - function in the _c_o_m_p_o_s_e menu. - - You can also attach files to your message by specifying - Attach: _f_i_l_e_n_a_m_e [ _d_e_s_c_r_i_p_t_i_o_n ] - where _f_i_l_e_n_a_m_e is the file to attach and _d_e_s_c_r_i_p_t_i_o_n is an optional - string to use as the description of the attached file. - - When replying to messages, if you remove the _I_n_-_R_e_p_l_y_-_T_o_: field from - the header field, Mutt will not generate a _R_e_f_e_r_e_n_c_e_s_: field, which - allows you to create a new message thread. - - Also see ``edit_headers''. - - 22..44..22.. UUssiinngg MMuutttt wwiitthh PPGGPP - - If you want to use PGP, you can specify - - Pgp: [ E | S | S ] - - ``E'' encrypts, ``S'' signs and ``S'' signs with the given key, - setting ``$pgp_sign_as'' permanently. - - If you have told mutt to PGP encrypt a message, it will guide you - through a key selection process when you try to send the message. - Mutt will not ask you any questions about keys which have a certified - user ID matching one of the message recipients' mail addresses. - However, there may be situations in which there are several keys, - weakly certified user ID fields, or where no matching keys can be - found. - - In these cases, you are dropped into a menu with a list of keys from - which you can select one. When you quit this menu, or mutt can't find - any matching keys, you are prompted for a user ID. You can, as - usually, abort this prompt using ^G. When you do so, mutt will return - to the compose screen. - - Once you have successfully finished the key selection, the message - will be encrypted using the selected public keys, and sent out. - - Most fields of the entries in the key selection menu (see also - ``$pgp_entry_format'') have obvious meanings. But some explanations - on the capabilities, flags, and validity fields are in order. - - The flags sequence (%f) will expand to one of the following flags: - - R The key has been revoked and can't be used. - X The key is expired and can't be used. - d You have marked the key as disabled. - c There are unknown critical self-signature - packets. - - The capabilities field (%c) expands to a two-character sequence - representing a key's capabilities. The first character gives the - key's encryption capabilities: A minus sign (--) means that the key - cannot be used for encryption. A dot (..) means that it's marked as a - signature key in one of the user IDs, but may also be used for - encryption. The letter ee indicates that this key can be used for - encryption. - - The second character indicates the key's signing capabilities. Once - again, a ``--'' implies ``not for signing'', ``..'' implies that the key - is marked as an encryption key in one of the user-ids, and ``ss'' - denotes a key which can be used for signing. - - Finally, the validity field (%t) indicates how well-certified a user- - id is. A question mark (??) indicates undefined validity, a minus - character (--) marks an untrusted association, a space character means - a partially trusted association, and a plus character (++) indicates - complete validity. - - 22..44..33.. SSeennddiinngg aannoonnyymmoouuss mmeessssaaggeess vviiaa mmiixxmmaasstteerr.. - - You may also have configured mutt to co-operate with Mixmaster, an - anonymous remailer. Mixmaster permits you to send your messages - anonymously using a chain of remailers. Mixmaster support in mutt is - for mixmaster version 2.04 (beta 45 appears to be the latest) and - 2.03. It does not support earlier versions or the later so-called - version 3 betas, of which the latest appears to be called 2.9b23. - - To use it, you'll have to obey certain restrictions. Most important, - you cannot use the Cc and Bcc headers. To tell Mutt to use mixmaster, - you have to select a remailer chain, using the mix function on the - compose menu. - - The chain selection screen is divided into two parts. In the (larger) - upper part, you get a list of remailers you may use. In the lower - part, you see the currently selected chain of remailers. - - You can navigate in the chain using the chain-prev and chain-next - functions, which are by default bound to the left and right arrows and - to the h and l keys (think vi keyboard bindings). To insert a - remailer at the current chain position, use the insert function. To - append a remailer behind the current chain position, use select-entry - or append. You can also delete entries from the chain, using the - corresponding function. Finally, to abandon your changes, leave the - menu, or accept them pressing (by default) the Return key. - - Note that different remailers do have different capabilities, - indicated in the %c entry of the remailer menu lines (see - ``$mix_entry_format''). Most important is the ``middleman'' - capability, indicated by a capital ``M'': This means that the remailer - in question cannot be used as the final element of a chain, but will - only forward messages to other mixmaster remailers. For details on - the other capabilities, please have a look at the mixmaster - documentation. - - 22..55.. FFoorrwwaarrddiinngg aanndd BBoouunncciinngg MMaaiill - - Bouncing and forwarding let you send an existing message to recipients - that you specify. Bouncing a message uses the ``sendmail'' command to - send a copy to alternative addresses as if they were the message's - original recipients. Forwarding a message, on the other hand, allows - you to modify the message before it is resent (for example, by adding - your own comments). - The following keys are bound by default: - - f forward forward message - b bounce bounce (remail) message - - Forwarding can be done by including the original message in the new - message's body (surrounded by indicating lines) or including it as a - MIME attachment, depending on the value of the ``$mime_forward'' - variable. Decoding of attachments, like in the pager, can be - controlled by the ``$forward_decode'' and ``$mime_forward_decode'' - variables, respectively. The desired forwarding format may depend on - the content, therefore _$_m_i_m_e___f_o_r_w_a_r_d is a quadoption which, for - example, can be set to ``ask-no''. - - The inclusion of headers is controlled by the current setting of the - ``$weed'' variable, unless ``mime_forward'' is set. - - Editing the message to forward follows the same procedure as sending - or replying to a message does. - - 22..66.. PPoossttppoonniinngg MMaaiill - - At times it is desirable to delay sending a message that you have - already begun to compose. When the _p_o_s_t_p_o_n_e_-_m_e_s_s_a_g_e function is used - in the _c_o_m_p_o_s_e menu, the body of your message and attachments are - stored in the mailbox specified by the ``$postponed'' variable. This - means that you can recall the message even if you exit Mutt and then - restart it at a later time. - - Once a message is postponed, there are several ways to resume it. - From the command line you can use the ``-p'' option, or if you _c_o_m_p_o_s_e - a new message from the _i_n_d_e_x or _p_a_g_e_r you will be prompted if - postponed messages exist. If multiple messages are currently - postponed, the _p_o_s_t_p_o_n_e_d menu will pop up and you can select which - message you would like to resume. - - NNoottee:: If you postpone a reply to a message, the reply setting of the - message is only updated when you actually finish the message and send - it. Also, you must be in the same folder with the message you replied - to for the status of the message to be updated. - - See also the ``$postpone'' quad-option. - - 22..77.. RReeaaddiinngg nneewwss vviiaa NNNNTTPP - - If compiled with ``--enable-nntp'' option, Mutt can read news from - newsserver via NNTP. You can open a newsgroup with function ``change- - newsgroup'' (default: i). Default newsserver can be obtained from - _N_N_T_P_S_E_R_V_E_R environment variable. Like other news readers, info about - subscribed newsgroups is saved in file by ``$newsrc'' variable. - Article headers are cached and can be loaded from file when newsgroup - entered instead loading from newsserver. - - 33.. CCoonnffiigguurraattiioonn - - While the default configuration (or ``preferences'') make Mutt usable - right out of the box, it is often desirable to tailor Mutt to suit - your own tastes. When Mutt is first invoked, it will attempt to read - the ``system'' configuration file (defaults set by your local system - administrator), unless the ``-n'' ``command line'' option is - specified. This file is typically /usr/local/share/mutt/Muttrc or - /etc/Muttrc. Mutt will next look for a file named .muttrc in your home - directory. If this file does not exist and your home directory has a - subdirectory named .mutt, mutt try to load a file named .mutt/muttrc. - - .muttrc is the file where you will usually place your ``commands'' to - configure Mutt. - - In addition, mutt supports version specific configuration files that - are parsed instead of the default files as explained above. For - instance, if your system has a Muttrc-0.88 file in the system - configuration directory, and you are running version 0.88 of mutt, - this file will be sourced instead of the Muttrc file. The same is - true of the user configuration file, if you have a file .muttrc-0.88.6 - in your home directory, when you run mutt version 0.88.6, it will - source this file instead of the default .muttrc file. The version - number is the same which is visible using the ``-v'' ``command line'' - switch or using the show-version key (default: V) from the index menu. - - 33..11.. SSyynnttaaxx ooff IInniittiiaalliizzaattiioonn FFiilleess - - An initialization file consists of a series of ``commands''. Each - line of the file may contain one or more commands. When multiple - commands are used, they must be separated by a semicolon (;). - - set realname='Mutt user' ; ignore x- - - The hash mark, or pound sign (``#''), is used as a ``comment'' charac­ - ter. You can use it to annotate your initialization file. All text - after the comment character to the end of the line is ignored. For - example, - - my_hdr X-Disclaimer: Why are you listening to me? # This is a comment - - Single quotes (') and double quotes (") can be used to quote strings - which contain spaces or other special characters. The difference - between the two types of quotes is similar to that of many popular - shell programs, namely that a single quote is used to specify a - literal string (one that is not interpreted for shell variables or - quoting with a backslash [see next paragraph]), while double quotes - indicate a string for which should be evaluated. For example, - backtics are evaluated inside of double quotes, but nnoott for single - quotes. - - \ quotes the next character, just as in shells such as bash and zsh. - For example, if want to put quotes ``"'' inside of a string, you can - use ``\'' to force the next character to be a literal instead of - interpreted character. - - set realname="Michael \"MuttDude\" Elkins" - - ``\\'' means to insert a literal ``\'' into the line. ``\n'' and - ``\r'' have their usual C meanings of linefeed and carriage-return, - respectively. - - A \ at the end of a line can be used to split commands over multiple - lines, provided that the split points don't appear in the middle of - command names. - - It is also possible to substitute the output of a Unix command in an - initialization file. This is accomplished by enclosing the command in - backquotes (``). For example, - - my_hdr X-Operating-System: `uname -a` - - The output of the Unix command ``uname -a'' will be substituted before - the line is parsed. Note that since initialization files are line - oriented, only the first line of output from the Unix command will be - substituted. - - UNIX environments can be accessed like the way it is done in shells - like sh and bash: Prepend the name of the environment by a ``$''. For - example, + 4. Software Distribution Sites - set record=+sent_on_$HOSTNAME + 5. IRC - The commands understood by mutt are explained in the next paragraphs. - For a complete list, see the ``command reference''. + 6. Weblog - 33..22.. DDeeffiinniinngg//UUssiinngg aalliiaasseess + 7. Copyright - Usage: alias _k_e_y _a_d_d_r_e_s_s [ , _a_d_d_r_e_s_s, ... ] + 2. Getting Started - It's usually very cumbersome to remember or type out the address of - someone you are communicating with. Mutt allows you to create - ``aliases'' which map a short string to a full address. - - NNoottee:: if you want to create an alias for a group (by specifying more - than one address), you mmuusstt separate the addresses with a comma - (``,''). - - To remove an alias or aliases (``*'' means all aliases): - - unalias [ * | _k_e_y _._._. ] - - alias muttdude me@cs.hmc.edu (Michael Elkins) - alias theguys manny, moe, jack - - Unlike other mailers, Mutt doesn't require aliases to be defined in a - special file. The alias command can appear anywhere in a - configuration file, as long as this file is ``sourced''. - Consequently, you can have multiple alias files, or you can have all - aliases defined in your muttrc. - - On the other hand, the ``create-alias'' function can use only one - file, the one pointed to by the ``$alias_file'' variable (which is - ~/.muttrc by default). This file is not special either, in the sense - that Mutt will happily append aliases to any file, but in order for - the new aliases to take effect you need to explicitly ``source'' this - file too. - - For example: - - source /usr/local/share/Mutt.aliases - source ~/.mail_aliases - set alias_file=~/.mail_aliases - - To use aliases, you merely use the alias at any place in mutt where - mutt prompts for addresses, such as the _T_o_: or _C_c_: prompt. You can - also enter aliases in your editor at the appropriate headers if you - have the ``$edit_headers'' variable set. - - In addition, at the various address prompts, you can use the tab - character to expand a partial alias to the full alias. If there are - multiple matches, mutt will bring up a menu with the matching aliases. - In order to be presented with the full list of aliases, you must hit - tab with out a partial alias, such as at the beginning of the prompt - or after a comma denoting multiple addresses. - - In the alias menu, you can select as many aliases as you want with the - _s_e_l_e_c_t_-_e_n_t_r_y key (default: RET), and use the _e_x_i_t key (default: q) to - return to the address prompt. - - 33..33.. CChhaannggiinngg tthhee ddeeffaauulltt kkeeyy bbiinnddiinnggss - - Usage: bind _m_a_p _k_e_y _f_u_n_c_t_i_o_n - - This command allows you to change the default key bindings (operation - invoked when pressing a key). - - _m_a_p specifies in which menu the binding belongs. The currently - defined maps are: + 1. Basic Concepts - ggeenneerriicc - This is not a real menu, but is used as a fallback for all of - the other menus except for the pager and editor modes. If a key - is not defined in another menu, Mutt will look for a binding to - use in this menu. This allows you to bind a key to a certain - function in multiple menus instead of having multiple bind - statements to accomplish the same task. - - aalliiaass - The alias menu is the list of your personal aliases as defined - in your muttrc. It is the mapping from a short alias name to - the full email address(es) of the recipient(s). - - aattttaacchh - The attachment menu is used to access the attachments on - received messages. - - bbrroowwsseerr - The browser is used for both browsing the local directory - structure, and for listing all of your incoming mailboxes. - - eeddiittoorr - The editor is the line-based editor the user enters text data. - - iinnddeexx - The index is the list of messages contained in a mailbox. + 1.1. Screens and Menus - ccoommppoossee - The compose menu is the screen used when sending a new message. + 1.2. Configuration - ppaaggeerr - The pager is the mode used to display message/attachment data, - and help listings. - - ppggpp - The pgp menu is used to select the OpenPGP keys used for - encrypting outgoing messages. - - ppoossttppoonnee - The postpone menu is similar to the index menu, except is used - when recalling a message the user was composing, but saved until - later. - - _k_e_y is the key (or key sequence) you wish to bind. To specify a - control character, use the sequence _\_C_x, where _x is the letter of the - control character (for example, to specify control-A use ``\Ca''). - Note that the case of _x as well as _\_C is ignored, so that _\_C_A_, _\_C_a_, - _\_c_A and _\_c_a are all equivalent. An alternative form is to specify the - key as a three digit octal number prefixed with a ``\'' (for example - _\_1_7_7 is equivalent to _\_c_?). - - In addition, _k_e_y may consist of: - - \t tab - tab - \r carriage return - \n newline - \e escape - escape - up arrow - down arrow - left arrow - right arrow - Page Up - Page Down - Backspace - Delete - Insert - Enter - Return - Home - End - Space bar - function key 1 - function key 10 - - _k_e_y does not need to be enclosed in quotes unless it contains a space - (`` ''). + 1.3. Functions - _f_u_n_c_t_i_o_n specifies which action to take when _k_e_y is pressed. For a - complete list of functions, see the ``reference''. The special - function noop unbinds the specified key sequence. + 1.4. Interaction - 33..44.. DDeeffiinniinngg aalliiaasseess ffoorr cchhaarraacctteerr sseettss + 1.5. Modularization - Usage: charset-hook _a_l_i_a_s _c_h_a_r_s_e_t - Usage: iconv-hook _c_h_a_r_s_e_t _l_o_c_a_l_-_c_h_a_r_s_e_t + 1.6. Patterns - The charset-hook command defines an alias for a character set. This - is useful to properly display messages which are tagged with a - character set name not known to mutt. + 2. Screens and Menus - The iconv-hook command defines a system-specific name for a character - set. This is helpful when your systems character conversion library - insists on using strange, system-specific names for character sets. + 2.1. Index - 33..55.. SSeettttiinngg vvaarriiaabblleess bbaasseedd uuppoonn mmaaiillbbooxx + 2.2. Pager - Usage: folder-hook [!]_r_e_g_e_x_p _c_o_m_m_a_n_d + 2.3. File Browser - It is often desirable to change settings based on which mailbox you - are reading. The folder-hook command provides a method by which you - can execute any configuration command. _r_e_g_e_x_p is a regular expression - specifying in which mailboxes to execute _c_o_m_m_a_n_d before loading. If a - mailbox matches multiple folder-hook's, they are executed in the order - given in the muttrc. + 2.4. Sidebar - NNoottee:: if you use the ``!'' shortcut for ``$spoolfile'' at the - beginning of the pattern, you must place it inside of double or single - quotes in order to distinguish it from the logical _n_o_t operator for - the expression. + 2.5. Help - Note that the settings are _n_o_t restored when you leave the mailbox. - For example, a command action to perform is to change the sorting - method based upon the mailbox being read: + 2.6. Compose Menu - folder-hook mutt set sort=threads + 2.7. Alias Menu - However, the sorting method is not restored to its previous value when - reading a different mailbox. To specify a _d_e_f_a_u_l_t command, use the - pattern ``.'': + 2.8. Attachment Menu - folder-hook . set sort=date-sent + 2.9. Key Menu - 33..66.. KKeeyybbooaarrdd mmaaccrrooss + 3. Moving Around in Menus - Usage: macro _m_e_n_u _k_e_y _s_e_q_u_e_n_c_e [ _d_e_s_c_r_i_p_t_i_o_n ] + 4. Editing Input Fields - Macros are useful when you would like a single key to perform a series - of actions. When you press _k_e_y in menu _m_e_n_u, Mutt will behave as if - you had typed _s_e_q_u_e_n_c_e. So if you have a common sequence of commands - you type, you can create a macro to execute those commands with a - single key. + 5. Reading Mail - The Index and Pager - _k_e_y and _s_e_q_u_e_n_c_e are expanded by the same rules as the ``key - bindings''. There are some additions however. The first is that - control characters in _s_e_q_u_e_n_c_e can also be specified as _^_x. In order - to get a caret (`^'') you need to use _^_^. Secondly, to specify a - certain key such as _u_p or to invoke a function directly, you can use - the format _<_k_e_y _n_a_m_e_> and _<_f_u_n_c_t_i_o_n _n_a_m_e_>. For a listing of key names - see the section on ``key bindings''. Functions are listed in the - ``function reference''. + 5.1. The Message Index - The advantage with using function names directly is that the macros - will work regardless of the current key bindings, so they are not - dependent on the user having particular key definitions. This makes - them more robust and portable, and also facilitates defining of macros - in files used by more than one user (eg. the system Muttrc). + 5.2. The Pager - Optionally you can specify a descriptive text after _s_e_q_u_e_n_c_e, which is - shown in the help screens. + 5.3. Threaded Mode - NNoottee:: Macro definitions (if any) listed in the help screen(s), are - silently truncated at the screen width, and are not wrapped. + 5.4. Miscellaneous Functions - 33..77.. UUssiinngg ccoolloorr aanndd mmoonnoo vviiddeeoo aattttrriibbuutteess + 6. Sending Mail - Usage: color _o_b_j_e_c_t _f_o_r_e_g_r_o_u_n_d _b_a_c_k_g_r_o_u_n_d [ _r_e_g_e_x_p ] - Usage: color index _f_o_r_e_g_r_o_u_n_d _b_a_c_k_g_r_o_u_n_d _p_a_t_t_e_r_n - Usage: uncolor index _p_a_t_t_e_r_n [ _p_a_t_t_e_r_n ... ] + 6.1. Composing new messages - If your terminal supports color, you can spice up Mutt by creating - your own color scheme. To define the color of an object (type of - information), you must specify both a foreground color aanndd a - background color (it is not possible to only specify one or the - other). + 6.2. Replying - _o_b_j_e_c_t can be one of: + 6.3. Editing the message header - · attachment + 6.4. Using Mutt-ng with PGP - · body (match _r_e_g_e_x_p in the body of messages) + 6.5. Sending anonymous messages via mixmaster - · bold (hiliting bold patterns in the body of messages) + 7. Forwarding and Bouncing Mail - · error (error messages printed by Mutt) + 8. Postponing Mail - · header (match _r_e_g_e_x_p in the message header) + 3. Configuration - · hdrdefault (default color of the message header in the pager) + 1. Locations of Configuration Files - · index (match _p_a_t_t_e_r_n in the message index) + 2. Basic Syntax of Initialization Files - · indicator (arrow or bar used to indicate the current item in a - menu) + 3. Expansion within variables - · markers (the ``+'' markers at the beginning of wrapped lines in the - pager) + 3.1. Commands' Output - · message (informational messages) + 3.2. Environment Variables - · normal + 3.3. Configuration Variables - · quoted (text matching ``$quote_regexp'' in the body of a message) + 3.4. Self-Defined Variables - · quoted1, quoted2, ..., quotedNN (higher levels of quoting) + 3.5. Pre-Defined Variables - · search (hiliting of words in the pager) + 3.6. Type Conversions - · signature + 4. Defining/Using aliases - · status (mode lines used to display info about the mailbox or - message) + 5. Changing the default key bindings - · tilde (the ``~'' used to pad blank lines in the pager) + 6. Defining aliases for character sets - · tree (thread tree drawn in the message index and attachment menu) + 7. Setting variables based upon mailbox - · underline (hiliting underlined patterns in the body of messages) + 8. Keyboard macros - _f_o_r_e_g_r_o_u_n_d and _b_a_c_k_g_r_o_u_n_d can be one of the following: + 9. Using color and mono video attributes - · white + 10. Ignoring (weeding) unwanted message headers - · black + 11. Alternative addresses - · green + 12. Format = Flowed - · magenta + 12.1. Introduction - · blue + 12.2. Receiving: Display Setup - · cyan + 12.3. Sending - · yellow + 12.4. Additional Notes - · red + 13. Mailing lists - · default + 14. Using Multiple spool mailboxes - · color_x + 15. Defining mailboxes which receive mail - _f_o_r_e_g_r_o_u_n_d can optionally be prefixed with the keyword bright to make - the foreground color boldfaced (e.g., brightred). + 16. User defined headers - If your terminal supports it, the special keyword _d_e_f_a_u_l_t can be used - as a transparent color. The value _b_r_i_g_h_t_d_e_f_a_u_l_t is also valid. If - Mutt is linked against the _S_-_L_a_n_g library, you also need to set the - _C_O_L_O_R_F_G_B_G environment variable to the default colors of your terminal - for this to work; for example (for Bourne-like shells): + 17. Defining the order of headers when viewing messages - set COLORFGBG="green;black" - export COLORFGBG + 18. Specify default save filename - NNoottee:: The _S_-_L_a_n_g library requires you to use the _l_i_g_h_t_g_r_a_y and _b_r_o_w_n - keywords instead of _w_h_i_t_e and _y_e_l_l_o_w when setting this variable. + 19. Specify default Fcc: mailbox when composing - NNoottee:: The uncolor command can be applied to the index object only. It - removes entries from the list. You mmuusstt specify the same pattern - specified in the color command for it to be removed. The pattern - ``*'' is a special token which means to clear the color index list of - all entries. + 20. Specify default save filename and default Fcc: mailbox at + once - Mutt also recognizes the keywords _c_o_l_o_r_0, _c_o_l_o_r_1, ..., _c_o_l_o_rNN--11 (NN - being the number of colors supported by your terminal). This is - useful when you remap the colors for your display (for example by - changing the color associated with _c_o_l_o_r_2 for your xterm), since color - names may then lose their normal meaning. + 21. Change settings based upon message recipients - If your terminal does not support color, it is still possible change - the video attributes through the use of the ``mono'' command: + 22. Change settings before formatting a message - Usage: mono _<_o_b_j_e_c_t_> _<_a_t_t_r_i_b_u_t_e_> [ _r_e_g_e_x_p ] - Usage: mono index _a_t_t_r_i_b_u_t_e _p_a_t_t_e_r_n - Usage: unmono index _p_a_t_t_e_r_n [ _p_a_t_t_e_r_n ... ] + 23. Choosing the cryptographic key of the recipient - where _a_t_t_r_i_b_u_t_e is one of the following: + 24. Adding key sequences to the keyboard buffer - · none + 25. Executing functions - · bold + 26. Message Scoring - · underline + 27. Spam detection - · reverse + 28. Setting variables - · standout + 29. Reading initialization commands from another file - 33..88.. IIggnnoorriinngg ((wweeeeddiinngg)) uunnwwaanntteedd mmeessssaaggee hheeaaddeerrss + 30. Removing hooks - Usage: [un]ignore _p_a_t_t_e_r_n [ _p_a_t_t_e_r_n ... ] + 31. Sharing Setups - Messages often have many header fields added by automatic processing - systems, or which may not seem useful to display on the screen. This - command allows you to specify header fields which you don't normally - want to see. + 31.1. Character Sets - You do not need to specify the full header field name. For example, - ``ignore content-'' will ignore all header fields that begin with the - pattern ``content-''. ``ignore *'' will ignore all headers. + 31.2. Modularization - To remove a previously added token from the list, use the ``unignore'' - command. The ``unignore'' command will make Mutt display headers with - the given pattern. For example, if you do ``ignore x-'' it is - possible to ``unignore x-mailer''. + 31.3. Conditional parts - ``unignore *'' will remove all tokens from the ignore list. + 32. Obsolete Variables - For example: + 4. Advanced Usage - # Sven's draconian header weeding - ignore * - unignore from date subject to cc - unignore organization organisation x-mailer: x-newsreader: x-mailing-list: - unignore posted-to: + 1. Regular Expressions - 33..99.. AAlltteerrnnaattiivvee aaddddrreesssseess + 2. Patterns - Usage: [un]alternates _r_e_g_e_x_p [ _r_e_g_e_x_p ... ] + 2.1. Complex Patterns - With various functions, mutt will treat messages differently, - depending on whether you sent them or whether you received them from - someone else. For instance, when replying to a message that you sent - to a different party, mutt will automatically suggest to send the - response to the original message's recipients -- responding to - yourself won't make much sense in many cases. (See ``$reply_to''.) + 2.2. Patterns and Dates - Many users receive e-mail under a number of different addresses. To - fully use mutt's features here, the program must be able to recognize - what e-mail addresses you receive mail under. That's the purpose of - the alternates command: It takes a list of regular expressions, each - of which can identify an address under which you receive e-mail. + 3. Format Strings - To remove a regular expression from this list, use the unalternates - command. + 3.1. Introduction - 33..1100.. MMaaiilliinngg lliissttss + 3.2. Conditional Expansion - Usage: [un]lists _r_e_g_e_x_p [ _r_e_g_e_x_p ... ] - Usage: [un]subscribe _r_e_g_e_x_p [ _r_e_g_e_x_p ... ] + 3.3. Modifications and Padding - Mutt has a few nice features for ``handling mailing lists''. In order - to take advantage of them, you must specify which addresses belong to - mailing lists, and which mailing lists you are subscribed to. Once - you have done this, the ``list-reply'' function will work for all - known lists. Additionally, when you send a message to a subscribed - list, mutt will add a Mail-Followup-To header to tell other users' - mail user agents not to send copies of replies to your personal - address. Note that the Mail-Followup-To header is a non-standard - extension which is not supported by all mail user agents. Adding it - is not bullet-proof against receiving personal CCs of list messages. - Also note that the generation of the Mail-Followup-To header is - controlled by the ``$followup_to'' configuration variable. + 4. Using Tags - More precisely, Mutt maintains lists of patterns for the addresses of - known and subscribed mailing lists. Every subscribed mailing list is - known. To mark a mailing list as known, use the ``lists'' command. To - mark it as subscribed, use ``subscribe''. + 5. Using Hooks - You can use regular expressions with both commands. To mark all - messages sent to a specific bug report's address on mutt's bug - tracking system as list mail, for instance, you could say ``subscribe - [0-9]*@bugs.guug.de''. Often, it's sufficient to just give a portion - of the list's e-mail address. + 5.1. Message Matching in Hooks - Specify as much of the address as you need to to remove ambiguity. - For example, if you've subscribed to the Mutt mailing list, you will - receive mail addresssed to _m_u_t_t_-_u_s_e_r_s_@_m_u_t_t_._o_r_g. So, to tell Mutt that - this is a mailing list, you could add ``lists mutt-users'' to your - initialization file. To tell mutt that you are subscribed to it, add - ``subscribe mutt-users'' to your initialization file instead. If you - also happen to get mail from someone whose address is _m_u_t_t_- - _u_s_e_r_s_@_e_x_a_m_p_l_e_._c_o_m, you could use ``lists mutt-users@mutt.org'' or - ``subscribe mutt-users@mutt.org'' to match only mail from the actual - list. + 6. Using the sidebar - The ``unlists'' command is used to remove a token from the list of - known and subscribed mailing-lists. Use ``unlists *'' to remove all - tokens. + 7. External Address Queries - To remove a mailing list from the list of subscribed mailing lists, - but keep it on the list of known mailing lists, use ``unsubscribe''. + 8. Mailbox Formats - 33..1111.. UUssiinngg MMuullttiippllee ssppooooll mmaaiillbbooxxeess + 9. Mailbox Shortcuts - Usage: mbox-hook [!]_p_a_t_t_e_r_n _m_a_i_l_b_o_x + 10. Handling Mailing Lists - This command is used to move read messages from a specified mailbox to - a different mailbox automatically when you quit or change folders. - _p_a_t_t_e_r_n is a regular expression specifying the mailbox to treat as a - ``spool'' mailbox and _m_a_i_l_b_o_x specifies where mail should be saved - when read. + 11. Editing threads - Unlike some of the other _h_o_o_k commands, only the _f_i_r_s_t matching - pattern is used (it is not possible to save read mail in more than a - single mailbox). + 11.1. Linking threads - 33..1122.. DDeeffiinniinngg mmaaiillbbooxxeess wwhhiicchh rreecceeiivvee mmaaiill + 11.2. Breaking threads - Usage: [un]mailboxes [!]_f_i_l_e_n_a_m_e [ _f_i_l_e_n_a_m_e ... ] + 12. Delivery Status Notification (DSN) Support - This command specifies folders which can receive mail and which will - be checked for new messages. By default, the main menu status bar - displays how many of these folders have new messages. + 13. POP3 Support (OPTIONAL) - When changing folders, pressing _s_p_a_c_e will cycle through folders with - new mail. + 14. IMAP Support (OPTIONAL) - Pressing TAB in the directory browser will bring up a menu showing the - files specified by the mailboxes command, and indicate which contain - new messages. Mutt will automatically enter this mode when invoked - from the command line with the -y option. + 14.1. The Folder Browser - The ``unmailboxes'' command is used to remove a token from the list of - folders which receive mail. Use ``unmailboxes *'' to remove all - tokens. + 14.2. Authentication - NNoottee:: new mail is detected by comparing the last modification time to - the last access time. Utilities like biff or frm or any other program - which accesses the mailbox might cause Mutt to never detect new mail - for that mailbox if they do not properly reset the access time. - Backup tools are another common reason for updated access times. + 15. NNTP Support (OPTIONAL) - NNoottee:: the filenames in the mailboxes command are resolved when the - command is executed, so if these names contain ``shortcut characters'' - (such as ``='' and ``!''), any variable definition that affect these - characters (like ``$folder'' and ``$spoolfile'') should be executed - before the mailboxes command. + 15.1. Again: Scoring - 33..1133.. UUsseerr ddeeffiinneedd hheeaaddeerrss + 16. SMTP Support (OPTIONAL) - Usage: - my_hdr _s_t_r_i_n_g - unmy_hdr _f_i_e_l_d [ _f_i_e_l_d ... ] + 17. Managing multiple IMAP/POP/NNTP accounts (OPTIONAL) - The ``my_hdr'' command allows you to create your own header fields - which will be added to every message you send. + 18. Start a WWW Browser on URLs (EXTERNAL) - For example, if you would like to add an ``Organization:'' header - field to all of your outgoing messages, you can put the command + 19. Compressed folders Support (OPTIONAL) - my_hdr Organization: A Really Big Company, Anytown, USA + 19.1. Open a compressed mailbox for reading - in your .muttrc. + 19.2. Write a compressed mailbox - NNoottee:: space characters are _n_o_t allowed between the keyword and the - colon (``:''). The standard for electronic mail (RFC822) says that - space is illegal there, so Mutt enforces the rule. + 19.3. Append a message to a compressed mailbox - If you would like to add a header field to a single message, you - should either set the ``edit_headers'' variable, or use the _e_d_i_t_- - _h_e_a_d_e_r_s function (default: ``E'') in the send-menu so that you can - edit the header of your message along with the body. + 19.4. Encrypted folders - To remove user defined header fields, use the ``unmy_hdr'' command. - You may specify an asterisk (``*'') to remove all header fields, or - the fields to remove. For example, to remove all ``To'' and ``Cc'' - header fields, you could use: + 5. Mutt-ng's MIME Support - unmy_hdr to cc + 1. Using MIME in Mutt - 33..1144.. DDeeffiinniinngg tthhee oorrddeerr ooff hheeaaddeerrss wwhheenn vviieewwiinngg mmeessssaaggeess + 1.1. Viewing MIME messages in the pager - Usage: hdr_order _h_e_a_d_e_r_1 _h_e_a_d_e_r_2 _h_e_a_d_e_r_3 + 1.2. The Attachment Menu - With this command, you can specify an order in which mutt will attempt - to present headers to you when viewing messages. + 1.3. The Compose Menu - ``unhdr_order *'' will clear all previous headers from the order list, - thus removing the header order effects set by the system-wide startup - file. + 2. MIME Type configuration with mime.types - hdr_order From Date: From: To: Cc: Subject: + 3. MIME Viewer configuration with mailcap - 33..1155.. SSppeecciiffyy ddeeffaauulltt ssaavvee ffiilleennaammee + 3.1. The Basics of the mailcap file - Usage: save-hook [!]_p_a_t_t_e_r_n _f_i_l_e_n_a_m_e + 3.2. Secure use of mailcap - This command is used to override the default filename used when saving - messages. _f_i_l_e_n_a_m_e will be used as the default filename if the - message is _F_r_o_m_: an address matching _r_e_g_e_x_p or if you are the author - and the message is addressed _t_o_: something matching _r_e_g_e_x_p. + 3.3. Advanced mailcap Usage - See ``Message Matching in Hooks'' for information on the exact format - of _p_a_t_t_e_r_n. + 3.4. Example mailcap files - Examples: + 4. MIME Autoview - save-hook me@(turing\\.)?cs\\.hmc\\.edu$ +elkins - save-hook aol\\.com$ +spam + 5. MIME Multipart/Alternative - Also see the ``fcc-save-hook'' command. + 6. MIME Lookup - 33..1166.. SSppeecciiffyy ddeeffaauulltt FFcccc:: mmaaiillbbooxx wwhheenn ccoommppoossiinngg + 6. Security Considerations - Usage: fcc-hook [!]_p_a_t_t_e_r_n _m_a_i_l_b_o_x + 1. Passwords - This command is used to save outgoing mail in a mailbox other than - ``$record''. Mutt searches the initial list of message recipients for - the first matching _r_e_g_e_x_p and uses _m_a_i_l_b_o_x as the default Fcc: - mailbox. If no match is found the message will be saved to - ``$record'' mailbox. + 2. Temporary Files - See ``Message Matching in Hooks'' for information on the exact format - of _p_a_t_t_e_r_n. + 3. Information Leaks - Example: fcc-hook aol.com$ +spammers + 3.1. Message-ID: headers - The above will save a copy of all messages going to the aol.com domain - to the `+spammers' mailbox by default. Also see the ``fcc-save-hook'' - command. + 3.2. mailto:-style links - 33..1177.. SSppeecciiffyy ddeeffaauulltt ssaavvee ffiilleennaammee aanndd ddeeffaauulltt FFcccc:: mmaaiillbbooxx aatt oonnccee + 4. External applications - Usage: fcc-save-hook [!]_p_a_t_t_e_r_n _m_a_i_l_b_o_x + 4.1. mailcap - This command is a shortcut, equivalent to doing both a ``fcc-hook'' - and a ``save-hook'' with its arguments. + 4.2. Other - 33..1188.. CChhaannggee sseettttiinnggss bbaasseedd uuppoonn mmeessssaaggee rreecciippiieennttss + 7. Reference - Usage: reply-hook [!]_p_a_t_t_e_r_n _c_o_m_m_a_n_d - Usage: send-hook [!]_p_a_t_t_e_r_n _c_o_m_m_a_n_d + 1. Command line options - These commands can be used to execute arbitrary configuration commands - based upon recipients of the message. _p_a_t_t_e_r_n is a regular expression - matching the desired address. _c_o_m_m_a_n_d is executed when _r_e_g_e_x_p matches - recipients of the message. + 2. Patterns - reply-hook is matched against the message you are _r_e_p_l_y_i_n_g ttoo, instead - of the message you are _s_e_n_d_i_n_g. send-hook is matched against all - messages, both _n_e_w and _r_e_p_l_i_e_s. NNoottee:: reply-hooks are matched bbeeffoorree - the send-hook, rreeggaarrddlleessss of the order specified in the users's - configuration file. + 3. Configuration Commands - For each type of send-hook or reply-hook, When multiple matches occur, - commands are executed in the order they are specified in the muttrc - (for that type of hook). + 4. Configuration variables - See ``Message Matching in Hooks'' for information on the exact format - of _p_a_t_t_e_r_n. + 5. Functions - Example: send-hook mutt "set mime_forward signature=''" + 5.1. generic - Another typical use for this command is to change the values of the - ``$attribution'', ``$signature'' and ``$locale'' variables in order to - change the language of the attributions and signatures based upon the - recipients. + 5.2. index - NNoottee:: the send-hook's are only executed ONCE after getting the initial - list of recipients. Adding a recipient after replying or editing the - message will NOT cause any send-hook to be executed. Also note that - my_hdr commands which modify recipient headers, or the message's - subject, don't have any effect on the current message when executed - from a send-hook. + 5.3. pager - 33..1199.. CChhaannggee sseettttiinnggss bbeeffoorree ffoorrmmaattttiinngg aa mmeessssaaggee + 5.4. alias - Usage: message-hook [!]_p_a_t_t_e_r_n _c_o_m_m_a_n_d + 5.5. query - This command can be used to execute arbitrary configuration commands - before viewing or formatting a message based upon information about - the message. _c_o_m_m_a_n_d is executed if the _p_a_t_t_e_r_n matches the message - to be displayed. When multiple matches occur, commands are executed in - the order they are specified in the muttrc. + 5.6. attach - See ``Message Matching in Hooks'' for information on the exact format - of _p_a_t_t_e_r_n. + 5.7. compose - Example: + 5.8. postpone - message-hook ~A 'set pager=builtin' - message-hook '~f freshmeat-news' 'set pager="less \"+/^ subject: .*\""' + 5.9. browser - 33..2200.. CChhoooossiinngg tthhee ccrryyppttooggrraapphhiicc kkeeyy ooff tthhee rreecciippiieenntt + 5.10. pgp - Usage: crypt-hook _p_a_t_t_e_r_n _k_e_y_i_d + 5.11. editor - When encrypting messages with PGP or OpenSSL, you may want to - associate a certain key with a given e-mail address automatically, - either because the recipient's public key can't be deduced from the - destination address, or because, for some reasons, you need to - override the key Mutt would normally use. The crypt-hook command - provides a method by which you can specify the ID of the public key to - be used when encrypting messages to a certain recipient. + 8. Miscellany - The meaning of "key id" is to be taken broadly in this context: You - can either put a numerical key ID here, an e-mail address, or even - just a real name. + 1. Acknowledgments - 33..2211.. AAddddiinngg kkeeyy sseeqquueenncceess ttoo tthhee kkeeyybbooaarrdd bbuuffffeerr + List of Tables - Usage: push _s_t_r_i_n_g + 2.1. Default Menu Movement Keys - This command adds the named string to the keyboard buffer. The string - may contain control characters, key names and function names like the - sequence string in the ``macro'' command. You may use it to - automatically run a sequence of commands at startup, or when entering - certain folders. + 2.2. Built-In Editor Functions - 33..2222.. EExxeeccuuttiinngg ffuunnccttiioonnss + 2.3. Default Index Menu Bindings - Usage: exec _f_u_n_c_t_i_o_n [ _f_u_n_c_t_i_o_n ... ] + 2.4. Default Pager Menu Bindings - This command can be used to execute any function. Functions are listed - in the ``function reference''. ``exec function'' is equivalent to - ``push ''. + 2.5. ANSI Escape Sequences - 33..2233.. MMeessssaaggee SSccoorriinngg + 2.6. ANSI Colors - Usage: score _p_a_t_t_e_r_n _v_a_l_u_e - Usage: unscore _p_a_t_t_e_r_n [ _p_a_t_t_e_r_n ... ] + 2.7. Default Thread Function Bindings - The score commands adds _v_a_l_u_e to a message's score if _p_a_t_t_e_r_n matches - it. _p_a_t_t_e_r_n is a string in the format described in the ``patterns'' - section (note: For efficiency reasons, patterns which scan information - not available in the index, such as ~b, ~B or ~h, may not be used). - _v_a_l_u_e is a positive or negative integer. A message's final score is - the sum total of all matching score entries. However, you may - optionally prefix _v_a_l_u_e with an equal sign (=) to cause evaluation to - stop at a particular entry if there is a match. Negative final scores - are rounded up to 0. + 2.8. Default Mail Composition Bindings - The unscore command removes score entries from the list. You mmuusstt - specify the same pattern specified in the score command for it to be - removed. The pattern ``*'' is a special token which means to clear - the list of all score entries. + 2.9. Default Compose Menu Bindings - 33..2244.. SSeettttiinngg vvaarriiaabblleess + 2.10. PGP Key Menu Flags - Usage: set [no|inv]_v_a_r_i_a_b_l_e[=_v_a_l_u_e] [ _v_a_r_i_a_b_l_e ... ] - Usage: toggle _v_a_r_i_a_b_l_e [_v_a_r_i_a_b_l_e ... ] - Usage: unset _v_a_r_i_a_b_l_e [_v_a_r_i_a_b_l_e ... ] - Usage: reset _v_a_r_i_a_b_l_e [_v_a_r_i_a_b_l_e ... ] + 3.1. Alternative Key Names - This command is used to set (and unset) ``configuration variables''. - There are four basic types of variables: boolean, number, string and - quadoption. _b_o_o_l_e_a_n variables can be _s_e_t (true) or _u_n_s_e_t (false). - _n_u_m_b_e_r variables can be assigned a positive integer value. + 4.1. Default Sidebar Function Bindings - _s_t_r_i_n_g variables consist of any number of printable characters. - _s_t_r_i_n_g_s must be enclosed in quotes if they contain spaces or tabs. - You may also use the ``C'' escape sequences \\nn and \\tt for newline and - tab, respectively. + 7.1. Mutt-NG Command Line Options - _q_u_a_d_o_p_t_i_o_n variables are used to control whether or not to be prompted - for certain actions, or to specify a default action. A value of _y_e_s - will cause the action to be carried out automatically as if you had - answered yes to the question. Similarly, a value of _n_o will cause the - the action to be carried out as if you had answered ``no.'' A value - of _a_s_k_-_y_e_s will cause a prompt with a default answer of ``yes'' and - _a_s_k_-_n_o will provide a default answer of ``no.'' + 7.2. Patterns - Prefixing a variable with ``no'' will unset it. Example: set - noaskbcc. + 7.3. Obsolete Variables - For _b_o_o_l_e_a_n variables, you may optionally prefix the variable name - with inv to toggle the value (on or off). This is useful when writing - macros. Example: set invsmart_wrap. +Chapter 1. Introduction - The toggle command automatically prepends the inv prefix to all - specified variables. + Table of Contents - The unset command automatically prepends the no prefix to all - specified variables. + 1. Overview - Using the enter-command function in the _i_n_d_e_x menu, you can query the - value of a variable by prefixing the name of the variable with a - question mark: + 2. Mutt-ng Home Page - set ?allow_8bit + 3. Mailing Lists - The question mark is actually only required for boolean and quadoption - variables. + 4. Software Distribution Sites - The reset command resets all given variables to the compile time - defaults (hopefully mentioned in this manual). If you use the command - set and prefix the variable with ``&'' this has the same behavior as - the reset command. + 5. IRC - With the reset command there exists the special variable ``all'', - which allows you to reset all variables to their system defaults. + 6. Weblog - 33..2255.. RReeaaddiinngg iinniittiiaalliizzaattiioonn ccoommmmaannddss ffrroomm aannootthheerr ffiillee + 7. Copyright - Usage: source _f_i_l_e_n_a_m_e +1. Overview - This command allows the inclusion of initialization commands from - other files. For example, I place all of my aliases in - ~/.mail_aliases so that I can make my ~/.muttrc readable and keep my - aliases private. + Mutt-ng is a small but very powerful text-based MIME mail client. Mutt-ng + is highly configurable, and is well suited to the mail power user with + advanced features like key bindings, keyboard macros, mail threading, + regular expression searches and a powerful pattern matching language for + selecting groups of messages. - If the filename begins with a tilde (``~''), it will be expanded to - the path of your home directory. + This documentation additionally contains documentation to Mutt-NG ,a fork + from Mutt with the goal to fix all the little annoyances of Mutt, to + integrate all the Mutt patches that are floating around in the web, and to + add other new features. Features specific to Mutt-ng will be discussed in + an extra section. Don't be confused when most of the documentation talk + about Mutt and not Mutt-ng, Mutt-ng contains all Mutt features, plus many + more. - If the filename ends with a vertical bar (|), then _f_i_l_e_n_a_m_e is - considered to be an executable program from which to read input (eg. - source ~bin/myscript|/). +2. Mutt-ng Home Page - 33..2266.. RReemmoovviinngg hhooookkss + http://www.muttng.org - Usage: unhook [ * | _h_o_o_k_-_t_y_p_e ] - - This command permits you to flush hooks you have previously defined. - You can either remove all hooks by giving the ``*'' character as an - argument, or you can remove all hooks of a specific type by saying - something like unhook send-hook. - - 44.. AAddvvaanncceedd UUssaaggee - - 44..11.. RReegguullaarr EExxpprreessssiioonnss - - All string patterns in Mutt including those in more complex - ``patterns'' must be specified using regular expressions (regexp) in - the ``POSIX extended'' syntax (which is more or less the syntax used - by egrep and GNU awk). For your convenience, we have included below a - brief description of this syntax. - - The search is case sensitive if the pattern contains at least one - upper case letter, and case insensitive otherwise. Note that ``\'' - must be quoted if used for a regular expression in an initialization - command: ``\\''. - - A regular expression is a pattern that describes a set of strings. - Regular expressions are constructed analogously to arithmetic - expressions, by using various operators to combine smaller - expressions. - - Note that the regular expression can be enclosed/delimited by either " - or ' which is useful if the regular expression includes a white-space - character. See ``Syntax of Initialization Files'' for more - information on " and ' delimiter processing. To match a literal " or - ' you must preface it with \ (backslash). +3. Mailing Lists - The fundamental building blocks are the regular expressions that match - a single character. Most characters, including all letters and - digits, are regular expressions that match themselves. Any - metacharacter with special meaning may be quoted by preceding it with - a backslash. + o : This is where the mutt-ng user + support happens. - The period ``.'' matches any single character. The caret ``^'' and - the dollar sign ``$'' are metacharacters that respectively match the - empty string at the beginning and end of a line. + o : The development mailing list for + mutt-ng - A list of characters enclosed by ``['' and ``]'' matches any single - character in that list; if the first character of the list is a caret - ``^'' then it matches any character nnoott in the list. For example, the - regular expression [[00112233445566778899]] matches any single digit. A range of - ASCII characters may be specified by giving the first and last - characters, separated by a hyphen ``-''. Most metacharacters lose - their special meaning inside lists. To include a literal ``]'' place - it first in the list. Similarly, to include a literal ``^'' place it - anywhere but first. Finally, to include a literal hyphen ``-'' place - it last. +4. Software Distribution Sites - Certain named classes of characters are predefined. Character classes - consist of ``[:'', a keyword denoting the class, and ``:]''. The - following classes are defined by the POSIX standard: + So far, there are no official releases of Mutt-ng, but you can download + daily snapshots from http://mutt-ng.berlios.de/snapshots/ - [[::aallnnuumm::]] - Alphanumeric characters. +5. IRC - [[::aallpphhaa::]] - Alphabetic characters. + Visit channel #muttng on irc.freenode.net (www.freenode.net) to chat with + other people interested in Mutt-ng. - [[::bbllaannkk::]] - Space or tab characters. +6. Weblog - [[::ccnnttrrll::]] - Control characters. + If you want to read fresh news about the latest development in Mutt-ng, + and get informed about stuff like interesting, Mutt-ng-related articles + and packages for your favorite distribution, you can read and/or subscribe + to our Mutt-ng development weblog. - [[::ddiiggiitt::]] - Numeric characters. - [[::ggrraapphh::]] - Characters that are both printable and visible. (A space is - printable, but not visible, while an ``a'' is both.) +7. Copyright - [[::lloowweerr::]] - Lower-case alphabetic characters. + Mutt is Copyright (C) 1996-2000 Michael R. Elkins and + others - [[::pprriinntt::]] - Printable characters (characters that are not control - characters.) + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. - [[::ppuunncctt::]] - Punctuation characters (characters that are not letter, digits, - control characters, or space characters). + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. - [[::ssppaaccee::]] - Space characters (such as space, tab and formfeed, to name a - few). + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., 59 + Temple Place - Suite 330, Boston, MA 02111, USA. - [[::uuppppeerr::]] - Upper-case alphabetic characters. +Chapter 2. Getting Started - [[::xxddiiggiitt::]] - Characters that are hexadecimal digits. + Table of Contents - A character class is only valid in a regular expression inside the - brackets of a character list. Note that the brackets in these class - names are part of the symbolic names, and must be included in addition - to the brackets delimiting the bracket list. For example, [[[[::ddiiggiitt::]]]] - is equivalent to [[00--99]]. - - Two additional special sequences can appear in character lists. These - apply to non-ASCII character sets, which can have single symbols - (called collating elements) that are represented with more than one - character, as well as several characters that are equivalent for - collating or sorting purposes: - - CCoollllaattiinngg SSyymmbboollss - A collating symbol is a multi-character collating element - enclosed in ``[.'' and ``.]''. For example, if ``ch'' is a - collating element, then [[[[..cchh..]]]] is a regexp that matches this - collating element, while [[cchh]] is a regexp that matches either - ``c'' or ``h''. - - EEqquuiivvaalleennccee CCllaasssseess - An equivalence class is a locale-specific name for a list of - characters that are equivalent. The name is enclosed in ``[='' - and ``=]''. For example, the name ``e'' might be used to - represent all of ``è'' ``é'' and ``e''. In this case, [[[[==ee==]]]] - is a regexp that matches any of ``è'', ``é'' and ``e''. - - A regular expression matching a single character may be followed by - one of several repetition operators: - - ?? The preceding item is optional and matched at most once. - - ** The preceding item will be matched zero or more times. - - ++ The preceding item will be matched one or more times. - - {{nn}} - The preceding item is matched exactly _n times. - - {{nn,,}} - The preceding item is matched _n or more times. - - {{,,mm}} - The preceding item is matched at most _m times. - - {{nn,,mm}} - The preceding item is matched at least _n times, but no more than - _m times. - - Two regular expressions may be concatenated; the resulting regular - expression matches any string formed by concatenating two substrings - that respectively match the concatenated subexpressions. - - Two regular expressions may be joined by the infix operator ``|''; the - resulting regular expression matches any string matching either - subexpression. - - Repetition takes precedence over concatenation, which in turn takes - precedence over alternation. A whole subexpression may be enclosed in - parentheses to override these precedence rules. - - NNoottee:: If you compile Mutt with the GNU _r_x package, the following - operators may also be used in regular expressions: - - \\\\yy - Matches the empty string at either the beginning or the end of a - word. - - \\\\BB - Matches the empty string within a word. - - \\\\<< - Matches the empty string at the beginning of a word. - - \\\\>> - Matches the empty string at the end of a word. - - \\\\ww - Matches any word-constituent character (letter, digit, or - underscore). - - \\\\WW - Matches any character that is not word-constituent. - - \\\\`` - Matches the empty string at the beginning of a buffer (string). - - \\\\'' - Matches the empty string at the end of a buffer. - - Please note however that these operators are not defined by POSIX, so - they may or may not be available in stock libraries on various - systems. - - 44..22.. PPaatttteerrnnss - - Many of Mutt's commands allow you to specify a pattern to match - (limit, tag-pattern, delete-pattern, etc.). There are several ways to - select messages: - - ~A all messages - ~b EXPR messages which contain EXPR in the message body - ~B EXPR messages which contain EXPR in the whole message - ~c USER messages carbon-copied to USER - ~C EXPR message is either to: or cc: EXPR - ~D deleted messages - ~d [MIN]-[MAX] messages with ``date-sent'' in a Date range - ~E expired messages - ~e EXPR message which contains EXPR in the ``Sender'' field - ~F flagged messages - ~f USER messages originating from USER - ~g cryptographically signed messages - ~G cryptographically encrypted messages - ~h EXPR messages which contain EXPR in the message header - ~k message contains PGP key material - ~i ID message which match ID in the ``Message-ID'' field - ~L EXPR message is either originated or received by EXPR - ~l message is addressed to a known mailing list - ~m [MIN]-[MAX] message in the range MIN to MAX *) - ~n [MIN]-[MAX] messages with a score in the range MIN to MAX *) - ~N new messages - ~O old messages - ~p message is addressed to you (consults alternates) - ~P message is from you (consults alternates) - ~Q messages which have been replied to - ~R read messages - ~r [MIN]-[MAX] messages with ``date-received'' in a Date range - ~S superseded messages - ~s SUBJECT messages having SUBJECT in the ``Subject'' field. - ~T tagged messages - ~t USER messages addressed to USER - ~U unread messages - ~v message is part of a collapsed thread. - ~V cryptographically verified messages - ~x EXPR messages which contain EXPR in the `References' field - ~y EXPR messages which contain EXPR in the `X-Label' field - ~z [MIN]-[MAX] messages with a size in the range MIN to MAX *) - ~= duplicated messages (see $duplicate_threads) + 1. Basic Concepts - Where EXPR, USER, ID, and SUBJECT are ``regular expressions''. - Special attention has to be made when using regular expressions inside - of patterns. Specifically, Mutt's parser for these patterns will - strip one level of backslash (\), which is normally used for quoting. - If it is your intention to use a backslash in the regular expression, - you will need to use two backslashes instead (\\). + 1.1. Screens and Menus - *) The forms <[MAX], >[MIN], [MIN]- and -[MAX] are allowed, too. + 1.2. Configuration - 44..22..11.. PPaatttteerrnn MMooddiiffiieerr + 1.3. Functions - Note that patterns matching 'lists' of addresses (notably c,C,p,P and - t) match if there is at least one match in the whole list. If you want - to make sure that all elements of that list match, you need to prefix - your pattern with ^. This example matches all mails which only has - recipients from Germany. + 1.4. Interaction - ^~C \.de$ + 1.5. Modularization - 44..22..22.. CCoommpplleexx PPaatttteerrnnss + 1.6. Patterns - Logical AND is performed by specifying more than one criterion. For - example: + 2. Screens and Menus - ~t mutt ~f elkins + 2.1. Index - would select messages which contain the word ``mutt'' in the list of - recipients aanndd that have the word ``elkins'' in the ``From'' header - field. + 2.2. Pager - Mutt also recognizes the following operators to create more complex - search patterns: + 2.3. File Browser - · ! -- logical NOT operator + 2.4. Sidebar - · | -- logical OR operator + 2.5. Help - · () -- logical grouping operator - - Here is an example illustrating a complex search pattern. This - pattern will select all messages which do not contain ``mutt'' in the - ``To'' or ``Cc'' field and which are from ``elkins''. + 2.6. Compose Menu - !(~t mutt|~c mutt) ~f elkins + 2.7. Alias Menu - Here is an example using white space in the regular expression (note - the ' and " delimiters). For this to match, the mail's subject must - match the ``^Junk +From +Me$'' and it must be from either ``Jim - +Somebody'' or ``Ed +SomeoneElse'': - - '~s "^Junk +From +Me$" ~f ("Jim +Somebody"|"Ed +SomeoneElse")' - - Note that if a regular expression contains parenthesis, or a veritical - bar ("|"), you mmuusstt enclose the expression in double or single quotes - since those characters are also used to separate different parts of - Mutt's pattern language. For example, + 2.8. Attachment Menu - ~f "me@(mutt\.org|cs\.hmc\.edu)" + 2.9. Key Menu - Without the quotes, the parenthesis would truncate the regular - expression to simply _m_e_@, which is probably not what you want. + 3. Moving Around in Menus - 44..22..33.. SSeeaarrcchhiinngg bbyy DDaattee + 4. Editing Input Fields - Mutt supports two types of dates, _a_b_s_o_l_u_t_e and _r_e_l_a_t_i_v_e. + 5. Reading Mail - The Index and Pager - AAbbssoolluuttee. Dates mmuusstt be in DD/MM/YY format (month and year are - optional, defaulting to the current month and year). An example of a - valid range of dates is: + 5.1. The Message Index - Limit to messages matching: ~d 20/1/95-31/10 + 5.2. The Pager - If you omit the minimum (first) date, and just specify ``-DD/MM/YY'', - all messages _b_e_f_o_r_e the given date will be selected. If you omit the - maximum (second) date, and specify ``DD/MM/YY-'', all messages _a_f_t_e_r - the given date will be selected. If you specify a single date with no - dash (``-''), only messages sent on the given date will be selected. + 5.3. Threaded Mode - EErrrroorr MMaarrggiinnss. You can add error margins to absolute dates. An error - margin is a sign (+ or -), followed by a digit, followed by one of the - following units: + 5.4. Miscellaneous Functions - y years - m months - w weeks - d days + 6. Sending Mail - As a special case, you can replace the sign by a ``*'' character, - which is equivalent to giving identical plus and minus error margins. + 6.1. Composing new messages - Example: To select any messages two weeks around January 15, 2001, - you'd use the following pattern: + 6.2. Replying - Limit to messages matching: ~d 15/1/2001*2w + 6.3. Editing the message header - RReellaattiivvee. This type of date is relative to the current date, and may - be specified as: + 6.4. Using Mutt-ng with PGP - · >_o_f_f_s_e_t (messages older than _o_f_f_s_e_t units) + 6.5. Sending anonymous messages via mixmaster - · <_o_f_f_s_e_t (messages newer than _o_f_f_s_e_t units) + 7. Forwarding and Bouncing Mail - · =_o_f_f_s_e_t (messages exactly _o_f_f_s_e_t units old) + 8. Postponing Mail - _o_f_f_s_e_t is specified as a positive number with one of the following - units: +1. Basic Concepts - y years - m months - w weeks - d days + 1.1. Screens and Menus - Example: to select messages less than 1 month old, you would use + mutt-ng offers different screens of which every has its special purpose: - Limit to messages matching: ~d <1m + o The index displays the contents of the currently opened mailbox. - NNoottee:: all dates used when searching are relative to the llooccaall time - zone, so unless you change the setting of your ``$index_format'' to - include a %[...] format, these are nnoott the dates shown in the main - index. + o The pager is responsible for displaying messages, that is, the header, + the body and all attached parts. - 44..33.. UUssiinngg TTaaggss + o The file browser offers operations on and displays information of all + folders mutt-ng should watch for mail. - Sometimes it is desirable to perform an operation on a group of - messages all at once rather than one at a time. An example might be - to save messages to a mailing list to a separate folder, or to delete - all messages with a given subject. To tag all messages matching a - pattern, use the tag-pattern function, which is bound to ``shift-T'' - by default. Or you can select individual messages by hand using the - ``tag-message'' function, which is bound to ``t'' by default. See - ``patterns'' for Mutt's pattern matching syntax. + o The sidebar offers a permanent view of which mailboxes contain how + many total, new and/or flagged mails. - Once you have tagged the desired messages, you can use the ``tag- - prefix'' operator, which is the ``;'' (semicolon) key by default. - When the ``tag-prefix'' operator is used, the nneexxtt operation will be - applied to all tagged messages if that operation can be used in that - manner. If the ``$auto_tag'' variable is set, the next operation - applies to the tagged messages automatically, without requiring the - ``tag-prefix''. + o The help screen lists for all currently available commands how to + invoke them as well as a short description. - 44..44.. UUssiinngg HHooookkss + o The compose menu is a comfortable interface take last actions before + sending mail: change subjects, attach files, remove attachements, etc. - A _h_o_o_k is a concept borrowed from the EMACS editor which allows you to - execute arbitrary commands before performing some operation. For - example, you may wish to tailor your configuration based upon which - mailbox you are reading, or to whom you are sending mail. In the Mutt - world, a _h_o_o_k consists of a ``regular expression'' or ``pattern'' - along with a configuration option/command. See + o The attachement menu gives a summary and the tree structure of the + attachements of the current message. - · ``folder-hook'' + o The alias menu lists all or a fraction of the aliases a user has + defined. - · ``send-hook'' + o The key menu used in connection with encryption lets users choose the + right key to encrypt with. - · ``message-hook'' + When mutt-ng is started without any further options, it'll open the users + default mailbox and display the index. - · ``save-hook'' + 1.2. Configuration - · ``mbox-hook'' + Mutt-ng does not feature an internal configuration interface or menu due + to the simple fact that this would be too complex to handle (currently + there are several hundred variables which fine-tune the behaviour.) - · ``fcc-hook'' + Mutt-ng is configured using configuration files which allow users to add + comments or manage them via version control systems to ease maintenance. - · ``fcc-save-hook'' + Also, mutt-ng comes with a shell script named grml-muttng kindly + contributed by users which really helps and eases the creation of a user's + configuration file. When downloading the source code via a snapshot or via + subversion, it can be found in the contrib directory. - for specific details on each type of _h_o_o_k available. + 1.3. Functions - NNoottee:: if a hook changes configuration settings, these changes remain - effective until the end of the current mutt session. As this is - generally not desired, a default hook needs to be added before all - other hooks to restore configuration defaults. Here is an example with - send-hook and the my_hdr directive: + Mutt-ng offers great flexibility due to the use of functions: internally, + every action a user can make mutt-ng perform is named ``function.'' Those + functions are assigned to keys (or even key sequences) and may be + completely adjusted to user's needs. The basic idea is that the impatient + users get a very intuitive interface to start off with and advanced users + virtually get no limits to adjustments. - send-hook . 'unmy_hdr From:' - send-hook ~Cb@b.b my_hdr from: c@c.c + 1.4. Interaction - 44..44..11.. MMeessssaaggee MMaattcchhiinngg iinn HHooookkss + Mutt-ng has two basic concepts of user interaction: - Hooks that act upon messages (send-hook, save-hook, fcc-hook, message- - hook) are evaluated in a slightly different manner. For the other - types of hooks, a ``regular expression'' is sufficient. But in - dealing with messages a finer grain of control is needed for matching - since for different purposes you want to match different criteria. + 1. There is one dedicated line on the screen used to query the user for + input, issue any command, query variables and display error and + informational messages. As for every type of user input, this requires + manual action leading to the need of input. - Mutt allows the use of the ``search pattern'' language for matching - messages in hook commands. This works in exactly the same way as it - would when _l_i_m_i_t_i_n_g or _s_e_a_r_c_h_i_n_g the mailbox, except that you are - restricted to those operators which match information mutt extracts - from the header of the message (i.e. from, to, cc, date, subject, - etc.). + 2. The automatized interface for interaction are the so called hooks. + Hooks specify actions the user wants to be performed at well-defined + situations: what to do when entering which folder, what to do when + displaying or replying to what kind of message, etc. These are + optional, i.e. a user doesn't need to specify them but can do so. - For example, if you wanted to set your return address based upon - sending mail to a specific address, you could do something like: + 1.5. Modularization - send-hook '~t ^me@cs\.hmc\.edu$' 'my_hdr From: Mutt User ' + Although mutt-ng has many functionality built-in, many features can be + delegated to external tools to increase flexibility: users can define + programs to filter a message through before displaying, users can use any + program they want for displaying a message, message types (such as PDF or + PostScript) for which mutt-ng doesn't have a built-in filter can be + rendered by arbitrary tools and so forth. Although mutt-ng has an alias + mechanism built-in, it features using external tools to query for nearly + every type of addresses from sources like LDAP, databases or just the list + of locally known users. - which would execute the given command when sending mail to - _m_e_@_c_s_._h_m_c_._e_d_u. + 1.6. Patterns - However, it is not required that you write the pattern to match using - the full searching language. You can still specify a simple _r_e_g_u_l_a_r - _e_x_p_r_e_s_s_i_o_n like the other hooks, in which case Mutt will translate - your pattern into the full language, using the translation specified - by the ``$default_hook'' variable. The pattern is translated at the - time the hook is declared, so the value of ``$default_hook'' that is - in effect at that time will be used. + Mutt-ng has a built-in pattern matching ``language'' which is as widely + used as possible to present a consistent interface to users. The same + ``pattern terms'' can be used for searching, scoring, message selection + and much more. - 44..55.. EExxtteerrnnaall AAddddrreessss QQuueerriieess +2. Screens and Menus - Mutt supports connecting to external directory databases such as LDAP, - ph/qi, bbdb, or NIS through a wrapper script which connects to mutt - using a simple interface. Using the ``$query_command'' variable, you - specify the wrapper command to use. For example: + 2.1. Index - set query_command = "mutt_ldap_query.pl '%s'" + The index is the screen that you usually see first when you start mutt-ng. + It gives an overview over your emails in the currently opened mailbox. By + default, this is your system mailbox. The information you see in the index + is a list of emails, each with its number on the left, its flags (new + email, important email, email that has been forwarded or replied to, + tagged email, ...), the date when email was sent, its sender, the email + size, and the subject. Additionally, the index also shows thread + hierarchies: when you reply to an email, and the other person replies + back, you can see the other's person email in a "sub-tree" below. This is + especially useful for personal email between a group of people or when + you've subscribed to mailing lists. + + 2.2. Pager + + The pager is responsible for showing the email content. On the top of the + pager you have an overview over the most important email headers like the + sender, the recipient, the subject, and much more information. How much + information you actually see depends on your configuration, which we'll + describe below. + + Below the headers, you see the email body which usually contains the + message. If the email contains any attachments, you will see more + information about them below the email body, or, if the attachments are + text files, you can view them directly in the pager. + + To give the user a good overview, it is possible to configure mutt-ng to + show different things in the pager with different colors. Virtually + everything that can be described with a regular expression can be colored, + e.g. URLs, email addresses or smileys. + + 2.3. File Browser + + The file browser is the interface to the local or remote file system. When + selecting a mailbox to open, the browser allows custom sorting of items, + limiting the items shown by a regular expression and a freely adjustable + format of what to display in which way. It also allows for easy navigation + through the file system when selecting file(s) to attach to a message, + select multiple files to attach and many more. + + 2.4. Sidebar + + The sidebar comes in handy to manage mails which are spread over different + folders. All folders users setup mutt-ng to watch for new mail will be + listed. The listing includes not only the name but also the number of + total messages, the number of new and flagged messages. Items with new + mail may be colored different from those with flagged mail, items may be + shortened or compress if they're they to long to be printed in full form + so that by abbreviated names, user still now what the name stands for. + + 2.5. Help + + The help screen is meant to offer a quick help to the user. It lists the + current configuration of key bindings and their associated commands + including a short description, and currently unbound functions that still + need to be associated with a key binding (or alternatively, they can be + called via the mutt-ng command prompt). + + 2.6. Compose Menu + + The compose menu features a split screen containing the information which + really matter before actually sending a message by mail or posting an + article to a newsgroup: who gets the message as what (recipient, + newsgroup, who gets what kind of copy). Additionally, users may set + security options like deciding whether to sign, encrypt or sign and + encrypt a message with/for what keys. + + Also, it's used to attach messages, news articles or files to a message, + to re-edit any attachment including the message itself. + + 2.7. Alias Menu + + The alias menu is used to help users finding the recipients of messages. + For users who need to contact many people, there's no need to remember + addresses or names completely because it allows for searching, too. The + alias mechanism and thus the alias menu also features grouping several + addresses by a shorter nickname, the actual alias, so that users don't + have to select each single recipient manually. + + 2.8. Attachment Menu + + As will be later discussed in detail, mutt-ng features a good and stable + MIME implementation, that is, is greatly supports sending and receiving + messages of arbitrary type. The attachment menu displays a message's + structure in detail: what content parts are attached to which parent part + (which gives a true tree structure), which type is of what type and what + size. Single parts may saved, deleted or modified to offer great and easy + access to message's internals. + + 2.9. Key Menu + + FIXME + +3. Moving Around in Menus + + Information is presented in menus, very similar to ELM. Here is a + tableshowing the common keys used to navigate menus in Mutt-ng. + + Table 2.1. Default Menu Movement Keys + + +------------------------------------------------------------------------+ + | Key | Function | Description | + |-------------+----------------+-----------------------------------------| + | j or Down | next-entry | move to the next entry | + |-------------+----------------+-----------------------------------------| + | k or Up | previous-entry | move to the previous entry | + |-------------+----------------+-----------------------------------------| + | z or PageDn | page-down | go to the next page | + |-------------+----------------+-----------------------------------------| + | Z or PageUp | page-up | go to the previous page | + |-------------+----------------+-----------------------------------------| + | = or Home | first-entry | jump to the first entry | + |-------------+----------------+-----------------------------------------| + | * or End | last-entry | jump to the last entry | + |-------------+----------------+-----------------------------------------| + | q | quit | exit the current menu | + |-------------+----------------+-----------------------------------------| + | ? | help | list all key bindings for the current | + | | | menu | + +------------------------------------------------------------------------+ + +4. Editing Input Fields + + Mutt-ng has a builtin line editor which is used as the primary way to + input textual data such as email addresses or filenames. The keys used to + move around while editing are very similar to those of Emacs. + + Table 2.2. Built-In Editor Functions + + +------------------------------------------------------------------------+ + | Key | Function | Description | + |----------------+-----------------+-------------------------------------| + | ^A or | bol | move to the start of the line | + |----------------+-----------------+-------------------------------------| + | ^B or | backward-char | move back one char | + |----------------+-----------------+-------------------------------------| + | Esc B | backward-word | move back one word | + |----------------+-----------------+-------------------------------------| + | ^D or | delete-char | delete the char under the cursor | + |----------------+-----------------+-------------------------------------| + | ^E or | eol | move to the end of the line | + |----------------+-----------------+-------------------------------------| + | ^F or | forward-char | move forward one char | + |----------------+-----------------+-------------------------------------| + | Esc F | forward-word | move forward one word | + |----------------+-----------------+-------------------------------------| + | | complete | complete filename or alias | + |----------------+-----------------+-------------------------------------| + | ^T | complete-query | complete address with query | + |----------------+-----------------+-------------------------------------| + | ^K | kill-eol | delete to the end of the line | + |----------------+-----------------+-------------------------------------| + | ESC d | kill-eow | delete to the end of the word | + |----------------+-----------------+-------------------------------------| + | ^W | kill-word | kill the word in front of the | + | | | cursor | + |----------------+-----------------+-------------------------------------| + | ^U | kill-line | delete entire line | + |----------------+-----------------+-------------------------------------| + | ^V | quote-char | quote the next typed key | + |----------------+-----------------+-------------------------------------| + | | history-up | recall previous string from history | + |----------------+-----------------+-------------------------------------| + | | history-down | recall next string from history | + |----------------+-----------------+-------------------------------------| + | | backspace | kill the char in front of the | + | | | cursor | + |----------------+-----------------+-------------------------------------| + | Esc u | upcase-word | convert word to upper case | + |----------------+-----------------+-------------------------------------| + | Esc l | downcase-word | convert word to lower case | + |----------------+-----------------+-------------------------------------| + | Esc c | capitalize-word | capitalize the word | + |----------------+-----------------+-------------------------------------| + | ^G | n/a | abort | + |----------------+-----------------+-------------------------------------| + | | n/a | finish editing | + +------------------------------------------------------------------------+ + + You can remap the editor functions using the bind command. For example, to + make the Delete key delete the character in front of the cursor rather + than under, you could use + + bind editor backspace + +5. Reading Mail - The Index and Pager + + Similar to many other mail clients, there are two modes in which mail + isread in Mutt-ng. The first is the index of messages in the mailbox, + which is called the ``index'' in Mutt-ng. The second mode is the display + of the message contents. This is called the ``pager.'' + + The next few sections describe the functions provided in each of these + modes. + + 5.1. The Message Index + + Table 2.3. Default Index Menu Bindings + + +-------------------------------------------------------------------+ + | Key | Function | Description | + |----------+----------+---------------------------------------------| + | c | | change to a different mailbox | + |----------+----------+---------------------------------------------| + | ESC c | | change to a folder in read-only mode | + |----------+----------+---------------------------------------------| + | C | | copy the current message to another mailbox | + |----------+----------+---------------------------------------------| + | ESC C | | decode a message and copy it to a folder | + |----------+----------+---------------------------------------------| + | ESC s | | decode a message and save it to a folder | + |----------+----------+---------------------------------------------| + | D | | delete messages matching a pattern | + |----------+----------+---------------------------------------------| + | d | | delete the current message | + |----------+----------+---------------------------------------------| + | F | | mark as important | + |----------+----------+---------------------------------------------| + | l | | show messages matching a pattern | + |----------+----------+---------------------------------------------| + | N | | mark message as new | + |----------+----------+---------------------------------------------| + | o | | change the current sort method | + |----------+----------+---------------------------------------------| + | O | | reverse sort the mailbox | + |----------+----------+---------------------------------------------| + | q | | save changes and exit | + |----------+----------+---------------------------------------------| + | s | | save-message | + |----------+----------+---------------------------------------------| + | T | | tag messages matching a pattern | + |----------+----------+---------------------------------------------| + | t | | toggle the tag on a message | + |----------+----------+---------------------------------------------| + | ESC t | | toggle tag on entire message thread | + |----------+----------+---------------------------------------------| + | U | | undelete messages matching a pattern | + |----------+----------+---------------------------------------------| + | u | | undelete-message | + |----------+----------+---------------------------------------------| + | v | | view-attachments | + |----------+----------+---------------------------------------------| + | x | | abort changes and exit | + |----------+----------+---------------------------------------------| + | | | display-message | + |----------+----------+---------------------------------------------| + | | | jump to the next new or unread message | + |----------+----------+---------------------------------------------| + | @ | | show the author's full e-mail address | + |----------+----------+---------------------------------------------| + | $ | | save changes to mailbox | + |----------+----------+---------------------------------------------| + | / | | search | + |----------+----------+---------------------------------------------| + | ESC / | | search-reverse | + |----------+----------+---------------------------------------------| + | ^L | | clear and redraw the screen | + |----------+----------+---------------------------------------------| + | ^T | | untag messages matching a pattern | + +-------------------------------------------------------------------+ - The wrapper script should accept the query on the command-line. It - should return a one line message, then each matching response on a - single line, each line containing a tab separated address then name - then some other optional information. On error, or if there are no - matching addresses, return a non-zero exit code and a one line error - message. + 5.1.1. Status Flags - An example multiple response output: - - Searching database ... 20 entries ... 3 matching: - me@cs.hmc.edu Michael Elkins mutt dude - blong@fiction.net Brandon Long mutt and more - roessler@guug.de Thomas Roessler mutt pgp - - There are two mechanisms for accessing the query function of mutt. - One is to do a query from the index menu using the query function - (default: Q). This will prompt for a query, then bring up the query - menu which will list the matching responses. From the query menu, you - can select addresses to create aliases, or to mail. You can tag - multiple messages to mail, start a new query, or have a new query - appended to the current responses. - - The other mechanism for accessing the query function is for address - completion, similar to the alias completion. In any prompt for - address entry, you can use the complete-query function (default: ^T) - to run a query based on the current address you have typed. Like - aliases, mutt will look for what you have typed back to the last space - or comma. If there is a single response for that query, mutt will - expand the address in place. If there are multiple responses, mutt - will activate the query menu. At the query menu, you can select one - or more addresses to be added to the prompt. - - 44..66.. MMaaiillbbooxx FFoorrmmaattss - - Mutt supports reading and writing of four different mailbox formats: - mbox, MMDF, MH and Maildir. The mailbox type is autodetected, so - there is no need to use a flag for different mailbox types. When - creating new mailboxes, Mutt uses the default specified with the - ``$mbox_type'' variable. - - mmbbooxx. This is the most widely used mailbox format for UNIX. All - messages are stored in a single file. Each message has a line of the - form: - - From me@cs.hmc.edu Fri, 11 Apr 1997 11:44:56 PST - - to denote the start of a new message (this is often referred to as the - ``From_'' line). - - MMMMDDFF. This is a variant of the _m_b_o_x format. Each message is - surrounded by lines containing ``^A^A^A^A'' (four control-A's). - - MMHH. A radical departure from _m_b_o_x and _M_M_D_F, a mailbox consists of a - directory and each message is stored in a separate file. The filename - indicates the message number (however, this is may not correspond to - the message number Mutt displays). Deleted messages are renamed with a - comma (,) prepended to the filename. NNoottee:: Mutt detects this type of - mailbox by looking for either .mh_sequences or .xmhcache (needed to - distinguish normal directories from MH mailboxes). - - MMaaiillddiirr. The newest of the mailbox formats, used by the Qmail MTA (a - replacement for sendmail). Similar to _M_H, except that it adds three - subdirectories of the mailbox: _t_m_p, _n_e_w and _c_u_r. Filenames for the - messages are chosen in such a way they are unique, even when two - programs are writing the mailbox over NFS, which means that no file - locking is needed. - 44..77.. MMaaiillbbooxx SShhoorrttccuuttss - - There are a number of built in shortcuts which refer to specific - mailboxes. These shortcuts can be used anywhere you are prompted for - a file or mailbox path. - - · ! -- refers to your ``$spoolfile'' (incoming) mailbox - - · > -- refers to your ``$mbox'' file - - · < -- refers to your ``$record'' file - - · - or !! -- refers to the file you've last visited - - · ~ -- refers to your home directory - - · = or + -- refers to your ``$folder'' directory - - · @_a_l_i_a_s -- refers to the ``default save folder'' as determined by - the address of the alias - - 44..88.. HHaannddlliinngg MMaaiilliinngg LLiissttss - - Mutt has a few configuration options that make dealing with large - amounts of mail easier. The first thing you must do is to let Mutt - know what addresses you consider to be mailing lists (technically this - does not have to be a mailing list, but that is what it is most often - used for), and what lists you are subscribed to. This is accomplished - through the use of the ``lists and subscribe'' commands in your - muttrc. - - Now that Mutt knows what your mailing lists are, it can do several - things, the first of which is the ability to show the name of a list - through which you received a message (i.e., of a subscribed list) in - the _i_n_d_e_x menu display. This is useful to distinguish between - personal and list mail in the same mailbox. In the ``$index_format'' - variable, the escape ``%L'' will return the string ``To '' when - ``list'' appears in the ``To'' field, and ``Cc '' when it - appears in the ``Cc'' field (otherwise it returns the name of the - author). - - Often times the ``To'' and ``Cc'' fields in mailing list messages tend - to get quite large. Most people do not bother to remove the author of - the message they are reply to from the list, resulting in two or more - copies being sent to that person. The ``list-reply'' function, which - by default is bound to ``L'' in the _i_n_d_e_x menu and _p_a_g_e_r, helps reduce - the clutter by only replying to the known mailing list addresses - instead of all recipients (except as specified by Mail-Followup-To, - see below). - - Mutt also supports the Mail-Followup-To header. When you send a - message to a list of recipients which includes one or several - subscribed mailing lists, and if the ``$followup_to'' option is set, - mutt will generate a Mail-Followup-To header which contains all the - recipients to whom you send this message, but not your address. This - indicates that group-replies or list-replies (also known as - ``followups'') to this message should only be sent to the original - recipients of the message, and not separately to you - you'll receive - your copy through one of the mailing lists you are subscribed to. - - Conversely, when group-replying or list-replying to a message which - has a Mail-Followup-To header, mutt will respect this header if the - ``$honor_followup_to'' configuration variable is set. Using list- - reply will in this case also make sure that the reply goes to the - mailing list, even if it's not specified in the list of recipients in - the Mail-Followup-To. - - Note that, when header editing is enabled, you can create a Mail- - Followup-To header manually. Mutt will only auto-generate this header - if it doesn't exist when you send the message. - - The other method some mailing list admins use is to generate a - ``Reply-To'' field which points back to the mailing list address - rather than the author of the message. This can create problems when - trying to reply directly to the author in private, since most mail - clients will automatically reply to the address given in the ``Reply- - To'' field. Mutt uses the ``$reply_to'' variable to help decide which - address to use. If set, you will be prompted as to whether or not you - would like to use the address given in the ``Reply-To'' field, or - reply directly to the address given in the ``From'' field. When - unset, the ``Reply-To'' field will be used when present. - - The ``X-Label:'' header field can be used to further identify mailing - lists or list subject matter (or just to annotate messages - individually). The ``$index_format'' variable's ``%y'' and ``%Y'' - escapes can be used to expand ``X-Label:'' fields in the index, and - Mutt's pattern-matcher can match regular expressions to ``X-Label:'' - fields with the `` y'' selector. ``X-Label:'' is not a standard - message header field, but it can easily be inserted by procmail and - other mail filtering agents. - - Lastly, Mutt has the ability to ``sort'' the mailbox into ``threads''. - A thread is a group of messages which all relate to the same subject. - This is usually organized into a tree-like structure where a message - and all of its replies are represented graphically. If you've ever - used a threaded news client, this is the same concept. It makes - dealing with large volume mailing lists easier because you can easily - delete uninteresting threads and quickly find topics of value. - - 44..99.. DDeelliivveerryy SSttaattuuss NNoottiiffiiccaattiioonn ((DDSSNN)) SSuuppppoorrtt - - RFC1894 defines a set of MIME content types for relaying information - about the status of electronic mail messages. These can be thought of - as ``return receipts.'' Berkeley sendmail 8.8.x currently has some - command line options in which the mail client can make requests as to - what type of status messages should be returned. - - To support this, there are two variables. ``$dsn_notify'' is used to - request receipts for different results (such as failed message, - message delivered, etc.). ``$dsn_return'' requests how much of your - message should be returned with the receipt (headers or full message). - Refer to the man page on sendmail for more details on DSN. - - 44..1100.. PPOOPP33 SSuuppppoorrtt ((OOPPTTIIOONNAALL)) - - If Mutt was compiled with POP3 support (by running the _c_o_n_f_i_g_u_r_e - script with the _-_-_e_n_a_b_l_e_-_p_o_p flag), it has the ability to work with - mailboxes located on a remote POP3 server and fetch mail for local - browsing. - - You can access the remote POP3 mailbox by selecting the folder - pop://popserver/. - - You can select an alternative port by specifying it with the server, - ie: pop://popserver:port/. - You can also specify different username for each folder, ie: - pop://username@popserver[:port]/. - - Polling for new mail is more expensive over POP3 than locally. For - this reason the frequency at which Mutt will check for mail remotely - can be controlled by the ``$pop_checkinterval'' variable, which - defaults to every 60 seconds. - - If Mutt was compiled with SSL support (by running the _c_o_n_f_i_g_u_r_e script - with the _-_-_w_i_t_h_-_s_s_l flag), connections to POP3 servers can be - encrypted. This naturally requires that the server supports SSL - encrypted connections. To access a folder with POP3/SSL, you should - use pops: prefix, ie: pops://[username@]popserver[:port]/. - - Another way to access your POP3 mail is the _f_e_t_c_h_-_m_a_i_l function - (default: G). It allows to connect to ``pop_host'', fetch all your - new mail and place it in the local ``spoolfile''. After this point, - Mutt runs exactly as if the mail had always been local. - - NNoottee:: If you only need to fetch all messages to local mailbox you - should consider using a specialized program, such as fetchmail - - 44..1111.. IIMMAAPP SSuuppppoorrtt ((OOPPTTIIOONNAALL)) - - If Mutt was compiled with IMAP support (by running the _c_o_n_f_i_g_u_r_e - script with the _-_-_e_n_a_b_l_e_-_i_m_a_p flag), it has the ability to work with - folders located on a remote IMAP server. - - You can access the remote inbox by selecting the folder - imap://imapserver/INBOX, where imapserver is the name of the IMAP - server and INBOX is the special name for your spool mailbox on the - IMAP server. If you want to access another mail folder at the IMAP - server, you should use imap://imapserver/path/to/folder where - path/to/folder is the path of the folder you want to access. - - You can select an alternative port by specifying it with the server, - ie: imap://imapserver:port/INBOX. - - You can also specify different username for each folder, ie: - imap://username@imapserver[:port]/INBOX. - - If Mutt was compiled with SSL support (by running the _c_o_n_f_i_g_u_r_e script - with the _-_-_w_i_t_h_-_s_s_l flag), connections to IMAP servers can be - encrypted. This naturally requires that the server supports SSL - encrypted connections. To access a folder with IMAP/SSL, you should - use imaps://[username@]imapserver[:port]/path/to/folder as your folder - path. - - Pine-compatible notation is also supported, ie - {[username@]imapserver[:port][/ssl]}path/to/folder - - Note that not all servers use / as the hierarchy separator. Mutt - should correctly notice which separator is being used by the server - and convert paths accordingly. - - When browsing folders on an IMAP server, you can toggle whether to - look at only the folders you are subscribed to, or all folders with - the _t_o_g_g_l_e_-_s_u_b_s_c_r_i_b_e_d command. See also the ``$imap_list_subscribed'' - variable. - - Polling for new mail on an IMAP server can cause noticeable delays. - So, you'll want to carefully tune the ``$mail_check'' and ``$timeout'' - variables. Personally I use - - set mail_check=90 - set timeout=15 - - with relatively good results over my slow modem line. - - Note that if you are using mbox as the mail store on UW servers prior - to v12.250, the server has been reported to disconnect a client if - another client selects the same folder. - - 44..1111..11.. TThhee FFoollddeerr BBrroowwsseerr - - As of version 1.2, mutt supports browsing mailboxes on an IMAP server. - This is mostly the same as the local file browser, with the following - differences: - - · In lieu of file permissions, mutt displays the string "IMAP", - possibly followed by the symbol "+", indicating that the entry - contains both messages and subfolders. On Cyrus-like servers - folders will often contain both messages and subfolders. - - · For the case where an entry can contain both messages and - subfolders, the selection key (bound to enter by default) will - choose to descend into the subfolder view. If you wish to view the - messages in that folder, you must use view-file instead (bound to - space by default). - - · You can delete mailboxes with the delete-mailbox command (bound to - d by default. You may also subscribe and unsubscribe to mailboxes - (normally these are bound to s and u, respectively). - - 44..1111..22.. AAuutthheennttiiccaattiioonn - - Mutt supports four authentication methods with IMAP servers: SASL, - GSSAPI, CRAM-MD5, and LOGIN (there is a patch by Grant Edwards to add - NTLM authentication for you poor exchange users out there, but it has - yet to be integrated into the main tree). There is also support for - the pseudo-protocol ANONYMOUS, which allows you to log in to a public - IMAP server without having an account. To use ANONYMOUS, simply make - your username blank or "anonymous". - - SASL is a special super-authenticator, which selects among several - protocols (including GSSAPI, CRAM-MD5, ANONYMOUS, and DIGEST-MD5) the - most secure method available on your host and the server. Using some - of these methods (including DIGEST-MD5 and possibly GSSAPI), your - entire session will be encrypted and invisible to those teeming - network snoops. It is the best option if you have it. To use it, you - must have the Cyrus SASL library installed on your system and compile - mutt with the _-_-_w_i_t_h_-_s_a_s_l flag. - - Mutt will try whichever methods are compiled in and available on the - server, in the following order: SASL, ANONYMOUS, GSSAPI, CRAM-MD5, - LOGIN. - - There are a few variables which control authentication: + 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: - · ``$imap_user'' - controls the username under which you request - authentication on the IMAP server, for all authenticators. This is - overridden by an explicit username in the mailbox path (ie by using - a mailbox name of the form {user@host}). - · ``$imap_pass'' - a password which you may preset, used by all - authentication methods where a password is needed. - - · ``$imap_authenticators'' - a colon-delimited list of IMAP - authentication methods to try, in the order you wish to try them. - If specified, this overrides mutt's default (attempt everything, in - the order listed above). - - 44..1122.. MMaannaaggiinngg mmuullttiippllee IIMMAAPP//PPOOPP aaccccoouunnttss ((OOPPTTIIOONNAALL)) - - If you happen to have accounts on multiple IMAP and/or POP servers, - you may find managing all the authentication settings inconvenient and - error-prone. The account-hook command may help. This hook works like - folder-hook but is invoked whenever you access a remote mailbox - (including inside the folder browser), not just when you open the - mailbox. - - Some examples: - - account-hook . 'unset imap_user; unset imap_pass; unset tunnel' - account-hook imap://host1/ 'set imap_user=me1 imap_pass=foo' - account-hook imap://host2/ 'set tunnel="ssh host2 /usr/libexec/imapd"' - - 44..1133.. SSttaarrtt aa WWWWWW BBrroowwsseerr oonn UURRLLss ((EEXXTTEERRNNAALL)) - - If a message contains URLs (_u_n_i_f_i_e_d _r_e_s_s_o_u_r_c_e _l_o_c_a_t_o_r = address in the - WWW space like _h_t_t_p_:_/_/_w_w_w_._m_u_t_t_._o_r_g_/), it is efficient to get a menu - with all the URLs and start a WWW browser on one of them. This - functionality is provided by the external urlview program which can be - retrieved at ftp://ftp.mutt.org/mutt/contrib/ and the configuration - commands: - - macro index \cb |urlview\n - macro pager \cb |urlview\n - - 55.. MMuutttt''ss MMIIMMEE SSuuppppoorrtt - - Quite a bit of effort has been made to make Mutt the premier text-mode - MIME MUA. Every effort has been made to provide the functionality - that the discerning MIME user requires, and the conformance to the - standards wherever possible. When configuring Mutt for MIME, there - are two extra types of configuration files which Mutt uses. One is - the mime.types file, which contains the mapping of file extensions to - IANA MIME types. The other is the mailcap file, which specifies the - external commands to use for handling specific MIME types. - - 55..11.. UUssiinngg MMIIMMEE iinn MMuutttt - - There are three areas/menus in Mutt which deal with MIME, they are the - pager (while viewing a message), the attachment menu and the compose - menu. - - 55..11..11.. VViieewwiinngg MMIIMMEE mmeessssaaggeess iinn tthhee ppaaggeerr - - When you select a message from the index and view it in the pager, - Mutt decodes the message to a text representation. Mutt internally - supports a number of MIME types, including text/plain, text/enriched, - message/rfc822, and message/news. In addition, the export controlled - version of Mutt recognizes a variety of PGP MIME types, including - PGP/MIME and application/pgp. - - Mutt will denote attachments with a couple lines describing them. - These lines are of the form: - - [-- Attachment #1: Description --] - [-- Type: text/plain, Encoding: 7bit, Size: 10000 --] - - Where the Description is the description or filename given for the - attachment, and the Encoding is one of 7bit/8bit/quoted-print­ - able/base64/binary. - - If Mutt cannot deal with a MIME type, it will display a message like: - - [-- image/gif is unsupported (use 'v' to view this part) --] - - 55..11..22.. TThhee AAttttaacchhmmeenntt MMeennuu - - The default binding for view-attachments is `v', which displays the - attachment menu for a message. The attachment menu displays a list of - the attachments in a message. From the attachment menu, you can save, - print, pipe, delete, and view attachments. You can apply these - operations to a group of attachments at once, by tagging the - attachments and by using the ``tag-prefix'' operator. You can also - reply to the current message from this menu, and only the current - attachment (or the attachments tagged) will be quoted in your reply. - You can view attachments as text, or view them using the mailcap - viewer definition. - - Finally, you can apply the usual message-related functions (like - ``resend-message'', and the reply and forward functions) to - attachments of type message/rfc822. - - See the help on the attachment menu for more information. - - 55..11..33.. TThhee CCoommppoossee MMeennuu - - The compose menu is the menu you see before you send a message. It - allows you to edit the recipient list, the subject, and other aspects - of your message. It also contains a list of the attachments of your - message, including the main body. From this menu, you can print, - copy, filter, pipe, edit, compose, review, and rename an attachment or - a list of tagged attachments. You can also modifying the attachment - information, notably the type, encoding and description. - - Attachments appear as follows: - - - 1 [text/plain, 7bit, 1K] /tmp/mutt-euler-8082-0 - 2 [applica/x-gunzip, base64, 422K] ~/src/mutt-0.85.tar.gz - - The '-' denotes that Mutt will delete the file after sending (or - postponing, or cancelling) the message. It can be toggled with the - toggle-unlink command (default: u). The next field is the MIME - content-type, and can be changed with the edit-type command (default: - ^T). The next field is the encoding for the attachment, which allows - a binary message to be encoded for transmission on 7bit links. It can - be changed with the edit-encoding command (default: ^E). The next - field is the size of the attachment, rounded to kilobytes or - megabytes. The next field is the filename, which can be changed with - the rename-file command (default: R). The final field is the - description of the attachment, and can be changed with the edit- - description command (default: d). - - 55..22.. MMIIMMEE TTyyppee ccoonnffiigguurraattiioonn wwiitthh mmiimmee..ttyyppeess - - When you add an attachment to your mail message, Mutt searches your - personal mime.types file at ${HOME}/.mime.types, and then the system - mime.types file at /usr/local/share/mutt/mime.types or /etc/mime.types - - The mime.types file consist of lines containing a MIME type and a - space separated list of extensions. For example: - - application/postscript ps eps - application/pgp pgp - audio/x-aiff aif aifc aiff - - A sample mime.types file comes with the Mutt distribution, and should - contain most of the MIME types you are likely to use. - - If Mutt can not determine the mime type by the extension of the file - you attach, it will look at the file. If the file is free of binary - information, Mutt will assume that the file is plain text, and mark it - as text/plain. If the file contains binary information, then Mutt - will mark it as application/octet-stream. You can change the MIME - type that Mutt assigns to an attachment by using the edit-type command - from the compose menu (default: ^T). The MIME type is actually a major - mime type followed by the sub-type, separated by a '/'. 6 major types: - application, text, image, video, audio, and model have been approved - after various internet discussions. Mutt recognises all of these if - the appropriate entry is found in the mime.types file. It also - recognises other major mime types, such as the chemical type that is - widely used in the molecular modelling community to pass molecular - data in various forms to various molecular viewers. Non-recognised - mime types should only be used if the recipient of the message is - likely to be expecting such attachments. - - 55..33.. MMIIMMEE VViieewweerr ccoonnffiigguurraattiioonn wwiitthh mmaaiillccaapp - - Mutt supports RFC 1524 MIME Configuration, in particular the Unix - specific format specified in Appendix A of RFC 1524. This file format - is commonly referred to as the mailcap format. Many MIME compliant - programs utilize the mailcap format, allowing you to specify handling - for all MIME types in one place for all programs. Programs known to - use this format include Netscape, XMosaic, lynx and metamail. - - In order to handle various MIME types that Mutt can not handle - internally, Mutt parses a series of external configuration files to - find an external handler. The default search string for these files - is a colon delimited list set to - - ${HOME}/.mailcap:/usr/local/share/mutt/mailcap:/etc/mailcap:/etc/mailcap:/usr/etc/mailcap:/usr/local/etc/mailcap - - where $HOME is your home directory. - - In particular, the metamail distribution will install a mailcap file, - usually as /usr/local/etc/mailcap, which contains some baseline - entries. - - 55..33..11.. TThhee BBaassiiccss ooff tthhee mmaaiillccaapp ffiillee - - A mailcap file consists of a series of lines which are comments, - blank, or definitions. - - A comment line consists of a # character followed by anything you - want. - - A blank line is blank. - - A definition line consists of a content type, a view command, and any - number of optional fields. Each field of a definition line is divided - by a semicolon ';' character. - - The content type is specified in the MIME standard type/subtype - method. For example, text/plain, text/html, image/gif, etc. In - addition, the mailcap format includes two formats for wildcards, one - using the special '*' subtype, the other is the implicit wild, where - you only include the major type. For example, image/*, or video, will - match all image types and video types, respectively. - - The view command is a Unix command for viewing the type specified. - There are two different types of commands supported. The default is to - send the body of the MIME message to the command on stdin. You can - change this behaviour by using %s as a parameter to your view command. - This will cause Mutt to save the body of the MIME message to a - temporary file, and then call the view command with the %s replaced by - the name of the temporary file. In both cases, Mutt will turn over the - terminal to the view program until the program quits, at which time - Mutt will remove the temporary file if it exists. - - So, in the simplest form, you can send a text/plain message to the - external pager more on stdin: - - text/plain; more - - Or, you could send the message as a file: - - text/plain; more %s - - Perhaps you would like to use lynx to interactively view a text/html - message: - - text/html; lynx %s - - In this case, lynx does not support viewing a file from stdin, so you - must use the %s syntax. NNoottee:: _S_o_m_e _o_l_d_e_r _v_e_r_s_i_o_n_s _o_f _l_y_n_x _c_o_n_t_a_i_n _a - _b_u_g _w_h_e_r_e _t_h_e_y _w_i_l_l _c_h_e_c_k _t_h_e _m_a_i_l_c_a_p _f_i_l_e _f_o_r _a _v_i_e_w_e_r _f_o_r _t_e_x_t_/_h_t_m_l_. - _T_h_e_y _w_i_l_l _f_i_n_d _t_h_e _l_i_n_e _w_h_i_c_h _c_a_l_l_s _l_y_n_x_, _a_n_d _r_u_n _i_t_. _T_h_i_s _c_a_u_s_e_s - _l_y_n_x _t_o _c_o_n_t_i_n_u_o_u_s_l_y _s_p_a_w_n _i_t_s_e_l_f _t_o _v_i_e_w _t_h_e _o_b_j_e_c_t_. - - On the other hand, maybe you don't want to use lynx interactively, you - just want to have it convert the text/html to text/plain, then you can - use: - - text/html; lynx -dump %s | more - - Perhaps you wish to use lynx to view text/html files, and a pager on - all other text formats, then you would use the following: - - text/html; lynx %s - text/*; more - - This is the simplest form of a mailcap file. - - 55..33..22.. SSeeccuurree uussee ooff mmaaiillccaapp - - The interpretion of shell meta-characters embedded in MIME parameters - can lead to security problems in general. Mutt tries to quote - parameters in expansion of %s syntaxes properly, and avoids risky - characters by substituting them, see the ``mailcap_sanitize'' - variable. - - Although mutt's procedures to invoke programs with mailcap seem to be - safe, there are other applications parsing mailcap, maybe taking less - care of it. Therefore you should pay attention to the following - rules: - - _K_e_e_p _t_h_e _%_-_e_x_p_a_n_d_o_s _a_w_a_y _f_r_o_m _s_h_e_l_l _q_u_o_t_i_n_g_. Don't quote them with - single or double quotes. Mutt does this for you, the right way, as - should any other program which interprets mailcap. Don't put them - into backtick expansions. Be highly careful with eval statements, and - avoid them if possible at all. Trying to fix broken behaviour with - quotes introduces new leaks - there is no alternative to correct - quoting in the first place. - - If you have to use the %-expandos' values in context where you need - quoting or backtick expansions, put that value into a shell variable - and reference the shell variable where necessary, as in the following - example (using $charset inside the backtick expansion is safe, since - it is not itself subject to any further expansion): - - text/test-mailcap-bug; cat %s; copiousoutput; test=charset=%{charset} \ - && test "`echo $charset | tr '[A-Z]' '[a-z]'`" != iso-8859-1 - - 55..33..33.. AAddvvaanncceedd mmaaiillccaapp UUssaaggee - - 55..33..33..11.. OOppttiioonnaall FFiieellddss - - In addition to the required content-type and view command fields, you - can add semi-colon ';' separated fields to set flags and other - options. Mutt recognizes the following optional fields: - - ccooppiioouussoouuttppuutt - This flag tells Mutt that the command passes possibly large - amounts of text on stdout. This causes Mutt to invoke a pager - (either the internal pager or the external pager defined by the - pager variable) on the output of the view command. Without this - flag, Mutt assumes that the command is interactive. One could - use this to replace the pipe to more in the lynx -dump example - in the Basic section: - - text/html; lynx -dump %s ; copiousoutput - - This will cause lynx to format the text/html output as text/plain - and Mutt will use your standard pager to display the results. - - nneeeeddsstteerrmmiinnaall - Mutt uses this flag when viewing attachments with ``autoview'', - in order to decide whether it should honor the setting of the - ``$wait_key'' variable or not. When an attachment is viewed - using an interactive program, and the corresponding mailcap - entry has a _n_e_e_d_s_t_e_r_m_i_n_a_l flag, Mutt will use ``$wait_key'' and - the exit status of the program to decide if it will ask you to - press a key after the external program has exited. In all other - situations it will not prompt you for a key. - - ccoommppoossee==<> - This flag specifies the command to use to create a new - attachment of a specific MIME type. Mutt supports this from the - compose menu. - - ccoommppoosseettyyppeedd==<> - This flag specifies the command to use to create a new - attachment of a specific MIME type. This command differs from - the compose command in that mutt will expect standard MIME - headers on the data. This can be used to specify parameters, - filename, description, etc. for a new attachment. Mutt - supports this from the compose menu. - - pprriinntt==<> - This flag specifies the command to use to print a specific MIME - type. Mutt supports this from the attachment and compose menus. - - eeddiitt==<> - This flag specifies the command to use to edit a specific MIME - type. Mutt supports this from the compose menu, and also uses - it to compose new attachments. Mutt will default to the defined - editor for text attachments. - - nnaammeetteemmppllaattee==<> - This field specifies the format for the file denoted by %s in - the command fields. Certain programs will require a certain - file extension, for instance, to correctly view a file. For - instance, lynx will only interpret a file as text/html if the - file ends in .html. So, you would specify lynx as a text/html - viewer with a line in the mailcap file like: - - text/html; lynx %s; nametemplate=%s.html - - tteesstt==<> - This field specifies a command to run to test whether this - mailcap entry should be used. The command is defined with the - command expansion rules defined in the next section. If the - command returns 0, then the test passed, and Mutt uses this - entry. If the command returns non-zero, then the test failed, - and Mutt continues searching for the right entry. NNoottee:: _t_h_e - _c_o_n_t_e_n_t_-_t_y_p_e _m_u_s_t _m_a_t_c_h _b_e_f_o_r_e _M_u_t_t _p_e_r_f_o_r_m_s _t_h_e _t_e_s_t_. For - example: - - text/html; netscape -remote 'openURL(%s)' ; test=RunningX - text/html; lynx %s - - In this example, Mutt will run the program RunningX which will - return 0 if the X Window manager is running, and non-zero if it - isn't. If RunningX returns 0, then Mutt will call netscape to dis­ - play the text/html object. If RunningX doesn't return 0, then Mutt - will go on to the next entry and use lynx to display the text/html - object. - - 55..33..33..22.. SSeeaarrcchh OOrrddeerr - - When searching for an entry in the mailcap file, Mutt will search for - the most useful entry for its purpose. For instance, if you are - attempting to print an image/gif, and you have the following entries - in your mailcap file, Mutt will search for an entry with the print - command: - - image/*; xv %s - image/gif; ; print= anytopnm %s | pnmtops | lpr; \ - nametemplate=%s.gif - - Mutt will skip the image/* entry and use the image/gif entry with the - print command. - - In addition, you can use this with ``Autoview'' to denote two commands - for viewing an attachment, one to be viewed automatically, the other - to be viewed interactively from the attachment menu. In addition, you - can then use the test feature to determine which viewer to use - interactively depending on your environment. - - text/html; netscape -remote 'openURL(%s)' ; test=RunningX - text/html; lynx %s; nametemplate=%s.html - text/html; lynx -dump %s; nametemplate=%s.html; copiousoutput - - For ``Autoview'', Mutt will choose the third entry because of the - copiousoutput tag. For interactive viewing, Mutt will run the program - RunningX to determine if it should use the first entry. If the pro­ - gram returns non-zero, Mutt will use the second entry for interactive - viewing. - - 55..33..33..33.. CCoommmmaanndd EExxppaannssiioonn - - The various commands defined in the mailcap files are passed to the - /bin/sh shell using the system() function. Before the command is - passed to /bin/sh -c, it is parsed to expand various special - parameters with information from Mutt. The keywords Mutt expands are: - - %%ss As seen in the basic mailcap section, this variable is expanded - to a filename specified by the calling program. This file - contains the body of the message to view/print/edit or where the - composing program should place the results of composition. In - addition, the use of this keyword causes Mutt to not pass the - body of the message to the view/print/edit program on stdin. - - %%tt Mutt will expand %t to the text representation of the content - type of the message in the same form as the first parameter of - the mailcap definition line, ie text/html or image/gif. - - %%{{<>}} - Mutt will expand this to the value of the specified parameter - from the Content-Type: line of the mail message. For instance, - if Your mail message contains: - - Content-Type: text/plain; charset=iso-8859-1 - - then Mutt will expand %{charset} to iso-8859-1. The default meta­ - mail mailcap file uses this feature to test the charset to spawn an - xterm using the right charset to view the message. + D - \\%% This will be replaced by a % + message is deleted (is marked for deletion) - Mutt does not currently support the %F and %n keywords specified in - RFC 1524. The main purpose of these parameters is for multipart mes­ - sages, which is handled internally by Mutt. - - 55..33..44.. EExxaammppllee mmaaiillccaapp ffiilleess + d - This mailcap file is fairly simple and standard: + message have attachments marked for deletion - ______________________________________________________________________ - # I'm always running X :) - video/*; xanim %s > /dev/null - image/*; xv %s > /dev/null + K - # I'm always running netscape (if my computer had more memory, maybe) - text/html; netscape -remote 'openURL(%s)' - ______________________________________________________________________ + contains a PGP public key - This mailcap file shows quite a number of examples: - - ______________________________________________________________________ - # Use xanim to view all videos Xanim produces a header on startup, - # send that to /dev/null so I don't see it - video/*; xanim %s > /dev/null + N - # Send html to a running netscape by remote - text/html; netscape -remote 'openURL(%s)'; test=RunningNetscape + message is new - # If I'm not running netscape but I am running X, start netscape on the - # object - text/html; netscape %s; test=RunningX + O - # Else use lynx to view it as text - text/html; lynx %s + message is old + + P + + message is PGP encrypted + + r + + message has been replied to - # This version would convert the text/html to text/plain - text/html; lynx -dump %s; copiousoutput + S + + message is signed, and the signature is succesfully verified + + s + + message is signed + + ! + + message is flagged + + * + + message is tagged + + Some of the status flags can be turned on or off using + + o set-flag (default: w) + + o clear-flag (default: W) + + Furthermore, the following flags reflect who the message is addressed to. + They can be customized with the $to_chars variable. + + + + + 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 - # I use enscript to print text in two columns to a page - text/*; more %s; print=enscript -2Gr %s + L - # Netscape adds a flag to tell itself to view jpegs internally - image/jpeg;xv %s; x-mozilla-flags=internal + message is sent to a subscribed mailing list - # Use xv to view images if I'm running X - # In addition, this uses the \ to extend the line and set my editor - # for images - image/*;xv %s; test=RunningX; \ - edit=xpaint %s + 5.2. The Pager - # Convert images to text using the netpbm tools - image/*; (anytopnm %s | pnmscale -xysize 80 46 | ppmtopgm | pgmtopbm | - pbmtoascii -1x2 ) 2>&1 ; copiousoutput - - # Send excel spreadsheets to my NT box - application/ms-excel; open.pl %s - ______________________________________________________________________ - - 55..44.. MMIIMMEE AAuuttoovviieeww + By default, Mutt-ng uses its builtin pager to display the body of + messages. The pager is very similar to the Unix program less though not + nearly as featureful. - In addition to explicitly telling Mutt to view an attachment with the - MIME viewer defined in the mailcap file, Mutt has support for - automatically viewing MIME attachments while in the pager. + Table 2.4. Default Pager Menu Bindings - To work, you must define a viewer in the mailcap file which uses the - copiousoutput option to denote that it is non-interactive. Usually, - you also use the entry to convert the attachment to a text - representation which you can view in the pager. + +------------------------------------------------------------------------+ + | Key | Function | Description | + |----------+----------+--------------------------------------------------| + | | | go down one line | + |----------+----------+--------------------------------------------------| + | | | display the next page (or next message if at the | + | | | end of a message) | + |----------+----------+--------------------------------------------------| + | - | | go back to the previous page | + |----------+----------+--------------------------------------------------| + | n | | search for next match | + |----------+----------+--------------------------------------------------| + | S | | skip beyond quoted text | + |----------+----------+--------------------------------------------------| + | T | | toggle display of quoted text | + |----------+----------+--------------------------------------------------| + | ? | | show key bindings | + |----------+----------+--------------------------------------------------| + | / | | search for a regular expression (pattern) | + |----------+----------+--------------------------------------------------| + | ESC / | | search backwards for a regular expression | + |----------+----------+--------------------------------------------------| + | \ | | toggle search pattern coloring | + |----------+----------+--------------------------------------------------| + | ^ | | jump to the top of the message | + +------------------------------------------------------------------------+ + + In addition, many of the functions from the index are available in the + pager, such as delete-message or copy-message (this is one advantage over + using an external pager to view messages). + + Also, the internal pager supports a couple other advanced features. For + one, it will accept and translate the ``standard'' nroff sequences forbold + and underline. These sequences are a series of either the letter, + backspace (^H), the letter again for bold or the letter, backspace, ``_'' + for denoting underline. Mutt-ng will attempt to display these in bold and + underline respectively if your terminal supports them. If not, you can use + the bold and underline color objects to specify a color or mono attribute + for them. + + Additionally, the internal pager supports the ANSI escape sequences for + character attributes. Mutt-ng translates them into the correct color and + character settings. The sequences Mutt-ng supports are: ESC [ + Ps;Ps;Ps;...;Ps m (see table below for possible values for Ps). + + Table 2.5. ANSI Escape Sequences + + +-------------------------------------------------+ + | Value | Attribute | + |-------+-----------------------------------------| + | 0 | All Attributes Off | + |-------+-----------------------------------------| + | 1 | Bold on | + |-------+-----------------------------------------| + | 4 | Underline on | + |-------+-----------------------------------------| + | 5 | Blink on | + |-------+-----------------------------------------| + | 7 | Reverse video on | + |-------+-----------------------------------------| + | 3x | Foreground color is x (see table below) | + |-------+-----------------------------------------| + | 4x | Background color is x (see table below) | + +-------------------------------------------------+ + + Table 2.6. ANSI Colors + + +------------------+ + | Number | Color | + |--------+---------| + | 0 | black | + |--------+---------| + | 1 | red | + |--------+---------| + | 2 | green | + |--------+---------| + | 3 | yellow | + |--------+---------| + | 4 | blue | + |--------+---------| + | 5 | magenta | + |--------+---------| + | 6 | cyan | + |--------+---------| + | 7 | white | + +------------------+ + + Mutt-ng uses these attributes for handling text/enriched messages, and + they can also be used by an external autoview script for highlighting + purposes. Note: If you change the colors for your display, for example by + changing the color associated with color2 for your xterm, then that color + will be used instead of green. + + 5.3. Threaded Mode + + When the mailbox is sorted by threads ,there are a few additional + functions available in the index and pager modes. + + Table 2.7. Default Thread Function Bindings + + +------------------------------------------------------------------------+ + | Key | Function | Description | + |-------+--------------------+-------------------------------------------| + | ^D | delete-thread | delete all messages in the current thread | + |-------+--------------------+-------------------------------------------| + | ^U | undelete-thread | undelete all messages in the current | + | | | thread | + |-------+--------------------+-------------------------------------------| + | ^N | next-thread | jump to the start of the next thread | + |-------+--------------------+-------------------------------------------| + | ^P | previous-thread | jump to the start of the previous thread | + |-------+--------------------+-------------------------------------------| + | ^R | read-thread | mark the current thread as read | + |-------+--------------------+-------------------------------------------| + | ESC d | delete-subthread | delete all messages in the current | + | | | subthread | + |-------+--------------------+-------------------------------------------| + | ESC u | undelete-subthread | undelete all messages in the current | + | | | subthread | + |-------+--------------------+-------------------------------------------| + | ESC n | next-subthread | jump to the start of the next subthread | + |-------+--------------------+-------------------------------------------| + | ESC p | previous-subthread | jump to the start of the previous | + | | | subthread | + |-------+--------------------+-------------------------------------------| + | ESC r | read-subthread | mark the current subthread as read | + |-------+--------------------+-------------------------------------------| + | ESC t | tag-thread | toggle the tag on the current thread | + |-------+--------------------+-------------------------------------------| + | ESC v | collapse-thread | toggle collapse for the current thread | + |-------+--------------------+-------------------------------------------| + | ESC V | collapse-all | toggle collapse for all threads | + |-------+--------------------+-------------------------------------------| + | P | parent-message | jump to parent message in thread | + +------------------------------------------------------------------------+ + + Note: Collapsing a thread displays only the first message in the thread + and hides the others. This is useful when threads contain so many messages + that you can only see a handful of threads onthe screen. See %M in + index-format . For example, you could use "%?M?(#%03M)&(%4l)?" in + index-format to optionally display the number of hidden messages if the + thread is collapsed. + + See also: strict-threads. + + 5.4. Miscellaneous Functions + + create-alias (default: a) + + Creates a new alias based upon the current message (or prompts for a new + one). Once editing is complete, an alias command is added to the file + specified by the alias-file variable for future use. Note: Specifying an + alias-file does not add the aliases specified there-in, you must also + source the file. + + check-traditional-pgp (default: ESC P) + + This function will search the current message for content signed or + encrypted with PGP the "traditional" way, that is, without proper MIME + tagging. Technically, this function will temporarily change the MIME + content types of the body parts containing PGP data; this is similar to + the edit-type function's effect. + + display-toggle-weed (default: h) + + Toggles the weeding of message header fields specified by ignore commands. + + edit (default: e) + + This command (available in the ``index'' and ``pager'') allows you to edit + the raw current message as it's present in the mail folder. After you have + finished editing, the changed message will be appended to the current + folder, and the original message will be marked for deletion. + + edit-type (default: ^E on the attachment menu, and in the pager and index + menus; ^T on the compose menu) + + This command is used to temporarily edit an attachment's content type to + fix, for instance, bogus character set parameters. When invoked from the + index or from the pager, you'll have the opportunity to edit the top-level + attachment's content type. On the attach-menu, you can change any + attachment's content type. These changes are not persistent, and get lost + upon changing folders. + + Note that this command is also available on the compose-menu .There, it's + used to fine-tune the properties of attachments you are going to send. + + enter-command (default: ``:'') + + This command is used to execute any command you would normally put in a + configuration file. A common use is to check the settings of variables, or + in conjunction with macro to change settings on the fly. + + extract-keys (default: ^K) + + This command extracts PGP public keys from the current or tagged + message(s) and adds them to your PGP public key ring. + + forget-passphrase (default: ^F) + + This command wipes the passphrase(s) from memory. It is useful, if you + misspelled the passphrase. + + list-reply (default: L) + + Reply to the current or tagged message(s) by extracting any addresses + which match the regular expressions given by the lists commands, but also + honor any Mail-Followup-To header(s) if the honor-followup-to + configuration variable is set. Using this when replying to messages posted + to mailing lists helps avoid duplicate copies being sent to the author of + the message you are replying to. + + pipe-message (default: |) + + Asks for an external Unix command and pipes the current or tagged + message(s) to it. The variables pipe-decode ,pipe-split, pipe-sep and + wait-key control the exact behavior of this function. + + resend-message (default: ESC e) + + With resend-message, mutt takes the current message as a template for a + new message. This function is best described as "recall from arbitrary + folders". It can conveniently be used to forward MIME messages while + preserving the original mail structure. Note that the amount of headers + included here depends on the value of the weed variable. + + This function is also available from the attachment menu. You can use this + to easily resend a message which was included with a bounce message as a + message/rfc822 body part. + + shell-escape (default: !) + + Asks for an external Unix command and executes it. The wait-key can be + used to control whether Mutt-ng will wait for a key to be pressed when the + command returns (presumably to let the user read the output of the + command), based on the return status of the named command. - You then use the auto_view muttrc command to list the content-types - that you wish to view automatically. + toggle-quoted (default: T) - For instance, if you set auto_view to: + The pager uses the quote-regexp variable to detect quoted text when + displaying the body of the message. This function toggles the displayof + the quoted material in the message. It is particularly useful when are + interested in just the response and there is a large amount of quoted text + in the way. - auto_view text/html application/x-gunzip application/postscript image/gif application/x-tar-gz + skip-quoted (default: S) - Mutt could use the following mailcap entries to automatically view - attachments of these types. + This function will go to the next line of non-quoted text which come after + a line of quoted text in the internal pager. + +6. Sending Mail + + The following bindings are available in the index for sending messages. + + Table 2.8. Default Mail Composition Bindings + + +--------------------------------------------------------+ + | Key | Function | Description | + |-------+-------------+----------------------------------| + | m | compose | compose a new message | + |-------+-------------+----------------------------------| + | r | reply | reply to sender | + |-------+-------------+----------------------------------| + | g | group-reply | reply to all recipients | + |-------+-------------+----------------------------------| + | L | list-reply | reply to mailing list address | + |-------+-------------+----------------------------------| + | f | forward | forward message | + |-------+-------------+----------------------------------| + | b | bounce | bounce (remail) message | + |-------+-------------+----------------------------------| + | ESC k | mail-key | mail a PGP public key to someone | + +--------------------------------------------------------+ + + Bouncing a message sends the message as is to the recipient you specify. + Forwarding a message allows you to add comments or modify the message you + are forwarding. These items are discussed in greater detail in the next + chapter forwarding-mail . + + 6.1. Composing new messages + + When you want to send an email using mutt-ng, simply press m on your + keyboard. Then, mutt-ng asks for the recipient via a prompt in the last + line: + + To: + + After you've finished entering the recipient(s), press return. If you want + to send an email to more than one recipient, separate the email addresses + using the comma ",". Mutt-ng then asks you for the email subject. Again, + press return after you've entered it. After that, mutt-ng got the most + important information from you, and starts up an editor where you can then + enter your email. + + The editor that is called is selected in the following way: you can e.g. + set it in the mutt-ng configuration: + + set editor = "vim +/^$/ -c ':set tw=72'" + set editor = "nano" + set editor = "emacs" + + If you don't set your preferred editor in your configuration, mutt-ng + first looks whether the environment variable $VISUAL is set, and if so, it + takes its value as editor command. Otherwise, it has a look at $EDITOR and + takes its value if it is set. If no editor command can be found, mutt-ng + simply assumes vi to be the default editor, since it's the most widespread + editor in the Unix world and it's pretty safe to assume that it is + installed and available. + + When you've finished entering your message, save it and quit your editor. + Mutt-ng will then present you with a summary screen, the compose menu. On + the top, you see a summary of the most important available key commands. + Below that, you see the sender, the recipient(s), Cc and/or Bcc + recipient(s), the subject, the reply-to address, and optionally + information where the sent email will be stored and whether it should be + digitally signed and/or encrypted. + + Below that, you see a list of "attachments". The mail you've just entered + before is also an attachment, but due to its special type (it's plain + text), it will be displayed as the normal message on the receiver's side. + + At this point, you can add more attachments, pressing a, you can edit the + recipient addresses, pressing t for the "To:" field, c for the "Cc:" + field, and b for the "Bcc: field. You can also edit the subject the + subject by simply pressing s or the email message that you've entered + before by pressing e. You will then again return to the editor. You can + even edit the sender, by pressing f, but this shall only be used with + caution. + + Alternatively, you can configure mutt-ng in a way that most of the above + settings can be edited using the editor. Therefore, you only need to add + the following to your configuration: + + set edit_headers + + Once you have finished editing the body of your mail message, you are + returned to the compose menu. The following options are available: + + Table 2.9. Default Compose Menu Bindings + + +------------------------------------------------------------------------+ + | Key | Function | Description | + |-------+-------------------+--------------------------------------------| + | a | attach-file | attach a file | + |-------+-------------------+--------------------------------------------| + | A | attach-message | attach message(s) to the message | + |-------+-------------------+--------------------------------------------| + | ESC k | attach-key | attach a PGP public key | + |-------+-------------------+--------------------------------------------| + | d | edit-description | edit description on attachment | + |-------+-------------------+--------------------------------------------| + | D | detach-file | detach a file | + |-------+-------------------+--------------------------------------------| + | t | edit-to | edit the To field | + |-------+-------------------+--------------------------------------------| + | ESC f | edit-from | edit the From field | + |-------+-------------------+--------------------------------------------| + | r | edit-reply-to | edit the Reply-To field | + |-------+-------------------+--------------------------------------------| + | c | edit-cc | edit the Cc field | + |-------+-------------------+--------------------------------------------| + | b | edit-bcc | edit the Bcc field | + |-------+-------------------+--------------------------------------------| + | y | send-message | send the message | + |-------+-------------------+--------------------------------------------| + | s | edit-subject | edit the Subject | + |-------+-------------------+--------------------------------------------| + | S | smime-menu | select S/MIME options | + |-------+-------------------+--------------------------------------------| + | f | edit-fcc | specify an ``Fcc'' mailbox | + |-------+-------------------+--------------------------------------------| + | p | pgp-menu | select PGP options | + |-------+-------------------+--------------------------------------------| + | P | postpone-message | postpone this message until later | + |-------+-------------------+--------------------------------------------| + | q | quit | quit (abort) sending the message | + |-------+-------------------+--------------------------------------------| + | w | write-fcc | write the message to a folder | + |-------+-------------------+--------------------------------------------| + | i | ispell | check spelling (if available on your | + | | | system) | + |-------+-------------------+--------------------------------------------| + | ^F | forget-passphrase | wipe passphrase(s) from memory | + +------------------------------------------------------------------------+ + + Note: The attach-message function will prompt you for a folder to attach + messages from. You can now tag messages in that folder and theywill be + attached to the message you are sending. Note that certainoperations like + composing a new mail, replying, forwarding, etc. are not permitted when + you are in that folder. The %r in status-format will change to a 'A' to + indicate that you are in attach-message mode. + + 6.2. Replying + + 6.2.1. Simple Replies + + When you want to reply to an email message, select it in the index menu + and then press r. Mutt-ng's behaviour is then similar to the behaviour + when you compose a message: first, you will be asked for the recipient, + then for the subject, and then, mutt-ng will start the editor with the + quote attribution and the quoted message. This can e.g. look like the + example below. + + On Mon, Mar 07, 2005 at 05:02:12PM +0100, Michael Svensson wrote: + > Bill, can you please send last month's progress report to Mr. + > Morgan? We also urgently need the cost estimation for the new + > production server that we want to set up before our customer's + > project will go live. + + You can start editing the email message. It is strongly recommended to put + your answer below the quoted text and to only quote what is really + necessary and that you refer to. Putting your answer on top of the quoted + message, is, although very widespread, very often not considered to be a + polite way to answer emails. + + The quote attribution is configurable, by default it is set to + + set attribution = "On %d, %n wrote:" + + It can also be set to something more compact, e.g. + + set attribution = "attribution="* %n <%a> [%(%y-%m-%d %H:%M)]:" + + The example above results in the following attribution: + + * Michael Svensson [05-03-06 17:02]: + > Bill, can you please send last month's progress report to Mr. + > Morgan? We also urgently need the cost estimation for the new + > production server that we want to set up before our customer's + > project will go live. + + Generally, try to keep your attribution short yet information-rich. It is + not the right place for witty quotes, long "attribution" novels or + anything like that: the right place for such things is - if at all - the + email signature at the very bottom of the message. + + When you're done with writing your message, save and quit the editor. As + before, you will return to the compose menu, which is used in the same way + as before. + + 6.2.2. Group Replies + + In the situation where a group of people uses email as a discussion, most + of the emails will have one or more recipients, and probably several "Cc:" + recipients. The group reply functionalityensures that when you press g + instead of r to do a reply, each and every recipient that is contained in + the original message will receive a copy of the message, either as normal + recipient or as "Cc:" recipient. + + 6.2.3. List Replies + + When you use mailing lists, it's generally better to send your reply to a + message only to the list instead of the list and the original author. To + make this easy to use, mutt-ng features list replies. + + To do a list reply, simply press L. If the email contains a + Mail-Followup-To: header, its value will be used as reply address. + Otherwise, mutt-ng searches through all mail addresses in the original + message and tries to match them a list of regular expressions which can be + specified using the lists command. If any of the regular expression + matches, a mailing list address has been found, and it will be used as + reply address. + + lists linuxevent@luga\.at vuln-dev@ mutt-ng-users@ + + Nowadays, most mailing list software like GNU Mailman adds a + Mail-Followup-To: header to their emails anyway, so setting lists is + hardly ever necessary in practice. + + 6.3. Editing the message header + + When editing the header of your outgoing message, there are a couple of + special features available. + + If you specify Fcc: filename Mutt-ng will pick up filename just as if you + had used the edit-fcc function in the compose menu. + + You can also attach files to your message by specifying Attach: filename [ + description ] where filename is the file to attach and description is an + optional string to use as the description of the attached file. + + When replying to messages, if you remove the In-Reply-To: field from the + header field, Mutt-ng will not generate a References: field, which allows + you to create a new message thread. + + Also see edit-headers. + + 6.4. Using Mutt-ng with PGP + + If you want to use PGP, you can specify + + Pgp: [ E | S | S ] + + ``E'' encrypts, ``S'' signs and ``S'' signs with the given key, + setting pgp-sign-as permanently. + + If you have told mutt to PGP encrypt a message, it will guide you through + a key selection process when you try to send the message. Mutt-ng will not + ask you any questions about keys which have a certified user ID matching + one of the message recipients' mail addresses. However, there may be + situations in which there are several keys, weakly certified user ID + fields, or where no matching keys can be found. + + In these cases, you are dropped into a menu with a list of keys from which + you can select one. When you quit this menu, or mutt can't find any + matching keys, you are prompted for a user ID. You can, as usually, abort + this prompt using ^G. When you do so, mutt will return to the compose + screen. - text/html; lynx -dump %s; copiousoutput; nametemplate=%s.html - image/*; anytopnm %s | pnmscale -xsize 80 -ysize 50 | ppmtopgm | pgmtopbm | pbmtoascii ; copiousoutput - application/x-gunzip; gzcat; copiousoutput - application/x-tar-gz; gunzip -c %s | tar -tf - ; copiousoutput - application/postscript; ps2ascii %s; copiousoutput + Once you have successfully finished the key selection, the message will be + encrypted using the selected public keys, and sent out. - ``unauto_view'' can be used to remove previous entries from the - autoview list. This can be used with message-hook to autoview - messages based on size, etc. ``unauto_view *'' will remove all - previous entries. + Most fields of the entries in the key selection menu (see also + pgp-entry-format ) have obvious meanings. But some explanations on the + capabilities, flags, and validity fields are in order. + + The flags sequence (%f) will expand to one of the following flags: + + Table 2.10. PGP Key Menu Flags + + +-----------------------------------------------------------+ + | Flag | Description | + |------+----------------------------------------------------| + | R | The key has been revoked and can't be used. | + |------+----------------------------------------------------| + | X | The key is expired and can't be used. | + |------+----------------------------------------------------| + | d | You have marked the key as disabled. | + |------+----------------------------------------------------| + | c | There are unknown critical self-signature packets. | + +-----------------------------------------------------------+ + + The capabilities field (%c) expands to a two-character + sequencerepresenting a key's capabilities. The first character gives the + key's encryption capabilities: A minus sign (- )means that the key cannot + be used for encryption. A dot (. )means that it's marked as a signature + key in one of the user IDs, but may also be used for encryption. The + letter e indicates that this key can be used for encryption. + + The second character indicates the key's signing capabilities. Once again, + a ``-'' implies ``not for signing'', ``.'' implies that the key is marked + as an encryption key in one of the user-ids, and ``s'' denotes a key which + can be used for signing. + + Finally, the validity field (%t) indicates how well-certified a user-id + is. A question mark (?) indicates undefined validity, a minus character + (-) marks an untrusted association, a space character means a partially + trusted association, and a plus character (+ ) indicates complete + validity. + + 6.5. Sending anonymous messages via mixmaster + + You may also have configured mutt to co-operate with Mixmaster, an + anonymous remailer. Mixmaster permits you to send your messages + anonymously using a chain of remailers. Mixmaster support in mutt is for + mixmaster version 2.04 (beta 45 appears to be the latest) and 2.03. It + does not support earlier versions or the later so-called version 3 betas, + of which the latest appears to be called 2.9b23. - 55..55.. MMIIMMEE MMuullttiippaarrtt//AAlltteerrnnaattiivvee + To use it, you'll have to obey certain restrictions. Most important, you + cannot use the Cc and Bcc headers. To tell Mutt-ng to use mixmaster, you + have to select a remailer chain, using the mix function on the compose + menu. - Mutt has some heuristics for determining which attachment of a - multipart/alternative type to display. First, mutt will check the - alternative_order list to determine if one of the available types is - preferred. The alternative_order list consists of a number of - mimetypes in order, including support for implicit and explicit - wildcards, for example: + The chain selection screen is divided into two parts. In the (larger) + upper part, you get a list of remailers you may use. In the lower part, + you see the currently selected chain of remailers. - alternative_order text/enriched text/plain text application/postscript image/* + You can navigate in the chain using the chain-prev and chain-next + functions, which are by default bound to the left and right arrows and to + the h and l keys (think vi keyboard bindings). To insert a remailer at the + current chain position, use the insert function. To append a remailer + behind the current chain position, use select-entry or append . You can + also delete entries from the chain, using the corresponding function. + Finally, to abandon your changes, leave the menu, or accept them pressing + (by default) the Return key. - Next, mutt will check if any of the types have a defined - ``auto_view'', and use that. Failing that, Mutt will look for any - text type. As a last attempt, mutt will look for any type it knows - how to handle. + Note that different remailers do have different capabilities, indicated in + the %c entry of the remailer menu lines (see mix-entry-format). Most + important is the ``middleman'' capability, indicated by a capital ``M'': + This means that the remailer in question cannot be used as the final + element of a chain, but will only forward messages to other mixmaster + remailers. For details on the other capabilities, please have a look at + the mixmaster documentation. - To remove a MIME type from the alternative_order list, use the - unalternative_order command. +7. Forwarding and Bouncing Mail - 55..66.. MMIIMMEE LLooookkuupp + Often, it is necessary to forward mails to other people. Therefore, + mutt-ng supports forwarding messages in two different ways. - Mutt's mime_lookup list specifies a list of mime-types that should not - be treated according to their mailcap entry. This option is designed - to deal with binary types such as application/octet-stream. When an - attachment's mime-type is listed in mime_lookup, then the extension of - the filename will be compared to the list of extensions in the - mime.types file. The mime-type associated with this extension will - then be used to process the attachment according to the rules in the - mailcap file and according to any other configuration options (such as - auto_view) specified. Common usage would be: + The first one is regular forwarding, as you probably know it from other + mail clients. You simply press f, enter the recipient email address, the + subject of the forwarded email, and then you can edit the message to be + forwarded in the editor. The forwarded message is separated from the rest + of the message via the two following markers: - mime-lookup application/octet-stream application/X-Lotus-Manuscript + ----- Forwarded message from Lucas User ----- - In addition, the unmime_lookup command may be used to disable this - feature for any particular mime-type if it had been set, for example, - in a global muttrc. + From: Lucas User + Date: Thu, 02 Dec 2004 03:08:34 +0100 + To: Michael Random + Subject: Re: blackmail - 66.. RReeffeerreennccee + Pay me EUR 50,000.- cash or your favorite stuffed animal will die + a horrible death. - 66..11.. CCoommmmaanndd lliinnee ooppttiioonnss + ----- End forwarded message ----- - Running mutt with no arguments will make Mutt attempt to read your - spool mailbox. However, it is possible to read other mailboxes and to - send messages from the command line as well. + When you're done with editing the mail, save and quit the editor, and you + will return to the compose menu, the same menu you also encounter when + composing or replying to mails. - -A expand an alias - -a attach a file to a message - -b specify a blind carbon-copy (BCC) address - -c specify a carbon-copy (Cc) address - -e specify a config command to be run after initilization files are read - -f specify a mailbox to load - -F specify an alternate file to read initialization commands - -h print help on command line options - -H specify a draft file from which to read a header and body - -i specify a file to include in a message composition - -m specify a default mailbox type - -n do not read the system Muttrc - -p recall a postponed message - -Q query a configuration variable - -R open mailbox in read-only mode - -s specify a subject (enclose in quotes if it contains spaces) - -v show version number and compile-time definitions - -x simulate the mailx(1) compose mode - -y show a menu containing the files specified by the mailboxes command - -z exit immediately if there are no messages in the mailbox - -Z open the first folder with new message,exit immediately if none + The second mode of forwarding emails with mutt-ng is the so-called + bouncing: when you bounce an email to another address, it will be sent in + practically the same format you send it (except for headers that are + created during transporting the message). To bounce a message, press b and + enter the recipient email address. By default, you are then asked whether + you really want to bounce the message to the specified recipient. If you + answer with yes, the message will then be bounced. - To read messages in a mailbox + To the recipient, the bounced email will look as if he got it like a + regular email where he was Bcc: recipient. The only possibility to find + out whether it was a bounced email is to carefully study the email headers + and to find out which host really sent the email. - mutt [ -nz ] [ -F _m_u_t_t_r_c ] [ -m _t_y_p_e ] [ -f _m_a_i_l_b_o_x ] +8. Postponing Mail - To compose a new message + At times it is desirable to delay sending a message that you have already + begun to compose. When the postpone-message function is used in the + compose menu, the body of your message and attachments are stored in the + mailbox specified by the postponed variable. This means that you can + recall the message even if you exit Mutt-ng and then restart it at a later + time. - mutt [ -n ] [ -F _m_u_t_t_r_c ] [ -a _f_i_l_e ] [ -c _a_d_d_r_e_s_s ] [ -i _f_i_l_e_n_a_m_e ] [ - -s _s_u_b_j_e_c_t ] _a_d_d_r_e_s_s [ _a_d_d_r_e_s_s ... ] + Once a message is postponed, there are several ways to resume it. From the + command line you can use the ``-p'' option, or if you compose a new + message from the index or pager you will be prompted if postponed messages + exist. If multiple messages are currently postponed, the postponed menu + will pop up and you can select which message you would like to resume. - Mutt also supports a ``batch'' mode to send prepared messages. Simply - redirect input from the file you wish to send. For example, + Note: If you postpone a reply to a message, the reply setting of the + message is only updated when you actually finish the message and send it. + Also, you must be in the same folder with the message you replied to for + the status of the message to be updated. - mutt -s "data set for run #2" professor@bigschool.edu < ~/run2.dat + See also the postpone quad-option. - This command will send a message to ``professor@bigschool.edu'' with a - subject of ``data set for run #2''. In the body of the message will - be the contents of the file ``~/run2.dat''. +Chapter 3. Configuration - 66..22.. CCoonnffiigguurraattiioonn CCoommmmaannddss + Table of Contents - The following are the commands understood by mutt. + 1. Locations of Configuration Files - · ``account-hook'' _p_a_t_t_e_r_n _c_o_m_m_a_n_d + 2. Basic Syntax of Initialization Files - · ``alias'' _k_e_y _a_d_d_r_e_s_s [ , _a_d_d_r_e_s_s, ... ] + 3. Expansion within variables - · ``unalias'' [ * | _k_e_y ... ] + 3.1. Commands' Output - · ``alternates'' _r_e_g_e_x_p [ _r_e_g_e_x_p ... ] + 3.2. Environment Variables - · ``unalternates'' [ * | _r_e_g_e_x_p ... ] + 3.3. Configuration Variables - · ``alternative_order'' _m_i_m_e_t_y_p_e [ _m_i_m_e_t_y_p_e ... ] + 3.4. Self-Defined Variables - · ``unalternative_order'' _m_i_m_e_t_y_p_e [ _m_i_m_e_t_y_p_e ... ] + 3.5. Pre-Defined Variables - · ``auto_view'' _m_i_m_e_t_y_p_e [ _m_i_m_e_t_y_p_e ... ] + 3.6. Type Conversions - · ``unauto_view'' _m_i_m_e_t_y_p_e [ _m_i_m_e_t_y_p_e ... ] + 4. Defining/Using aliases - · ``bind'' _m_a_p _k_e_y _f_u_n_c_t_i_o_n + 5. Changing the default key bindings - · ``charset-hook'' _a_l_i_a_s _c_h_a_r_s_e_t + 6. Defining aliases for character sets - · ``color'' _o_b_j_e_c_t _f_o_r_e_g_r_o_u_n_d _b_a_c_k_g_r_o_u_n_d [ _r_e_g_e_x_p ] + 7. Setting variables based upon mailbox - · ``uncolor'' _i_n_d_e_x _p_a_t_t_e_r_n [ _p_a_t_t_e_r_n ... ] + 8. Keyboard macros - · ``exec'' _f_u_n_c_t_i_o_n [ _f_u_n_c_t_i_o_n ... ] + 9. Using color and mono video attributes - · ``fcc-hook'' _p_a_t_t_e_r_n _m_a_i_l_b_o_x + 10. Ignoring (weeding) unwanted message headers - · ``fcc-save-hook'' _p_a_t_t_e_r_n _m_a_i_l_b_o_x + 11. Alternative addresses - · ``folder-hook'' _p_a_t_t_e_r_n _c_o_m_m_a_n_d + 12. Format = Flowed - · ``hdr_order'' _h_e_a_d_e_r [ _h_e_a_d_e_r ... ] + 12.1. Introduction - · ``unhdr_order'' _h_e_a_d_e_r [ _h_e_a_d_e_r ... ] + 12.2. Receiving: Display Setup - · ``iconv-hook'' _c_h_a_r_s_e_t _l_o_c_a_l_-_c_h_a_r_s_e_t + 12.3. Sending - · ``ignore'' _p_a_t_t_e_r_n [ _p_a_t_t_e_r_n ... ] + 12.4. Additional Notes - · ``unignore'' _p_a_t_t_e_r_n [ _p_a_t_t_e_r_n ... ] + 13. Mailing lists - · ``lists'' _a_d_d_r_e_s_s [ _a_d_d_r_e_s_s ... ] + 14. Using Multiple spool mailboxes - · ``unlists'' _a_d_d_r_e_s_s [ _a_d_d_r_e_s_s ... ] + 15. Defining mailboxes which receive mail - · ``macro'' _m_e_n_u _k_e_y _s_e_q_u_e_n_c_e [ _d_e_s_c_r_i_p_t_i_o_n ] + 16. User defined headers - · ``mailboxes'' _f_i_l_e_n_a_m_e [ _f_i_l_e_n_a_m_e ... ] + 17. Defining the order of headers when viewing messages - · ``mbox-hook'' _p_a_t_t_e_r_n _m_a_i_l_b_o_x + 18. Specify default save filename - · ``message-hook'' _p_a_t_t_e_r_n _c_o_m_m_a_n_d + 19. Specify default Fcc: mailbox when composing - · ``mime_lookup'' _m_i_m_e_t_y_p_e [ _m_i_m_e_t_y_p_e ... ] + 20. Specify default save filename and default Fcc: mailbox at once - · ``unmime_lookup'' _m_i_m_e_t_y_p_e [ _m_i_m_e_t_y_p_e ... ] + 21. Change settings based upon message recipients - · ``mono'' _o_b_j_e_c_t _a_t_t_r_i_b_u_t_e [ _r_e_g_e_x_p ] + 22. Change settings before formatting a message - · ``unmono'' _i_n_d_e_x _p_a_t_t_e_r_n [ _p_a_t_t_e_r_n ... ] + 23. Choosing the cryptographic key of the recipient - · ``my_hdr'' _s_t_r_i_n_g + 24. Adding key sequences to the keyboard buffer - · ``unmy_hdr'' _f_i_e_l_d [ _f_i_e_l_d ... ] + 25. Executing functions - · ``crypt-hook'' _p_a_t_t_e_r_n _k_e_y_-_i_d + 26. Message Scoring - · ``push'' _s_t_r_i_n_g + 27. Spam detection - · ``reset'' _v_a_r_i_a_b_l_e [_v_a_r_i_a_b_l_e ... ] + 28. Setting variables - · ``save-hook'' _r_e_g_e_x_p _f_i_l_e_n_a_m_e + 29. Reading initialization commands from another file - · ``score'' _p_a_t_t_e_r_n _v_a_l_u_e + 30. Removing hooks - · ``unscore'' _p_a_t_t_e_r_n [ _p_a_t_t_e_r_n ... ] + 31. Sharing Setups - · ``send-hook'' _r_e_g_e_x_p _c_o_m_m_a_n_d + 31.1. Character Sets - · ``set'' [no|inv]_v_a_r_i_a_b_l_e[=_v_a_l_u_e] [ _v_a_r_i_a_b_l_e ... ] + 31.2. Modularization - · ``unset'' _v_a_r_i_a_b_l_e [_v_a_r_i_a_b_l_e ... ] + 31.3. Conditional parts - · ``source'' _f_i_l_e_n_a_m_e + 32. Obsolete Variables - · ``subscribe'' _a_d_d_r_e_s_s [ _a_d_d_r_e_s_s ... ] +1. Locations of Configuration Files - · ``unsubscribe'' _a_d_d_r_e_s_s [ _a_d_d_r_e_s_s ... ] + While the default configuration (or ``preferences'') make Mutt-ng usable + right out of the box, it is often desirable to tailor Mutt-ng to suit your + own tastes. When Mutt-ng is first invoked, it will attempt to read the + ``system'' configuration file (defaults set by your local system + administrator), unless the ``-n'' commandline option is specified. This + file is typically /usr/local/share/muttng/Muttngrc or /etc/Muttngrc , + Mutt-ng users will find this file in /usr/local/share/muttng/Muttrc or + /etc/Muttngrc. Mutt will next look for a file named .muttrc in your home + directory, Mutt-ng will look for .muttngrc. If this file does not exist + and your home directory has a subdirectory named .mutt , mutt try to load + a file named .muttng/muttngrc. - · ``toggle'' _v_a_r_i_a_b_l_e [_v_a_r_i_a_b_l_e ... ] + .muttrc (or .muttngrc for Mutt-ng) is the file where you will usually + place your commands to configure Mutt-ng. - · ``unhook'' _h_o_o_k_-_t_y_p_e +2. Basic Syntax of Initialization Files - 66..33.. CCoonnffiigguurraattiioonn vvaarriiaabblleess + An initialization file consists of a series of commands .Each line of the + file may contain one or more commands. When multiple commands are used, + they must be separated by a semicolon (;). - 66..33..11.. aabboorrtt__nnoossuubbjjeecctt + set realname='Mutt-ng user' ; ignore x- - Type: quadoption - Default: ask-yes + The hash mark, or pound sign (``#''), is used as a ``comment'' character. + You can use it to annotate your initialization file. All text after the + comment character to the end of the line is ignored. For example, - If set to _y_e_s, when composing messages and no subject is given at the - subject prompt, composition will be aborted. If set to _n_o, composing - messages with no subject given at the subject prompt will never be - aborted. + my_hdr X-Disclaimer: Why are you listening to me? # This is a comment - 66..33..22.. aabboorrtt__uunnmmooddiiffiieedd + Single quotes (') and double quotes (") can be used to quote strings which + contain spaces or other special characters. The difference between the two + types of quotes is similar to that of many popular shell programs, namely + that a single quote is used to specify a literal string (one that is not + interpreted for shell variables or quoting with a backslash [see next + paragraph]), while double quotes indicate a string for which should be + evaluated. For example, backtics are evaluated inside of double quotes, + but not for single quotes. - Type: quadoption - Default: yes + \ quotes the next character, just as in shells such as bash and zsh. For + example, if want to put quotes ``"'' inside of a string, you can use ``\'' + to force the next character to be a literal instead of interpreted + character. - If set to _y_e_s, composition will automatically abort after editing the - message body if no changes are made to the file (this check only - happens after the _f_i_r_s_t edit of the file). When set to _n_o, - composition will never be aborted. + set realname="Michael \"MuttDude\" Elkins" - 66..33..33.. aalliiaass__ffiillee + ``\\'' means to insert a literal ``\'' into the line. ``\n'' and ``\r'' + have their usual C meanings of linefeed and carriage-return, respectively. - Type: path - Default: "~/.muttrc" + A \ at the end of a line can be used to split commands over multiple + lines, provided that the split points don't appear in the middle of + command names. - The default file in which to save aliases created by the ````create- - alias'''' function. + Please note that, unlike the various shells, mutt-ng interprets a ``\'' at + the end of a line also in comments. This allows you to disable a command + split over multiple lines with only one ``#''. - NNoottee:: Mutt will not automatically source this file; you must - explicitly use the ````source'''' command for it to be executed. + # folder-hook . \ + set realname="Michael \"MuttDude\" Elkins" - 66..33..44.. aalliiaass__ffoorrmmaatt + When testing your config files, beware the following caveat. The backslash + at the end of the commented line extends the current line with the next + line - then referred to as a ``continuation line''. As the first line is + commented with a hash (#) all following continuation lines are also part + of a comment and therefore are ignored, too. So take care of comments when + continuation lines are involved within your setup files! - Type: string - Default: "%4n %2f %t %-10a %r" + Abstract example: - Specifies the format of the data displayed for the `alias' menu. The - following printf(3)-style sequences are available: + line1\ + line2a # line2b\ + line3\ + line4 + line5 - %%aa alias name + line1 ``continues'' until line4. however, the part after the # is a + comment which includes line3 and line4. line5 is a new line of its own and + thus is interpreted again. - %%ff flags - currently, a "d" for an alias marked for deletion + The commands understood by mutt are explained in the next paragraphs. For + a complete list, see the commands. - %%nn index number +3. Expansion within variables - %%rr address which alias expands to + Besides just assign static content to variables, there's plenty of ways of + adding external and more or less dynamic content. - %%tt character which indicates if the alias is tagged for inclusion + 3.1. Commands' Output - 66..33..55.. aallllooww__88bbiitt + It is possible to substitute the output of a Unix command in an + initialization file. This is accomplished by enclosing the command in + backquotes (``) as in, for example: - Type: boolean - Default: yes + my_hdr X-Operating-System: `uname -a` - Controls whether 8-bit data is converted to 7-bit using either Quoted- - Printable or Base64 encoding when sending mail. + The output of the Unix command ``uname -a'' will be substituted before the + line is parsed. Note that since initialization files are line oriented, + only the first line of output from the Unix command will be substituted. - 66..33..66.. aallllooww__aannssii + 3.2. Environment Variables - Type: boolean - Default: no + UNIX environments can be accessed like the way it is done in shells like + sh and bash: Prepend the name of the environment by a ``$'' sign. For + example, - Controls whether ANSI color codes in messages (and color tags in rich - text messages) are to be interpreted. Messages containing these codes - are rare, but if this option is set, their text will be colored - accordingly. Note that this may override your color choices, and even - present a security problem, since a message could include a line like - "[-- PGP output follows ..." and give it the same color as your - attachment color. + set record=+sent_on_$HOSTNAME - 66..33..77.. aarrrrooww__ccuurrssoorr + sets the record variable to the string +sent_on_ and appends the value of + the evironment variable $HOSTNAME. - Type: boolean - Default: no + Note: There will be no warning if an environment variable is not defined. + The result will of the expansion will then be empty. - When set, an arrow (``->'') will be used to indicate the current entry - in menus instead of highlighting the whole line. On slow network or - modem links this will make response faster because there is less that - has to be redrawn on the screen when moving to the next or previous - entries in the menu. + 3.3. Configuration Variables - 66..33..88.. aasscciiii__cchhaarrss + As for environment variables, the values of all configuration variables as + string can be used in the same way, too. For example, - Type: boolean - Default: no + set imap_home_namespace = $folder - If set, Mutt will use plain ASCII characters when displaying thread - and attachment trees, instead of the default _A_C_S characters. + would set the value of imap-home-namespace to the value to which folder is + currently set to. - 66..33..99.. aasskkbbcccc + Note: There're no logical links established in such cases so that the the + value for imap-home-namespace won't change even if folder gets changed. - Type: boolean - Default: no + Note: There will be no warning if a configuration variable is not defined + or is empty. The result will of the expansion will then be empty. - If set, Mutt will prompt you for blind-carbon-copy (Bcc) recipients - before editing an outgoing message. + 3.4. Self-Defined Variables - 66..33..1100.. aasskkcccc + Mutt-ng flexibly allows users to define their own variables. To avoid + conflicts with the standard set and to prevent misleading error messages, + there's a reserved namespace for them: all user-defined variables must be + prefixed with user_ and can be used just like any ordinary configuration + or environment variable. - Type: boolean - Default: no + For example, to view the manual, users can either define two macros like + the following - If set, Mutt will prompt you for carbon-copy (Cc) recipients before - editing the body of an outgoing message. + macro generic "!less -r /path/to/manual" "Show manual" + macro pager "!less -r /path/to/manual" "Show manual" - 66..33..1111.. aasskk__ffoollllooww__uupp + for generic, pager and index .The alternative is to define a custom + variable like so: - Type: boolean - Default: no + set user_manualcmd = "!less -r /path/to_manual" + macro generic "$user_manualcmd" "Show manual" + macro pager "$user_manualcmd" "Show manual" + macro index "$user_manualcmd" "Show manual" - If set, Mutt will prompt you for follow-up groups before editing the - body of an outgoing message. + to re-use the command sequence as in: - 66..33..1122.. aasskk__xx__ccoommmmeenntt__ttoo + macro index "$user_manualcmd | grep '\^[ ]\\+~. '" "Show Patterns" - Type: boolean - Default: no + Using this feature, arbitrary sequences can be defined once and recalled + and reused where necessary. More advanced scenarios could include to save + a variable's value at the beginning of macro sequence and restore it at + end. - If set, Mutt will prompt you for x-comment-to field before editing the - body of an outgoing message. - 66..33..1133.. aattttaacchh__ffoorrmmaatt + When the variable is first defined, the first value it gets assigned is + also the initial value to which it can be reset using the reset command. - Type: string - Default: "%u%D%I %t%4n %T%.40d%> [%.7m/%.10M, %.6e%?C?, %C?, %s] " + The complete removal is done via the unset keyword. - This variable describes the format of the `attachment' menu. The - following printf-style sequences are understood: + After the following sequence: - %%CC charset + set user_foo = 42 + set user_foo = 666 - %%cc reqiures charset conversion (n or c) + the variable $user_foo has a current value of 666 and an initial of 42. + The query - %%DD deleted flag + set ?user_foo - %%dd description + will show 666. After doing the reset via - %%ee MIME content-transfer-encoding + reset user_foo - %%ff filename + a following query will give 42 as the result. After unsetting it via - %%II disposition (I=inline, A=attachment) + unset user_foo - %%mm major MIME type + any query or operation (except the noted expansion within other + statements) will lead to an error message. - %%MM MIME subtype + 3.5. Pre-Defined Variables - %%nn attachment number + In order to allow users to share one setup over a number of different + machines without having to change its contents, there's a number of + pre-defined variables. These are prefixed with muttng_ and are read-only, + i.e. they cannot be set, unset or reset. The reference chapter lists all + available variables. - %%ss size + Please consult the local copy of your manual for their values as they may + differ from different manual sources. Where the manual is installed in can + be queried (already using such a variable) by running: - %%tt tagged flag + muttng -Q muttng_docdir - %%TT graphic tree characters + To extend the example for viewing the manual via self-defined variables, + it can be made more readable and more portable by changing the real path + in: - %%uu unlink (=to delete) flag + set user_manualcmd = '!less -r /path/to_manual' - %%>>XX - right justify the rest of the string and pad with character "X" + to: - %%||XX - pad to the end of the line with character "X" + set user_manualcmd = "!less -r $muttng_docdir/manual.txt" - 66..33..1144.. aattttaacchh__sseepp + which works everywhere if a manual is installed. - Type: string - Default: "\n" + Please note that by the type of quoting, muttng determines when to expand + these values: when it finds double quotes, the value will be expanded + during reading the setup files but when it finds single quotes, it'll + expand it at runtime as needed. - The separator to add between attachments when operating (saving, - printing, piping, etc) on a list of tagged attachments. + For example, the statement - 66..33..1155.. aattttaacchh__sspplliitt + folder-hook . "set user_current_folder = $muttng_folder_name" - Type: boolean - Default: yes + will be already be translated to the following when reading the startup + files: - If this variable is unset, when operating (saving, printing, piping, - etc) on a list of tagged attachments, Mutt will concatenate the - attachments and will operate on them as a single attachment. The - ````$attach_sep'''' separator is added after each attachment. When - set, Mutt will operate on the attachments one by one. + folder-hook . "set user_current_folder = some_folder" - 66..33..1166.. aattttrriibbuuttiioonn + with some_folder being the name of the first folder muttng opens. On the + contrary, - Type: string - Default: "On %d, %n wrote:" + folder-hook . 'set user_current_folder = $muttng_folder_name' - This is the string that will precede a message which has been included - in a reply. For a full listing of defined printf()-like sequences see - the section on ````$index_format''''. + will be executed at runtime because of the single quotes so that + user_current_folder will always have the value of the currently opened + folder. - 66..33..1177.. aauuttooeeddiitt + A more practical example is: - Type: boolean - Default: no + folder-hook . 'source ~/.mutt/score-$muttng_folder_name' - When set along with ````$edit_headers'''', Mutt will skip the initial - send-menu and allow you to immediately begin editing the body of your - message. The send-menu may still be accessed once you have finished - editing the body of your message. + which can be used to source files containing score commands depending on + the folder the user enters. - Also see ````$fast_reply''''. + 3.6. Type Conversions - 66..33..1188.. aauuttoo__ttaagg + A note about variable's types during conversion: internally values are + stored in internal types but for any dump/query or set operation they're + converted to and from string. That means that there's no need to worry + about types when referencing any variable. As an example, the following + can be used without harm (besides makeing muttng very likely behave + strange): - Type: boolean - Default: no + set read_inc = 100 + set folder = $read_inc + set read_inc = $folder + set user_magic_number = 42 + set folder = $user_magic_number - When set, functions in the _i_n_d_e_x menu which affect a message will be - applied to all tagged messages (if there are any). When unset, you - must first use the tag-prefix function (default: ";") to make the next - function apply to all tagged messages. +4. Defining/Using aliases - 66..33..1199.. bbeeeepp + Usage: alias key address [ , address, ... ] - Type: boolean - Default: yes + It's usually very cumbersome to remember or type out the address of + someone you are communicating with. Mutt-ng allows you to create + ``aliases'' which map a short string to a full address. - When this variable is set, mutt will beep when an error occurs. + Note: if you want to create an alias for a group (by specifying more than + one address), you must separate the addresses with a comma (``,''). - 66..33..2200.. bbeeeepp__nneeww + To remove an alias or aliases (``*'' means all aliases): - Type: boolean - Default: no + unalias [ * | key ... ] - When this variable is set, mutt will beep whenever it prints a message - notifying you of new mail. This is independent of the setting of the - ````$beep'''' variable. + alias muttdude me@cs.hmc.edu (Michael Elkins) + alias theguys manny, moe, jack - 66..33..2211.. bboouunnccee + Unlike other mailers, Mutt-ng doesn't require aliases to be defined in a + special file. The alias command can appear anywhere in a configuration + file, as long as this file is source .Consequently, you can have multiple + alias files, or you can have all aliases defined in your muttrc. - Type: quadoption - Default: ask-yes + On the other hand, the create-alias function can use only one file, the + one pointed to by the alias-file variable (which is ˜/.muttrc by + default). This file is not special either, in the sense that Mutt-ng will + happily append aliases to any file, but in order for the new aliases to + take effect you need to explicitly source this file too. - Controls whether you will be asked to confirm bouncing messages. If - set to _y_e_s you don't get asked if you want to bounce a message. - Setting this variable to _n_o is not generally useful, and thus not - recommended, because you are unable to bounce messages. + For example: - 66..33..2222.. bboouunnccee__ddeelliivveerreedd + source /usr/local/share/Mutt-ng.aliases + source ~/.mail_aliases + set alias_file=~/.mail_aliases - Type: boolean - Default: yes + To use aliases, you merely use the alias at any place in mutt where + muttprompts for addresses, such as the To: or Cc: prompt. You can also + enter aliases in your editor at the appropriate headers if you have the + edit-headers variable set. - When this variable is set, mutt will include Delivered-To headers when - bouncing messages. Postfix users may wish to unset this variable. + In addition, at the various address prompts, you can use the tab character + to expand a partial alias to the full alias. If there are multiple + matches, mutt will bring up a menu with the matching aliases. In order to + be presented with the full list of aliases, you must hit tab with out a + partial alias, such as at the beginning of the prompt or after a comma + denoting multiple addresses. - 66..33..2233.. ccaattcchhuupp__nneewwssggrroouupp + In the alias menu, you can select as many aliases as you want with the + select-entry key (default: RET), and use the exit key (default: q) to + return to the address prompt. - Type: quadoption - Default: ask-yes +5. Changing the default key bindings - If this variable is _s_e_t, Mutt will mark all articles in newsgroup as - read when you quit the newsgroup (catchup newsgroup). + Usage: bind map key function - 66..33..2244.. cchhaarrsseett + This command allows you to change the default key bindings (operation + invoked when pressing a key). - Type: string - Default: "" + map specifies in which menu the binding belongs. Multiple maps may be + specified by separating them with commas (no additional whitespace + isallowed). The currently defined maps are: - Character set your terminal uses to display and enter textual data. + generic - 66..33..2255.. cchheecckk__nneeww + This is not a real menu, but is used as a fallback for all of the + other menus except for the pager and editor modes. If a key is not + defined in another menu, Mutt-ng will look for a binding to use in + this menu. This allows you to bind a key to a certain function in + multiple menus instead of having multiple bind statements to + accomplish the same task. - Type: boolean - Default: yes + alias + + The alias menu is the list of your personal aliases as defined in + your muttrc. It is the mapping from a short alias name to the full + email address(es) of the recipient(s). + + attach + + The attachment menu is used to access the attachments on received + messages. + + browser + + The browser is used for both browsing the local directory + structure, and for listing all of your incoming mailboxes. + + editor + + The editor is the line-based editor the user enters text data. + + index + + The index is the list of messages contained in a mailbox. + + compose + + The compose menu is the screen used when sending a new message. - NNoottee:: this option only affects _m_a_i_l_d_i_r and _M_H style mailboxes. + pager - When _s_e_t, Mutt will check for new mail delivered while the mailbox is - open. Especially with MH mailboxes, this operation can take quite - some time since it involves scanning the directory and checking each - file to see if it has already been looked at. If _c_h_e_c_k___n_e_w is _u_n_s_e_t, - no check for new mail is performed while the mailbox is open. + The pager is the mode used to display message/attachment data, and + help listings. + + pgp + + The pgp menu is used to select the OpenPGP keys used for + encrypting outgoing messages. + + postpone + + The postpone menu is similar to the index menu, except is used + when recalling a message the user was composing, but saved until + later. + + key is the key (or key sequence) you wish to bind. To specify a control + character, use the sequence \Cx, where x is the letter of the control + character (for example, to specify control-A use ``\Ca''). Note that the + case of x as well as \C is ignored, so that \CA, \Ca, \cA and \ca are all + equivalent. An alternative form is to specify the key as a three digit + octal number prefixed with a ``\'' (for example \177 is equivalent to + \c?). + + In addition, key may consist of: + + Table 3.1. Alternative Key Names - 66..33..2266.. ccoollllaappssee__uunnrreeaadd + +-----------------------------------+ + | Sequence | Description | + |-------------+---------------------| + | \t | tab | + |-------------+---------------------| + | | tab | + |-------------+---------------------| + | | backtab / shift-tab | + |-------------+---------------------| + | \r | carriage return | + |-------------+---------------------| + | \n | newline | + |-------------+---------------------| + | \e | escape | + |-------------+---------------------| + | | escape | + |-------------+---------------------| + | | up arrow | + |-------------+---------------------| + | | down arrow | + |-------------+---------------------| + | | left arrow | + |-------------+---------------------| + | | right arrow | + |-------------+---------------------| + | | Page Up | + |-------------+---------------------| + | | Page Down | + |-------------+---------------------| + | | Backspace | + |-------------+---------------------| + | | Delete | + |-------------+---------------------| + | | Insert | + |-------------+---------------------| + | | Enter | + |-------------+---------------------| + | | Return | + |-------------+---------------------| + | | Home | + |-------------+---------------------| + | | End | + |-------------+---------------------| + | | Space bar | + |-------------+---------------------| + | | function key 1 | + |-------------+---------------------| + | | function key 10 | + +-----------------------------------+ - Type: boolean - Default: yes + key does not need to be enclosed in quotes unless it contains a space (`` + ''). - When _u_n_s_e_t, Mutt will not collapse a thread if it contains any unread - messages. + function specifies which action to take when key is pressed. For a + complete list of functions, see the functions .The special function noop + unbinds the specified key sequence. - 66..33..2277.. uunnccoollllaappssee__jjuummpp +6. Defining aliases for character sets - Type: boolean - Default: no + Usage: charset-hook alias charset Usage: iconv-hook charset local-charset - When _s_e_t, Mutt will jump to the next unread message, if any, when the - current thread is _u_ncollapsed. + The charset-hook command defines an alias for a character set. This is + useful to properly display messages which are tagged with a character set + name not known to mutt. - 66..33..2288.. ccoommppoossee__ffoorrmmaatt + The iconv-hook command defines a system-specific name for a character set. + This is helpful when your systems character conversion library insists on + using strange, system-specific names for character sets. - Type: string - Default: "-- Mutt: Compose [Approx. msg size: %l Atts: %a]%>-" +7. Setting variables based upon mailbox - Controls the format of the status line displayed in the \fCompose - menu. This string is similar to ````$status_format'''', but has its - own set of printf()-like sequences: + Usage: folder-hook [!]regexp command - %%aa total number of attachments + It is often desirable to change settings based on which mailbox you are + reading. The folder-hook command provides a method by which you can + execute any configuration command. regexp is a regular expression + specifying in which mailboxes to execute command before loading. If a + mailbox matches multiple folder-hook's, they are executed in the order + given in the muttrc. - %%hh local hostname + Note: if you use the ``!'' shortcut for spoolfile at the beginning of the + pattern, you must place it inside of double or single quotes in order to + distinguish it from the logical not operator for the expression. - %%ll approximate size (in bytes) of the current message + Note that the settings are not restored when you leave the mailbox. For + example, a command action to perform is to change the sorting methodbased + upon the mailbox being read: - %%vv Mutt version string + folder-hook mutt set sort=threads - See the text describing the ````$status_format'''' option for more - information on how to set ````$compose_format''''. + However, the sorting method is not restored to its previous value when + reading a different mailbox. To specify a default command, use the pattern + ``.'': - 66..33..2299.. ccoonnffiirrmmaappppeenndd + folder-hook . set sort=date-sent - Type: boolean - Default: yes +8. Keyboard macros - When set, Mutt will prompt for confirmation when appending messages to - an existing mailbox. + Usage: macro menu key sequence [ description ] - 66..33..3300.. ccoonnffiirrmmccrreeaattee + Macros are useful when you would like a single key to perform a series of + actions. When you press key in menu menu ,Mutt-ng will behave as if you + had typed sequence. So if you have a common sequence of commands you type, + you can create a macro to execute those commands with a singlekey. - Type: boolean - Default: yes + menu is the maps which the macro will be bound. Multiple maps may be + specified by separating multiple menu arguments by commas. Whitespace may + not be used in between the menu arguments and thecommas separating them. - When set, Mutt will prompt for confirmation when saving messages to a - mailbox which does not yet exist before creating it. + key and sequence are expanded by the same rules as the bind. There are + some additions however. The first is that control characters in sequence + can also be specified as ^x. In order to get a caret (`^'') you need to + use ^^. Secondly, to specify a certain key such as up or to invoke a + function directly, you can use the format and + .For a listing of key names see the section on bind. Functions are listed + in the functions. - 66..33..3311.. ccoonnnneecctt__ttiimmeeoouutt + The advantage with using function names directly is that the macros + willwork regardless of the current key bindings, so they are not dependent + on the user having particular key definitions. This makes them more + robustand portable, and also facilitates defining of macros in files used + by more than one user (eg. the system Muttngrc). - Type: number - Default: 30 + Optionally you can specify a descriptive text after sequence, which is + shown in the help screens. - Causes Mutt to timeout a network connection (for IMAP or POP) after - this many seconds if the connection is not able to be established. A - negative value causes Mutt to wait indefinitely for the connection to - succeed. + Note: Macro definitions (if any) listed in the help screen(s), are + silently truncated at the screen width, and are not wrapped. - 66..33..3322.. ccoonntteenntt__ttyyppee +9. Using color and mono video attributes - Type: string - Default: "text/plain" + Usage: color object foreground background [ regexp ] Usage: color index + foreground background pattern Usage: uncolor index pattern [ pattern ... ] - Sets the default Content-Type for the body of newly composed messages. + If your terminal supports color, you can spice up Mutt-ng by creating your + own color scheme. To define the color of an object (type of information), + you must specify both a foreground color and a background color (it is not + possible to only specify one or the other). - 66..33..3333.. ccooppyy + object can be one of: - Type: quadoption - Default: yes + o attachment - This variable controls whether or not copies of your outgoing messages - will be saved for later references. Also see ````$record'''', - ````$save_name'''', ````$force_name'''' and ````fcc-hook''''. + o body (match regexp in the body of messages) - 66..33..3344.. ccrryypptt__aauuttooppggpp + o bold (highlighting bold patterns in the body of messages) - Type: boolean - Default: yes + o error (error messages printed by Mutt-ng) - This variable controls whether or not mutt may automatically enable - PGP encryption/signing for messages. See also - ````$crypt_autoencrypt'''', ````$crypt_replyencrypt'''', - ````$crypt_autosign'''', ````$crypt_replysign'''' and - ````$smime_is_default''''. + o header (match regexp in the message header) - 66..33..3355.. ccrryypptt__aauuttoossmmiimmee + o hdrdefault (default color of the message header in the pager) - Type: boolean - Default: yes + o index (match pattern in the message index) - This variable controls whether or not mutt may automatically enable - S/MIME encryption/signing for messages. See also - ````$crypt_autoencrypt'''', ````$crypt_replyencrypt'''', - ````$crypt_autosign'''', ````$crypt_replysign'''' and - ````$smime_is_default''''. + o indicator (arrow or bar used to indicate the current item in a menu) - 66..33..3366.. ddaattee__ffoorrmmaatt + o markers (the ``+'' markers at the beginning of wrapped lines in the + pager) - Type: string - Default: "!%a, %b %d, %Y at %I:%M:%S%p %Z" + o message (informational messages) - This variable controls the format of the date printed by the ``%d'' - sequence in ````$index_format''''. This is passed to the _s_t_r_f_t_i_m_e - call to process the date. See the man page for _s_t_r_f_t_i_m_e_(_3_) for the - proper syntax. + o normal - Unless the first character in the string is a bang (``!''), the month - and week day names are expanded according to the locale specified in - the variable ````$locale''''. If the first character in the string is - a bang, the bang is discarded, and the month and week day names in the - rest of the string are expanded in the _C locale (that is in US - English). + o quoted (text matching quote-regexp in the body of a message) - 66..33..3377.. ddeeffaauulltt__hhooookk + o quoted1, quoted2, ..., quotedN (higher levels of quoting) - Type: string - Default: "~f %s !~P | (~P ~C %s)" + o search (highlighting of words in the pager) - This variable controls how send-hooks, message-hooks, save-hooks, and - fcc-hooks will be interpreted if they are specified with only a simple - regexp, instead of a matching pattern. The hooks are expanded when - they are declared, so a hook will be interpreted according to the - value of this variable at the time the hook is declared. The default - value matches if the message is either from a user matching the - regular expression given, or if it is from you (if the from address - matches ``alternates'') and is to or cc'ed to a user matching the - given regular expression. + o signature - 66..33..3388.. ddeelleettee + o status (mode lines used to display info about the mailbox or message) - Type: quadoption - Default: ask-yes + o tilde (the ``˜'' used to pad blank lines in the pager) - Controls whether or not messages are really deleted when closing or - synchronizing a mailbox. If set to _y_e_s, messages marked for deleting - will automatically be purged without prompting. If set to _n_o, - messages marked for deletion will be kept in the mailbox. + o tree (thread tree drawn in the message index and attachment menu) - 66..33..3399.. ddeelleettee__uunnttaagg + o underline (highlighting underlined patterns in the body of messages) - Type: boolean - Default: yes + foreground and background can be one of the following: - If this option is _s_e_t, mutt will untag messages when marking them for - deletion. This applies when you either explicitly delete a message, - or when you save it to another folder. + o white - 66..33..4400.. ddiiggeesstt__ccoollllaappssee + o black - Type: boolean - Default: yes + o green - If this option is _s_e_t, mutt's revattach menu will not show the - subparts of individual messages in a digest. To see these subparts, - press 'v' on that menu. + o magenta - 66..33..4411.. ddiissppllaayy__ffiilltteerr + o blue - Type: path - Default: "" + o cyan - When set, specifies a command used to filter messages. When a message - is viewed it is passed as standard input to ``$display_filter'', and - the filtered message is read from the standard output. + o yellow - 66..33..4422.. ddoottlloocckk__pprrooggrraamm + o red - Type: path - Default: "/usr/local/bin/mutt_dotlock" + o default - Contains the path of the mutt_dotlock (8) binary to be used by mutt. + o colorx - 66..33..4433.. ddssnn__nnoottiiffyy + foreground can optionally be prefixed with the keyword bright to make the + foreground color boldfaced (e.g., brightred). - Type: string - Default: "" + If your terminal supports it, the special keyword default can be used as a + transparent color. The value brightdefault is also valid. If Mutt-ng is + linked against the S-Lang library, you also need to set the COLORFGBG + environment variable to the default colors of your terminal for this to + work; for example (for Bourne-like shells): - NNoottee:: you should not enable this unless you are using Sendmail 8.8.x - or greater. + set COLORFGBG="green;black" + export COLORFGBG - This variable sets the request for when notification is returned. The - string consists of a comma separated list (no spaces!) of one or more - of the following: _n_e_v_e_r, to never request notification, _f_a_i_l_u_r_e, to - request notification on transmission failure, _d_e_l_a_y, to be notified of - message delays, _s_u_c_c_e_s_s, to be notified of successful transmission. + Note: The S-Lang library requires you to use the lightgray and brown + keywords instead of white and yellow when setting this variable. - Example: set dsn_notify="failure,delay" + Note: The uncolor command can be applied to the index object only. It + removes entries from the list. You must specify the same pattern specified + in the color command for it to be removed. The pattern ``*'' is a special + token which means to clear the color index list of all entries. - 66..33..4444.. ddssnn__rreettuurrnn + Mutt-ng also recognizes the keywords color0, color1 ,…, colorN-1 (N + being the number of colors supported by your terminal). This is useful + when you remap the colors for your display (for example by changing the + color associated with color2 for your xterm), since color names may then + lose their normal meaning. - Type: string - Default: "" + If your terminal does not support color, it is still possible change the + video attributes through the use of the ``mono'' command: - NNoottee:: you should not enable this unless you are using Sendmail 8.8.x - or greater. + Usage: mono [ regexp ] Usage: mono index attribute + pattern Usage: unmono index pattern [ pattern ... ] - This variable controls how much of your message is returned in DSN - messages. It may be set to either _h_d_r_s to return just the message - header, or _f_u_l_l to return the full message. + where attribute is one of the following: - Example: set dsn_return=hdrs + o none - 66..33..4455.. dduupplliiccaattee__tthhrreeaaddss + o bold - Type: boolean - Default: yes + o underline - This variable controls whether mutt, when sorting by threads, threads - messages with the same message-id together. If it is set, it will - indicate that it thinks they are duplicates of each other with an - equals sign in the thread diagram. + o reverse - 66..33..4466.. eeddiitt__hheeaaddeerrss + o standout - Type: boolean - Default: no +10. Ignoring (weeding) unwanted message headers - This option allows you to edit the header of your outgoing messages - along with the body of your message. + Usage: [un]ignore pattern [ pattern ... ] - 66..33..4477.. eeddiittoorr + Messages often have many header fields added by automatic processing + systems, or which may not seem useful to display on the screen. This + command allows you to specify header fields which you don't normally want + to see. - Type: path - Default: "" + You do not need to specify the full header field name. For example, + ``ignore content-'' will ignore all header fields that begin with the + pattern ``content-''. ``ignore *'' will ignore all headers. - This variable specifies which editor is used by mutt. It defaults to - the value of the VISUAL, or EDITOR, environment variable, or to the - string "vi" if neither of those are set. + To remove a previously added token from the list, use the ``unignore'' + command. The ``unignore'' command will make Mutt-ng display headers with + the given pattern. For example, if you do ``ignore x-'' it is possible to + ``unignore x-mailer''. - 66..33..4488.. eennccooddee__ffrroomm + ``unignore *'' will remove all tokens from the ignore list. - Type: boolean - Default: no + For example: - When _s_e_t, mutt will quoted-printable encode messages when they contain - the string "From " in the beginning of a line. Useful to avoid the - tampering certain mail delivery and transport agents tend to do with - messages. + # Sven's draconian header weeding + ignore * + unignore from date subject to cc + unignore organization organisation x-mailer: x-newsreader: x-mailing-list: + unignore posted-to: - 66..33..4499.. eennvveellooppee__ffrroomm +11. Alternative addresses - Type: boolean - Default: no + Usage: [un]alternates regexp [ regexp ... ] - When _s_e_t, mutt will try to derive the message's _e_n_v_e_l_o_p_e sender from - the "From:" header. Note that this information is passed to sendmail - command using the "-f" command line switch, so don't set this option - if you are using that switch in ``$sendmail'' yourself, or if the - sendmail on your machine doesn't support that command line switch. + With various functions, mutt will treat messages differently, depending on + whether you sent them or whether you received them from someone else. For + instance, when replying to a message that you sent to a different party, + mutt will automatically suggest to send the response to the original + message's recipients -- responding to yourself won't make much sense in + many cases. (See reply-to .) - 66..33..5500.. eessccaappee + Many users receive e-mail under a number of different addresses. To fully + use mutt's features here, the program must be able to recognize what + e-mail addresses you receive mail under. That's the purpose of the + alternates command: It takes a list of regular expressions, each of which + can identify an address under which you receive e-mail. - Type: string - Default: "~" + The unalternates command can be used to write exceptions to alternates + patterns. If an address matches something in an alternates command, but + you nonetheless do not think it is from you, you can list a more precise + pattern under an unalternates command. - Escape character to use for functions in the builtin editor. + To remove a regular expression from the alternates list, use the + unalternates command with exactly the same regexp . Likewise, if the + regexp for a alternates command matches an entry on the unalternates list, + that unalternates entry will be removed. If the regexp for unalternates is + ``*'', all entries on alternates will be removed. - 66..33..5511.. ffaasstt__rreeppllyy +12. Format = Flowed - Type: boolean - Default: no + 12.1. Introduction - When set, the initial prompt for recipients and subject are skipped - when replying to messages, and the initial prompt for subject is - skipped when forwarding messages. + Mutt-ng contains support for so-called format=flowed messages. In the + beginning of email, each message had a fixed line width, and it was enough + for displaying them on fixed-size terminals. But times changed, and + nowadays hardly anybody still uses fixed-size terminals: more people + nowaydays use graphical user interfaces, with dynamically resizable + windows. This led to the demand of a new email format that makes it + possible for the email client to make the email look nice in a resizable + window without breaking quoting levels and creating an incompatible email + format that can also be displayed nicely on old fixed-size terminals. - NNoottee:: this variable has no effect when the ````$autoedit'''' variable - is set. + For introductory information on format=flowed messages, see + . - 66..33..5522.. ffcccc__aattttaacchh + 12.2. Receiving: Display Setup - Type: boolean - Default: yes + When you receive emails that are marked as format=flowed messages, and is + formatted correctly, mutt-ng will try to reformat the message to optimally + fit on your terminal. If you want a fixed margin on the right side of your + terminal, you can set the following: - This variable controls whether or not attachments on outgoing messages - are saved along with the main body of your message. + set wrapmargin = 10 - 66..33..5533.. ffcccc__cclleeaarr + The code above makes the line break 10 columns before the right side of + the terminal. - Type: boolean - Default: no + If your terminal is so wide that the lines are embarrassingly long, you + can also set a maximum line length: - When this variable is set, FCCs will be stored unencrypted and - unsigned, even when the actual message is encrypted and/or signed. - (PGP only) + set max_line_length = 120 - 66..33..5544.. ffoollddeerr + The example above will give you lines not longer than 120 characters. - Type: path - Default: "~/Mail" + When you view at format=flowed messages, you will often see the quoting + hierarchy like in the following example: - Specifies the default location of your mailboxes. A `+' or `=' at the - beginning of a pathname will be expanded to the value of this - variable. Note that if you change this variable from the default - value you need to make sure that the assignment occurs _b_e_f_o_r_e you use - `+' or `=' for any other variables since expansion takes place during - the `set' command. + >Bill, can you please send last month's progress report to Mr. + >Morgan? We also urgently need the cost estimation for the new + >production server that we want to set up before our customer's + >project will go live. - 66..33..5555.. ffoollddeerr__ffoorrmmaatt + This obviously doesn't look very nice, and it makes it very hard to + differentiate between text and quoting character. The solution is to + configure mutt-ng to "stuff" the quoting: - Type: string - Default: "%2C %t %N %F %2l %-8.8u %-8.8g %8s %d %f" + set stuff_quoted - This variable allows you to customize the file browser display to your - personal taste. This string is similar to ````$index_format'''', but - has its own set of printf()-like sequences: + This will lead to a nicer result that is easier to read: - %%CC current file number + > Bill, can you please send last month's progress report to Mr. + > Morgan? We also urgently need the cost estimation for the new + > production server that we want to set up before our customer's + > project will go live. - %%dd date/time folder was last modified + 12.3. Sending - %%ff filename + If you want mutt-ng to send emails with format=flowed set, you need to + explicitly set it: - %%FF file permissions + set text_flowed - %%gg group name (or numeric gid, if missing) + Additionally, you have to use an editor which supports writing + format=flowed-conforming emails. For vim, this is done by adding w to the + formatoptions (see :h formatoptions and :h fo-table) when writing emails. - %%ll number of hard links + Also note that format=flowed knows about ``space-stuffing'', that is, when + sending messages, some kinds of lines have to be indented with a single + space on the sending side. On the receiving side, the first space (if any) + is removed. As a consequence and in addition to the above simple setting, + please keep this in mind when making manual formattings within the editor. + Also note that mutt-ng currently violates the standard (RfC 3676) as it + does not space-stuff lines starting with: - %%NN N if folder has new mail, blank otherwise + o > This is not the quote character but a right angle used for other + reasons - %%ss size in bytes + o From with a trailing space. - %%tt * if the file is tagged, blank otherwise + o just a space for formatting reasons - %%uu owner name (or numeric uid, if missing) + Please make sure that you manually prepend a space to each of them. - %%>>XX - right justify the rest of the string and pad with character "X" + 12.4. Additional Notes - %%||XX - pad to the end of the line with character "X" + For completeness, the delete-space variable provides the mechanism to + generate a DelSp=yes parameter on outgoing messages. According to the + standard, clients receiving a format=flowed messages should delete the + last space of a flowed line but still interpret the line as flowed. + Because flowed lines usually contain only one space at the end, this + parameter would make the receiving client concatenate the last word of the + previous with the first of the current line without a space. This makes + ordinary text unreadable and is intended for languages rarely using + spaces. So please use this setting only if you're sure what you're doing. - 66..33..5566.. ffoolllloowwuupp__ttoo +13. Mailing lists - Type: boolean - Default: yes + Usage: [un]lists regexp [ regexp ... ] Usage: [un]subscribe regexp [ + regexp ... ] - Controls whether or not the _M_a_i_l_-_F_o_l_l_o_w_u_p_-_T_o header field is generated - when sending mail. When _s_e_t, Mutt will generate this field when you - are replying to a known mailing list, specified with the ``subscribe'' - or ````lists'''' commands. + Mutt-ng has a few nice features for using-lists .In order to take + advantage of them, you must specify which addresses belong to mailing + lists, and which mailing lists you are subscribed to. Once you have done + this, the list-reply function will work for all known lists. Additionally, + when you send a message to a subscribed list, mutt will add a + Mail-Followup-To header to tell other users' mail user agents not to send + copies of replies to your personal address. Note that the Mail-Followup-To + header is a non-standard extension which is not supported by all mail user + agents. Adding it is not bullet-proof against receiving personal CCs of + list messages. Also note that the generation of the Mail-Followup-To + header is controlled by the followup-to configuration variable. - This field has two purposes. First, preventing you from receiving - duplicate copies of replies to messages which you send to mailing - lists, and second, ensuring that you do get a reply separately for any - messages sent to known lists to which you are not subscribed. The - header will contain only the list's address for subscribed lists, and - both the list address and your own email address for unsubscribed - lists. Without this header, a group reply to your message sent to a - subscribed list will be sent to both the list and your address, - resulting in two copies of the same email for you. + More precisely, Mutt-ng maintains lists of patterns for the addresses of + known and subscribed mailing lists. Every subscribed mailing list is + known. To mark a mailing list as known, use the ``lists'' command. To mark + it as subscribed, use ``subscribe''. - 66..33..5577.. ffoolllloowwuupp__ttoo__ppoosstteerr + You can use regular expressions with both commands. To mark all messages + sent to a specific bug report's address on mutt's bug tracking system as + list mail, for instance, you could say ``subscribe [0-9]*@bugs.guug.de''. + Often, it's sufficient to just give a portion of the list's e-mail + address. - Type: quadoption - Default: ask-yes + Specify as much of the address as you need to to remove ambiguity. For + example, if you've subscribed to the Mutt-ng mailing list, you will + receive mail addressed to mutt-users@mutt.org. So, to tell Mutt-ng that + this is a mailing list, you could add ``lists mutt-users'' to your + initialization file. To tell mutt that you are subscribed to it, add + ``subscribe mutt-users'' to your initialization file instead. If you also + happen to get mail from someone whose address is mutt-users@example.com, + you could use ``lists mutt-users@mutt\\.org'' or ``subscribe + mutt-users@mutt\\.org'' to match only mail from the actual list. - If this variable is _s_e_t and the keyword "poster" is present in - _F_o_l_l_o_w_u_p_-_T_o header, follow-up to newsgroup function is not permitted. - The message will be mailed to the submitter of the message via mail. + The ``unlists'' command is used to remove a token from the list of known + and subscribed mailing-lists. Use ``unlists *'' to remove all tokens. - 66..33..5588.. ffoorrccee__nnaammee + To remove a mailing list from the list of subscribed mailing lists, but + keep it on the list of known mailing lists, use ``unsubscribe''. - Type: boolean - Default: no +14. Using Multiple spool mailboxes - This variable is similar to ````$save_name'''', except that Mutt will - store a copy of your outgoing message by the username of the address - you are sending to even if that mailbox does not exist. + Usage: mbox-hook [!]pattern mailbox - Also see the ````$record'''' variable. + This command is used to move read messages from a specified mailbox to + adifferent mailbox automatically when you quit or change folders. pattern + is a regular expression specifying the mailbox to treat as a ``spool'' + mailbox and mailbox specifies where mail should be saved when read. - 66..33..5599.. ffoorrwwaarrdd__ddeeccooddee + Unlike some of the other hook commands, only the first matching pattern is + used (it is not possible to save read mail in more than a single mailbox). - Type: boolean - Default: yes +15. Defining mailboxes which receive mail - Controls the decoding of complex MIME messages into text/plain when - forwarding a message. The message header is also RFC2047 decoded. - This variable is only used, if ````$mime_forward'''' is _u_n_s_e_t, - otherwise ````$mime_forward_decode'''' is used instead. + Usage: [un]mailboxes [!]filename [ filename ... ] - 66..33..6600.. ffoorrwwaarrdd__eeddiitt + This command specifies folders which can receive mail and which will be + checked for new messages. By default, the main menu status bar displays + how many of these folders have new messages. - Type: quadoption - Default: yes + When changing folders, pressing space will cycle through folders with new + mail. - This quadoption controls whether or not the user is automatically - placed in the editor when forwarding messages. For those who always - want to forward with no modification, use a setting of ``no''. + Pressing TAB in the directory browser will bring up a menu showing the + files specified by the mailboxes command, and indicate which contain new + messages. Mutt-ng will automatically enter this mode when invoked from the + command line with the -y option. - 66..33..6611.. ffoorrwwaarrdd__ffoorrmmaatt + The ``unmailboxes'' command is used to remove a token from the list of + folders which receive mail. Use ``unmailboxes *'' to remove all tokens. - Type: string - Default: "[%a: %s]" + Note: new mail is detected by comparing the last modification time to the + last access time. Utilities like biff or frm or any other program which + accesses the mailbox might cause Mutt-ng to never detect new mail for that + mailbox if they do not properly reset the access time. Backup tools are + another common reason for updated access times. - This variable controls the default subject when forwarding a message. - It uses the same format sequences as the ````$index_format'''' - variable. + Note: the filenames in the mailboxes command are resolved when the command + is executed, so if these names contain shortcuts (such as ``='' and + ``!''), any variable definition that affect these characters (like folder + and spoolfile) should be executed before the mailboxes command. - 66..33..6622.. ffoorrwwaarrdd__qquuoottee +16. User defined headers - Type: boolean - Default: no + Usage: my_hdr string unmy_hdr field [ field ... ] - When _s_e_t forwarded messages included in the main body of the message - (when ````$mime_forward'''' is _u_n_s_e_t) will be quoted using - ````$indent_string''''. + The ``my_hdr'' command allows you to create your own header fields which + will be added to every message you send. - 66..33..6633.. ffrroomm + For example, if you would like to add an ``Organization:'' header field to + all of your outgoing messages, you can put the command - Type: e-mail address - Default: "" + my_hdr Organization: A Really Big Company, Anytown, USA - When set, this variable contains a default from address. It can be - overridden using my_hdr (including from send-hooks) and - ````$reverse_name''''. This variable is ignored if ````$use_from'''' - is unset. + in your .muttrc. - Defaults to the contents of the environment variable EMAIL. + Note: space characters are not allowed between the keyword and the colon + (``:''). The standard for electronic mail (RFC822) says that space is + illegal there, so Mutt-ng enforces the rule. - 66..33..6644.. ggeeccooss__mmaasskk + If you would like to add a header field to a single message, you should + either set the edit-headers variable, or use the edit-headers function + (default: ``E'') in the send-menu so that you can edit the header of your + message along with the body. - Type: regular expression - Default: "^[^,]*" + To remove user defined header fields, use the ``unmy_hdr'' command. You + may specify an asterisk (``*'') to remove all header fields, or the fields + to remove. For example, to remove all ``To'' and ``Cc'' header fields, you + could use: - A regular expression used by mutt to parse the GECOS field of a - password entry when expanding the alias. By default the regular - expression is set to "^[^,]*" which will return the string up to the - first "," encountered. If the GECOS field contains a string like - "lastname, firstname" then you should set the gecos_mask=".*". + unmy_hdr to cc - This can be useful if you see the following behavior: you address a e- - mail to user ID stevef whose full name is Steve Franklin. If mutt - expands stevef to "Franklin" stevef@foo.bar then you should set the - gecos_mask to a regular expression that will match the whole name so - mutt will expand "Franklin" to "Franklin, Steve". +17. Defining the order of headers when viewing messages - 66..33..6655.. ggrroouupp__iinnddeexx__ffoorrmmaatt + Usage: hdr_order header1 header2 header3 - Type: string - Default: "%4C %M%N %5s %-45.45f %d" + With this command, you can specify an order in which mutt will attempt to + present headers to you when viewing messages. - This variable allows you to customize the newsgroup browser display to - your personal taste. This string is similar to ````index_format'''', - but has its own set of printf()-like sequences: + ``unhdr_order *'' will clear all previous headers from the order list, + thus removing the header order effects set by the system-wide startup + file. - %C current newsgroup number - %d description of newsgroup (becomes from server) - %f newsgroup name - %M - if newsgroup not allowed for direct post (moderated for example) - %N N if newsgroup is new, u if unsubscribed, blank otherwise - %n number of new articles in newsgroup - %s number of unread articles in newsgroup - %>X right justify the rest of the string and pad with character "X" - %|X pad to the end of the line with character "X" + hdr_order From Date: From: To: Cc: Subject: - 66..33..6666.. hhddrrss +18. Specify default save filename - Type: boolean - Default: yes + Usage: save-hook [!]pattern filename - When unset, the header fields normally added by the ````my_hdr'''' - command are not created. This variable _m_u_s_t be unset before composing - a new message or replying in order to take effect. If set, the user - defined header fields are added to every new message. + This command is used to override the default filename used when saving + messages. filename will be used as the default filename if the message is + From: an address matching regexp or if you are the author and the message + is addressed to: something matching regexp . - 66..33..6677.. hheeaaddeerr + See pattern-hook for information on the exact format of pattern. - Type: boolean - Default: no + Examples: - When set, this variable causes Mutt to include the header of the - message you are replying to into the edit buffer. The ````$weed'''' - setting applies. + save-hook me@(turing\\.)?cs\\.hmc\\.edu$ +elkins + save-hook aol\\.com$ +spam - 66..33..6688.. hheellpp + Also see the fcc-save-hook command. - Type: boolean - Default: yes +19. Specify default Fcc: mailbox when composing - When set, help lines describing the bindings for the major functions - provided by each menu are displayed on the first line of the screen. + Usage: fcc-hook [!]pattern mailbox - NNoottee:: The binding will not be displayed correctly if the function is - bound to a sequence rather than a single keystroke. Also, the help - line may not be updated if a binding is changed while Mutt is running. - Since this variable is primarily aimed at new users, neither of these - should present a major problem. + This command is used to save outgoing mail in a mailbox other than record. + Mutt-ng searches the initial list of message recipients for the first + matching regexp and uses mailbox as the default Fcc: mailbox. If no match + is found the message will be saved to record mailbox. - 66..33..6699.. hhiiddddeenn__hhoosstt + See pattern-hook for information on the exact format of pattern. - Type: boolean - Default: no + Example: fcc-hook [@.]aol\\.com$ +spammers - When set, mutt will skip the host name part of ````$hostname'''' - variable when adding the domain part to addresses. This variable does - not affect the generation of Message-IDs, and it will not lead to the - cut-off of first-level domains. - 66..33..7700.. hhiiddee__lliimmiitteedd + The above will save a copy of all messages going to the aol.com domain to + the `+spammers' mailbox by default. Also see the fcc-save-hook command. - Type: boolean - Default: no +20. Specify default save filename and default Fcc: mailbox at once - When set, mutt will not show the presence of messages that are hidden - by limiting, in the thread tree. + Usage: fcc-save-hook [!]pattern mailbox - 66..33..7711.. hhiiddee__mmiissssiinngg + This command is a shortcut, equivalent to doing both a fcc-hook and a + save-hook with its arguments. - Type: boolean - Default: yes +21. Change settings based upon message recipients - When set, mutt will not show the presence of missing messages in the - thread tree. + Usage: reply-hook [!]pattern command Usage: send-hook [!]pattern command + Usage: send2-hook [!]pattern command - 66..33..7722.. hhiiddee__ttoopp__lliimmiitteedd + These commands can be used to execute arbitrary configuration commands + based upon recipients of the message. pattern is a regular expression + matching the desired address. command is executed when regexp matches + recipients of the message. - Type: boolean - Default: no + reply-hook is matched against the message you are replying to, instead of + the message you are sending .send-hook is matched against all messages, + both new and replies .Note: reply-hooks are matched before the send-hook + ,regardless of the order specified in the users's configuration file. - When set, mutt will not show the presence of messages that are hidden - by limiting, at the top of threads in the thread tree. Note that when - ``$hide_missing'' is set, this option will have no effect. + send2-hook is matched every time a message is changed, either by editing + it, or by using the compose menu to change its recipients or subject. + send2-hook is executed after send-hook ,and can, e.g., be used to set + parameters such as the sendmail variable depending on the message's sender + address. - 66..33..7733.. hhiiddee__ttoopp__mmiissssiinngg + For each type of send-hook or reply-hook, when multiple matches occur, + commands are executed in the order they are specified in the muttrc (for + that type of hook). - Type: boolean - Default: yes + See pattern-hook for information on the exact format of pattern. - When set, mutt will not show the presence of missing messages at the - top of threads in the thread tree. Note that when ``$hide_limited'' - is set, this option will have no effect. + Example: send-hook mutt "set mime_forward signature=''" - 66..33..7744.. hhiissttoorryy + Another typical use for this command is to change the values of the + attribution, signature and locale variables in order to change the + language of the attributions and signatures based upon the recipients. - Type: number - Default: 10 + Note: the send-hook's are only executed ONCE after getting the initial + list of recipients. Adding a recipient after replying or editing the + message will NOT cause any send-hook to be executed. Also note that my_hdr + commands which modify recipient headers, or the message's subject, don't + have any effect on the current message when executed from a send-hook. - This variable controls the size (in number of strings remembered) of - the string history buffer. The buffer is cleared each time the - variable is set. +22. Change settings before formatting a message - 66..33..7755.. hhoonnoorr__ffoolllloowwuupp__ttoo + Usage: message-hook [!]pattern command - Type: quadoption - Default: yes + This command can be used to execute arbitrary configuration commands + before viewing or formatting a message based upon information about the + message. command is executed if the pattern matches the message to be + displayed. When multiple matches occur, commands are executed in the order + they are specified in the muttrc. - This variable controls whether or not a Mail-Followup-To header is - honored when group-replying to a message. - 66..33..7766.. hhoossttnnaammee + See pattern-hook for information on the exact format of pattern. - Type: string - Default: "" + Example: - Specifies the hostname to use after the ``@'' in local e-mail - addresses. This overrides the compile time definition obtained from - /etc/resolv.conf. + message-hook ~A 'set pager=builtin' + message-hook '~f freshmeat-news' 'set pager="less \"+/^ subject:.*\""' - 66..33..7777.. iiggnnoorree__lliisstt__rreeppllyy__ttoo +23. Choosing the cryptographic key of the recipient - Type: boolean - Default: no + Usage: crypt-hook pattern keyid - Affects the behaviour of the _r_e_p_l_y function when replying to messages - from mailing lists. When set, if the ``Reply-To:'' field is set to - the same value as the ``To:'' field, Mutt assumes that the ``Reply- - To:'' field was set by the mailing list to automate responses to the - list, and will ignore this field. To direct a response to the mailing - list when this option is set, use the _l_i_s_t_-_r_e_p_l_y function; _g_r_o_u_p_-_r_e_p_l_y - will reply to both the sender and the list. + When encrypting messages with PGP or OpenSSL, you may want to associate a + certain key with a given e-mail address automatically, either because the + recipient's public key can't be deduced from the destination address, or + because, for some reasons, you need to override the key Mutt-ng + wouldnormally use. The crypt-hook command provides a method by which you + can specify the ID of the public key to be used when encrypting messages + to a certain recipient. - 66..33..7788.. iimmaapp__aauutthheennttiiccaattoorrss + The meaning of "key id" is to be taken broadly in this context: You can + either put a numerical key ID here, an e-mail address, or even just a real + name. - Type: string - Default: "" +24. Adding key sequences to the keyboard buffer - This is a colon-delimited list of authentication methods mutt may - attempt to use to log in to an IMAP server, in the order mutt should - try them. Authentication methods are either 'login' or the right side - of an IMAP 'AUTH=xxx' capability string, eg 'digest-md5', parameter is - unset (the default) mutt will try all available methods, in order from - most-secure to least-secure. + Usage: push string - Example: set imap_authenticators="gssapi:cram-md5:login" + This command adds the named string to the keyboard buffer. The string may + contain control characters, key names and function names like the sequence + string in the macro command. You may use it to automatically run a + sequence of commands at startup, or when entering certain folders. - NNoottee:: Mutt will only fall back to other authentication methods if the - previous methods are unavailable. If a method is available but - authentication fails, mutt will not connect to the IMAP server. +25. Executing functions - 66..33..7799.. iimmaapp__ddeelliimm__cchhaarrss + Usage: exec function [ function ... ] - Type: string - Default: "/." + This command can be used to execute any function. Functions are listed in + the functions. ``exec function'' is equivalent to ``push ''. - This contains the list of characters which you would like to treat as - folder separators for displaying IMAP paths. In particular it helps in - using the '=' shortcut for your _f_o_l_d_e_r variable. +26. Message Scoring - 66..33..8800.. iimmaapp__ffoorrccee__ssssll + Usage: score pattern value Usage: unscore pattern [ pattern ... ] - Type: boolean - Default: no + In situations where you have to cope with a lot of emails, e.g. when you + read many different mailing lists, and take part in discussions, it is + always useful to have the important messages marked and the annoying + messages or the ones that you aren't interested in deleted. For this + purpose, mutt-ng features a mechanism called ``scoring''. - If this variable is set, Mutt will always use SSL when connecting to - IMAP servers. + When you use scoring, every message has a base score of 0. You can then + use the score command to define patterns and a positive or negative value + associated with it. When a pattern matches a message, the message's score + will be raised or lowered by the amount of the value associated with the + pattern. - 66..33..8811.. iimmaapp__hhoommee__nnaammeessppaaccee + score "~f nion@muttng\.org" 50 + score "~f @sco\.com" -100 - Type: string - Default: "" + If the pattern matches, it is also possible to set the score value of the + current message to a certain value and then stop evaluation: - You normally want to see your personal folders alongside your INBOX in - the IMAP browser. If you see something else, you may set this variable - to the IMAP path to your folders. + score "~f santaclaus@northpole\.int" =666 - 66..33..8822.. iimmaapp__kkeeeeppaalliivvee + What is important to note is that negative score values will be rounded up + to 0. - Type: number - Default: 900 + To make scoring actually useful, the score must be applied in some way. + That's what the score thresholds are for. Currently, there are three score + thresholds: - This variable specifies the maximum amount of time in seconds that - mutt will wait before polling open IMAP connections, to prevent the - server from closing them before mutt has finished with them. The - default is well within the RFC-specified minimum amount of time (30 - minutes) before a server is allowed to do this, but in practice the - RFC does get violated every now and then. Reduce this number if you - find yourself getting disconnected from your IMAP server due to - inactivity. + o flag threshold: when a message has a score value equal or higher than + the flag threshold, it will be flagged. - 66..33..8833.. iimmaapp__lliisstt__ssuubbssccrriibbeedd + o read threshold: when a message has a score value equal or lower than + the read threshold, it will be marked as read. - Type: boolean - Default: no + o delete threshold: when a message has a score value equal or lower than + the delete threshold, it will be marked as deleted. + + These three thresholds can be set via the variables score-threshold-flag + ,score-threshold-read, score-threshold-delete and. By default, + score-threshold-read and score-threshold-delete are set to -1, which means + that in the default threshold configuration no message will ever get + marked as read or deleted. + + Scoring gets especially interesting when combined with the color command + and the ˜n pattern: + + color index black yellow "~n 10-" + color index red yellow "~n 100-" + + The rules above mark all messages with a score between 10 and 99 with + black and yellow, and messages with a score greater or equal 100 with red + and yellow. This might be unusual to you if you're used to e.g. slrn's + scoring mechanism, but it is more flexible, as it visually marks different + scores. + +27. Spam detection + + Usage: spam pattern format Usage: nospam pattern + + Mutt-ng has generalized support for external spam-scoring filters. By + defining your spam patterns with the spam and nospam commands, you can + limit, search, and sort your mail based on its spam attributes, as + determined by the external filter. You also can display the spam + attributes in your index display using the %H selector in the index-format + variable. (Tip: try %?H?[%H] ? to display spam tags only when they are + defined for a given message.) + + Your first step is to define your external filter's spam patterns using + the spam command. pattern should be a regular expression that matches a + header in a mail message. If any message in the mailbox matches this + regular expression, it will receive a ``spam tag'' or ``spam attribute'' + (unless it also matches a nospam pattern -- see below.) The appearance of + this attribute is entirely up to you, and is governed by the format + parameter. format can be any static text, but it also can include + back-references from the pattern expression. (A regular expression + ``back-reference'' refers to a sub-expression contained within + parentheses.) %1 is replaced with the first back-reference in the regex, + %2 with the second, etc. + + If you're using multiple spam filters, a message can have more than one + spam-related header. You can define spam patterns for each filter you use. + If a message matches two or more of these patterns, and the + $spam_separator variable is set to a string, then the message's spam tag + will consist of all the format strings joined together, with the value of + $spam_separator separating them. + + For example, suppose I use DCC, SpamAssassin, and PureMessage. I might + define these spam settings: + + spam "X-DCC-.*-Metrics:.*(....)=many" "90+/DCC-%1" + spam "X-Spam-Status: Yes" "90+/SA" + spam "X-PerlMX-Spam: .*Probability=([0-9]+)%" "%1/PM" + set spam_separator=", " + + If I then received a message that DCC registered with ``many'' hits under + the ``Fuz2'' checksum, and that PureMessage registered with a 97% + probability of being spam, that message's spam tag would read90+/DCC-Fuz2, + 97/PM. (The four characters before ``=many'' in a DCC report indicate the + checksum used -- in this case, ``Fuz2''.) + + If the $spam_separator variable is unset, then each spam pattern match + supersedes the previous one. Instead of getting joined format strings, + you'll get only the last one to match. + + The spam tag is what will be displayed in the index when you use %H in the + $index_format variable. It's also the string that the ˜H pattern-matching + expression matches against for search and limit functions. And it's what + sorting by spam attribute will use as a sort key. + + That's a pretty complicated example, and most people's actual environments + will have only one spam filter. The simpler your configuration, the more + effective mutt can be, especially when it comes to sorting. + + Generally, when you sort by spam tag, mutt will sort lexically -- that is, + by ordering strings alphnumerically. However, if a spam tag begins with a + number, mutt will sort numerically first, and lexically only when two + numbers are equal in value. (This is like UNIX's sort -n.) A message with + no spam attributes at all -- that is, one that didn't match any of your + spam patterns -- is sorted at lowest priority. Numbers are sorted next, + beginning with 0 and ranging upward. Finally, non-numeric strings are + sorted, with ``a'' taking lowerpriority than ``z''. Clearly, in general, + sorting by spam tags is most effective when you can coerce your filter to + give you a raw number. But in case you can't, mutt can still do something + useful. + + The nospam command can be used to write exceptions to spam patterns. If a + header pattern matches something in a spam command, but you nonetheless do + not want it to receive a spam tag, you can list amore precise pattern + under a nospam command. + + If the pattern given to nospam is exactly the same as the pattern on an + existing spam list entry, the effect will be to remove the entry from the + spam list, instead of adding an exception. Likewise, if the pattern for a + spam command matches an entry on the nospam list, that nospam entry will + be removed. If the pattern for nospam is ``*'', all entries on both lists + will be removed. This might be the default action if you use spam and + nospam in conjunction with a folder-hook . + + You can have as many spam or nospam commands as you like. You can even do + your own primitive spam detection within mutt -- for example, if you + consider all mail from MAILER-DAEMON to be spam, you can use a spam + command like this: + + spam "^From: .*MAILER-DAEMON" "999" + +28. Setting variables + + Usage: set [no|inv]variable [=value] [ variable ... ] Usage: toggle + variable [variable ... ] Usage: unset variable [variable ... ] Usage: + reset variable [variable ... ] + + This command is used to set (and unset) variables .There are four basic + types of variables: boolean, number, string and quadoption. boolean + variables can be set (true) or unset (false). number variables can be + assigned a positive integer value. + + string variables consist of any number of printable characters. strings + must be enclosed in quotes if they contain spaces or tabs. You may also + use the ``C'' escape sequences \n and \t for newline and tab, + respectively. + + quadoption variables are used to control whether or not to be prompted for + certain actions, or to specify a default action. A value of yes will cause + the action to be carried out automatically as if you had answered yes to + the question. Similarly, a value of no will cause the the action to be + carried out as if you had answered ``no.'' A value of ask-yes will cause a + prompt with a default answer of ``yes'' and ask-no will provide a default + answer of ``no.'' - This variable configures whether IMAP folder browsing will look for - only subscribed folders or all folders. This can be toggled in the - IMAP browser with the _t_o_g_g_l_e_-_s_u_b_s_c_r_i_b_e_d function. + Prefixing a variable with ``no'' will unset it. Example: set noaskbcc . - 66..33..8844.. iimmaapp__ppaassss + For boolean variables, you may optionally prefix the variable name with + inv to toggle the value (on or off). This is useful when writing macros. + Example: set invsmart_wrap. - Type: string - Default: "" + The toggle command automatically prepends the inv prefix to all specified + variables. - Specifies the password for your IMAP account. If unset, Mutt will - prompt you for your password when you invoke the fetch-mail function. - WWaarrnniinngg: you should only use this option when you are on a fairly - secure machine, because the superuser can read your muttrc even if you - are the only one who can read the file. + The unset command automatically prepends the no prefix to all specified + variables. - 66..33..8855.. iimmaapp__ppaassssiivvee + Using the enter-command function in the index menu, you can query the + value of a variable by prefixing the name of the variable with a question + mark: - Type: boolean - Default: yes + set ?allow_8bit - When set, mutt will not open new IMAP connections to check for new - mail. Mutt will only check for new mail over existing IMAP - connections. This is useful if you don't want to be prompted to - user/password pairs on mutt invocation, or if opening the connection - is slow. + The question mark is actually only required for boolean and quadoption + variables. - 66..33..8866.. iimmaapp__ppeeeekk + The reset command resets all given variables to the compile time defaults + (hopefully mentioned in this manual). If you use the command set and + prefix the variable with ``&'' this has the same behavior as the reset + command. - Type: boolean - Default: yes + With the reset command there exists the special variable ``all'', which + allows you to reset all variables to their system defaults. - If set, mutt will avoid implicitly marking your mail as read whenever - you fetch a message from the server. This is generally a good thing, - but can make closing an IMAP folder somewhat slower. This option - exists to appease speed freaks. +29. Reading initialization commands from another file - 66..33..8877.. iimmaapp__sseerrvveerrnnooiissee + Usage: source filename [ filename ... ] - Type: boolean - Default: yes + This command allows the inclusion of initialization commands from other + files. For example, I place all of my aliases in ˜/.mail_aliases so that + I can make my ˜/.muttrc readable and keep my aliases private. - When set, mutt will display warning messages from the IMAP server as - error messages. Since these messages are often harmless, or generated - due to configuration problems on the server which are out of the - users' hands, you may wish to suppress them at some point. + If the filename begins with a tilde (``˜''), it will be expanded to the + path of your home directory. - 66..33..8888.. iimmaapp__uusseerr + If the filename ends with a vertical bar (|), then filename is considered + to be an executable program from which to read input (eg. source + ˜/bin/myscript|). - Type: string - Default: "" +30. Removing hooks - Your login name on the IMAP server. + Usage: unhook [ * | hook-type ] - This variable defaults to your user name on the local machine. + This command permits you to flush hooks you have previously defined. You + can either remove all hooks by giving the ``*'' character as an argument, + or you can remove all hooks of a specific type by saying something like + unhook send-hook. - 66..33..8899.. iimmpplliicciitt__aauuttoovviieeww +31. Sharing Setups - Type: boolean - Default: no + 31.1. Character Sets - If set to ``yes'', mutt will look for a mailcap entry with the - copiousoutput flag set for _e_v_e_r_y MIME attachment it doesn't have an - internal viewer defined for. If such an entry is found, mutt will use - the viewer defined in that entry to convert the body part to text - form. + As users may run mutt-ng on different systems, the configuration must be + maintained because it's likely that people want to use the setup + everywhere they use mutt-ng. And mutt-ng tries to help where it can. - 66..33..9900.. iinncclluuddee + To not produce conflicts with different character sets, mutt-ng allows + users to specify in which character set their configuration files are + encoded. Please note that while reading the configuration files, this is + only respected after the corresponding declaration appears. It's advised + to put the following at the very beginning of a users muttngrc: - Type: quadoption - Default: ask-yes + set config_charset = "..." - Controls whether or not a copy of the message(s) you are replying to - is included in your reply. + and replacing the dots with the actual character set. To avoid problems + while maintaining the setup, vim user's may want to use modelines as show + in: - 66..33..9911.. iinnddeenntt__ssttrriinngg + # vim:fileencoding=...: - Type: string - Default: "> " + while, again, replacing the dots with the appropriate name. This tells vim + as which character set to read and save the file. - Specifies the string to prepend to each line of text quoted in a - message to which you are replying. You are strongly encouraged not to - change this value, as it tends to agitate the more fanatical netizens. + 31.2. Modularization - 66..33..9922.. iinnddeexx__ffoorrmmaatt + ``Modularization'' means to divide the setup into several files while + sorting the options or commands by topic. Especially for longer setups + (e.g. with many hooks), this helps maintaining it and solving trouble. - Type: string - Default: "%4C %Z %{%b %d} %-15.15L (%?l?%4l&%4c?) %s" + When using separation, setups may be, as a whole or in fractions, shared + over different systems. - This variable allows you to customize the message index display to - your personal taste. + 31.3. Conditional parts - ``Format strings'' are similar to the strings used in the ``C'' - function printf to format output (see the man page for more detail). - The following sequences are defined in Mutt: + When using a configuration on different systems, the user may not always + have influence on how mutt-ng is installed and which features it includes. - %%aa address of the author + To solve this, mutt-ng contain a feature based on the ``ifdef'' patch + written for mutt. Its basic syntax is: - %%AA reply-to address (if present; otherwise: address of author) + ifdef + ifndef - %%bb filename of the original message folder (think mailBox) + ...whereby can be one of: - %%BB the list to which the letter was sent, or else the folder name - (%b). + o a function name - %%cc number of characters (bytes) in the message + o a variable name - %%CC current message number + o a menu name - %%dd date and time of the message in the format specified by - ``date_format'' converted to sender's time zone + o a feature name - %%DD date and time of the message in the format specified by - ``date_format'' converted to the local time zone + All available functions, variables and menus are documented elsewhere in + this manual but ``features'' is specific to these two commands. To test + for one, prefix one of the following keywords with feature_: ncurses, + slang, iconv, idn, dotlock, standalone, pop, nntp, imap, ssl, gnutls, + sasl, sasl2, libesmtp, compressed, color, classic_pgp, classic_smime, + gpgme, header_cache - %%ee current message number in thread + As an example, one can use the following in ˜/.muttngrc: - %%EE number of messages in current thread + ifdef feature_imap 'source ~/.mutt-ng/setup-imap' + ifdef feature_pop 'source ~/.mutt-ng/setup-pop' + ifdef feature_nntp 'source ~/.mutt-ng/setup-nntp' - %%ff entire From: line (address + real name) + ...to only source ˜/.mutt-ng/setup-imap if IMAP support is built in, only + source ˜/.mutt-ng/setup-pop if POP support is built in and only source + ˜/.mutt-ng/setup-nntp if NNTP support is built in. - %%FF author name, or recipient name if the message is from you + An example for testing for variable names can be used if users use + different revisions of mutt-ng whereby the older one may not have a + certain variable. To test for the availability of imap-mail-check , use: - %%gg newsgroup name (if compiled with nntp support) + ifdef imap_mail_check 'set imap_mail_check = 300' - %%ii message-id of the current message + Provided for completeness is the test for menu names. To set + pager-index-lines only if the pager menu is available, use: - %%ll number of lines in the message (does not work with maildir, mh, - and possibly IMAP folders) + ifdef pager 'set pager_index_lines = 10' - %%LL If an address in the To or CC header field matches an address - defined by the users ``subscribe'' command, this displays "To - ", otherwise the same as %F. + For completeness, too, the opposite of ifdef is provided: ifndef which + only executes the command if the test fails. For example, the following + two examples are equivalent: - %%mm total number of message in the mailbox + ifdef feature_ncurses 'source ~/.mutt-ng/setup-ncurses' + ifndef feature_ncurses 'source ~/.mutt-ng/setup-slang' - %%MM number of hidden messages if the thread is collapsed. + ...and... - %%NN message score + ifdef feature_slang 'source ~/.mutt-ng/setup-slang' + ifndef feature_slang 'source ~/.mutt-ng/setup-ncurses' - %%nn author's real name (or address if missing) +32. Obsolete Variables - %%OO (_O_riginal save folder) Where mutt would formerly have stashed - the message: list name or recipient name if no list + In the process of ensuring and creating more consistency, many variables + have been renamed and some of the old names were already removed. Please + see sect-obsolete for a complete list. - %%ss subject of the message +Chapter 4. Advanced Usage - %%SS status of the message (N/D/d/!/r/*) + Table of Contents - %%tt `to:' field (recipients) + 1. Regular Expressions - %%TT the appropriate character from the ``$to_chars'' string + 2. Patterns - %%uu user (login) name of the author + 2.1. Complex Patterns - %%vv first name of the author, or the recipient if the message is - from you + 2.2. Patterns and Dates - %%WW name of organization of author (`organization:' field) + 3. Format Strings - %%yy `x-label:' field, if present + 3.1. Introduction - %%YY `x-label' field, if present, and (1) not at part of a thread - tree, (2) at the top of a thread, or (3) `x-label' is different - from preceding message's `x-label'. + 3.2. Conditional Expansion - %%ZZ message status flags + 3.3. Modifications and Padding - %%{{ffmmtt}} - the date and time of the message is converted to sender's time - zone, and ``fmt'' is expanded by the library function - ``strftime''; a leading bang disables locales + 4. Using Tags - %%[[ffmmtt]] - the date and time of the message is converted to the local time - zone, and ``fmt'' is expanded by the library function - ``strftime''; a leading bang disables locales + 5. Using Hooks - %%((ffmmtt)) - the local date and time when the message was received. ``fmt'' - is expanded by the library function ``strftime''; a leading bang - disables locales + 5.1. Message Matching in Hooks - %%<> - the current local time. ``fmt'' is expanded by the library - function ``strftime''; a leading bang disables locales. + 6. Using the sidebar - %%>>XX - right justify the rest of the string and pad with character "X" + 7. External Address Queries - %%||XX - pad to the end of the line with character "X" + 8. Mailbox Formats - See also: ````$to_chars''''. + 9. Mailbox Shortcuts - 66..33..9933.. iinneewwss + 10. Handling Mailing Lists - Type: path - Default: "" + 11. Editing threads - If set, specifies the program and arguments used to deliver news - posted by Mutt. Otherwise, mutt posts article using current - connection to news server. The following printf-style sequence is - understood: + 11.1. Linking threads - %s newsserver name + 11.2. Breaking threads - Example: set inews="/usr/local/bin/inews -hS" + 12. Delivery Status Notification (DSN) Support - 66..33..9944.. iissppeellll + 13. POP3 Support (OPTIONAL) - Type: path - Default: "/usr/bin/ispell" + 14. IMAP Support (OPTIONAL) - How to invoke ispell (GNU's spell-checking software). + 14.1. The Folder Browser - 66..33..9955.. kkeeeepp__ffllaaggggeedd + 14.2. Authentication - Type: boolean - Default: no + 15. NNTP Support (OPTIONAL) - If set, read messages marked as flagged will not be moved from your - spool mailbox to your ````$mbox'''' mailbox, or as a result of a - ````mbox-hook'''' command. + 15.1. Again: Scoring - 66..33..9966.. llooccaallee + 16. SMTP Support (OPTIONAL) - Type: string - Default: "C" + 17. Managing multiple IMAP/POP/NNTP accounts (OPTIONAL) - The locale used by _s_t_r_f_t_i_m_e_(_3_) to format dates. Legal values are the - strings your system accepts for the locale variable _L_C___T_I_M_E. + 18. Start a WWW Browser on URLs (EXTERNAL) - 66..33..9977.. mmaaiill__cchheecckk + 19. Compressed folders Support (OPTIONAL) - Type: number - Default: 5 + 19.1. Open a compressed mailbox for reading - This variable configures how often (in seconds) mutt should look for - new mail. + 19.2. Write a compressed mailbox - 66..33..9988.. mmaaiillccaapp__ppaatthh + 19.3. Append a message to a compressed mailbox - Type: string - Default: "" + 19.4. Encrypted folders - This variable specifies which files to consult when attempting to - display MIME bodies not directly supported by Mutt. +1. Regular Expressions - 66..33..9999.. mmaaiillccaapp__ssaanniittiizzee + All string patterns in Mutt-ng including those in more complex patterns + must be specified using regular expressions (regexp) in the ``POSIX + extended'' syntax (which is more or less the syntax used by egrep and GNU + awk). For your convenience, we have included below a brief description of + this syntax. - Type: boolean - Default: yes + The search is case sensitive if the pattern contains at least one upper + case letter, and case insensitive otherwise. Note that ``\'' must be + quoted if used for a regular expression in an initialization command: + ``\\''. - If set, mutt will restrict possible characters in mailcap % expandos - to a well-defined set of safe characters. This is the safe setting, - but we are not sure it doesn't break some more advanced MIME stuff. + A regular expression is a pattern that describes a set of strings. Regular + expressions are constructed analogously to arithmetic expressions, by + using various operators to combine smaller expressions. - DDOONN''TT CCHHAANNGGEE TTHHIISS SSEETTTTIINNGG UUNNLLEESSSS YYOOUU AARREE RREEAALLLLYY SSUURREE WWHHAATT YYOOUU AARREE - DDOOIINNGG!! + Note that the regular expression can be enclosed/delimited by either " or + ' which is useful if the regular expression includes a white-space + character. See muttrc-syntax for more information on " and ' delimiter + processing. To match a literal " or ' you must preface it with \ + (backslash). - 66..33..110000.. mmaaiillddiirr__ttrraasshh + The fundamental building blocks are the regular expressions that match a + single character. Most characters, including all letters and digits, are + regular expressions that match themselves. Any metacharacter with special + meaning may be quoted by preceding it with a backslash. - Type: boolean - Default: no + The period ``.'' matches any single character. The caret ``^'' andthe + dollar sign ``$'' are metacharacters that respectively match the empty + string at the beginning and end of a line. - If set, messages marked as deleted will be saved with the maildir - (T)rashed flag instead of unlinked. NNOOTTEE:: this only applies to - maildir-style mailboxes. Setting it will have no effect on other - mailbox types. + A list of characters enclosed by ``['' and ``]'' matches any single + character in that list; if the first character of the list is a caret + ``^'' then it matches any character not in the list. For example, the + regular expression [0123456789] matches any single digit. A range of ASCII + characters may be specified by giving the first and last characters, + separated by a hyphen ``-''. Most metacharacters lose their special + meaning inside lists. To include a literal ``]'' place it first in the + list. Similarly, to include a literal ``^'' place it anywhere but first. + Finally, to include a literal hyphen ``-'' place it last. - 66..33..110011.. mmaarrkk__oolldd + Certain named classes of characters are predefined. Character classes + consist of ``[:'', a keyword denoting the class, and ``:]''. The following + classes are defined by the POSIX standard: - Type: boolean - Default: yes + [:alnum:] - Controls whether or not mutt marks _n_e_w uunnrreeaadd messages as _o_l_d if you - exit a mailbox without reading them. With this option set, the next - time you start mutt, the messages will show up with an "O" next to - them in the index menu, indicating that they are old. + Alphanumeric characters. - 66..33..110022.. mmaarrkkeerrss + [:alpha:] - Type: boolean - Default: yes + Alphabetic characters. - Controls the display of wrapped lines in the internal pager. If set, a - ``+'' marker is displayed at the beginning of wrapped lines. Also see - the ````$smart_wrap'''' variable. + [:blank:] - 66..33..110033.. mmaasskk + Space or tab characters. - Type: regular expression - Default: "!^\.[^.]" + [:cntrl:] - A regular expression used in the file browser, optionally preceded by - the _n_o_t operator ``!''. Only files whose names match this mask will - be shown. The match is always case-sensitive. + Control characters. - 66..33..110044.. mmbbooxx + [:digit:] - Type: path - Default: "~/mbox" + Numeric characters. - This specifies the folder into which read mail in your - ````$spoolfile'''' folder will be appended. + [:graph:] - 66..33..110055.. mmbbooxx__ttyyppee + Characters that are both printable and visible. (A space is + printable, but not visible, while an ``a'' is both.) - Type: folder magic - Default: mbox + [:lower:] - The default mailbox type used when creating new folders. May be any of - mbox, MMDF, MH and Maildir. + Lower-case alphabetic characters. - 66..33..110066.. mmeettoooo + [:print:] - Type: boolean - Default: no + Printable characters (characters that are not control characters.) - If unset, Mutt will remove your address (see the ``alternates'' - command) from the list of recipients when replying to a message. + [:punct:] - 66..33..110077.. mmeennuu__ssccrroollll + Punctuation characters (characters that are not letter, digits, + control characters, or space characters). - Type: boolean - Default: no + [:space:] - When _s_e_t, menus will be scrolled up or down one line when you attempt - to move across a screen boundary. If _u_n_s_e_t, the screen is cleared and - the next or previous page of the menu is displayed (useful for slow - links to avoid many redraws). + Space characters (such as space, tab and formfeed, to name a few). - 66..33..110088.. mmeettaa__kkeeyy + [:upper:] - Type: boolean - Default: no + Upper-case alphabetic characters. - If set, forces Mutt to interpret keystrokes with the high bit (bit 8) - set as if the user had pressed the ESC key and whatever key remains - after having the high bit removed. For example, if the key pressed - has an ASCII value of 0xf4, then this is treated as if the user had - pressed ESC then ``x''. This is because the result of removing the - high bit from ``0xf4'' is ``0x74'', which is the ASCII character - ``x''. + [:xdigit:] - 66..33..110099.. mmhh__ppuurrggee + Characters that are hexadecimal digits. - Type: boolean - Default: no + A character class is only valid in a regular expression inside the + brackets of a character list. Note that the brackets in these class names + are part of the symbolic names, and must be included in addition to the + brackets delimiting the bracket list. For example, [[:digit:]] is + equivalent to [0-9]. - When unset, mutt will mimic mh's behaviour and rename deleted messages - to _,_<_o_l_d _f_i_l_e _n_a_m_e_> in mh folders instead of really deleting them. If - the variable is set, the message files will simply be deleted. + Two additional special sequences can appear in character lists. These + apply to non-ASCII character sets, which can have single symbols + (calledcollating elements) that are represented with more than one + character, as well as several characters that are equivalent for collating + or sorting purposes: - 66..33..111100.. mmhh__sseeqq__ffllaaggggeedd + Collating Symbols - Type: string - Default: "flagged" + A collating symbol is a multi-character collating element enclosed + in ``[.'' and ``.]''. For example, if ``ch'' is a collating + element, then [[.ch.]] is a regexp that matches this collating + element, while [ch] is a regexp that matches either ``c'' or + ``h''. - The name of the MH sequence used for flagged messages. + Equivalence Classes - 66..33..111111.. mmhh__sseeqq__rreepplliieedd + An equivalence class is a locale-specific name for a list of + characters that are equivalent. The name is enclosed in ``[='' and + ``=]''. For example, the name ``e'' might be used to represent all + of ``è'' ``é'' and ``e''. In this case, [[=e=]] is a regexp that + matches any of ``è'', ``é'' and ``e''. - Type: string - Default: "replied" + A regular expression matching a single character may be followed by one of + several repetition operators: - The name of the MH sequence used to tag replied messages. + ? - 66..33..111122.. mmhh__sseeqq__uunnsseeeenn + The preceding item is optional and matched at most once. - Type: string - Default: "unseen" + * - The name of the MH sequence used for unseen messages. + The preceding item will be matched zero or more times. - 66..33..111133.. mmiimmee__ffoorrwwaarrdd + + - Type: quadoption - Default: no + The preceding item will be matched one or more times. - When set, the message you are forwarding will be attached as a - separate MIME part instead of included in the main body of the - message. This is useful for forwarding MIME messages so the receiver - can properly view the message as it was delivered to you. If you like - to switch between MIME and not MIME from mail to mail, set this - variable to ask-no or ask-yes. + {n} - Also see ````$forward_decode'''' and ````$mime_forward_decode''''. + The preceding item is matched exactly n times. - 66..33..111144.. mmiimmee__ffoorrwwaarrdd__ddeeccooddee + {n,} - Type: boolean - Default: no + The preceding item is matched n or more times. - Controls the decoding of complex MIME messages into text/plain when - forwarding a message while ````$mime_forward'''' is _s_e_t. Otherwise - ````$forward_decode'''' is used instead. + {,m} - 66..33..111155.. mmiimmee__ffoorrwwaarrdd__rreesstt + The preceding item is matched at most m times. - Type: quadoption - Default: yes + {n,m} - When forwarding multiple attachments of a MIME message from the - recvattach menu, attachments which cannot be decoded in a reasonable - manner will be attached to the newly composed message if this option - is set. + The preceding item is matched at least n times, but no more than m + times. - 66..33..111166.. mmiimmee__ssuubbjjeecctt + Two regular expressions may be concatenated; the resulting regular + expression matches any string formed by concatenating two substrings that + respectively match the concatenated subexpressions. - Type: boolean - Default: yes + Two regular expressions may be joined by the infix operator ``|''; the + resulting regular expression matches any string matching either + subexpression. - If _u_n_s_e_t, 8-bit ``subject:'' line in article header will not be - encoded according to RFC2047 to base64. This is useful when message - is Usenet article, because MIME for news is nonstandard feature. + Repetition takes precedence over concatenation, which in turn takes + precedence over alternation. A whole subexpression may be enclosed in + parentheses to override these precedence rules. - 66..33..111177.. mmiixx__eennttrryy__ffoorrmmaatt + Note: If you compile Mutt-ng with the GNU rx package, the following + operators may also be used in regular expressions: - Type: string - Default: "%4n %c %-16s %a" + \\y - This variable describes the format of a remailer line on the mixmaster - chain selection screen. The following printf-like sequences are - supported: + Matches the empty string at either the beginning or the end of a + word. - %%nn The running number on the menu. + \\B - %%cc Remailer capabilities. + Matches the empty string within a word. - %%ss The remailer's short name. + \\< - %%aa The remailer's e-mail address. + Matches the empty string at the beginning of a word. - 66..33..111188.. mmiixxmmaasstteerr + \\> - Type: path - Default: "mixmaster" + Matches the empty string at the end of a word. - This variable contains the path to the Mixmaster binary on your - system. It is used with various sets of parameters to gather the list - of known remailers, and to finally send a message through the - mixmaster chain. + \\w - 66..33..111199.. mmoovvee + Matches any word-constituent character (letter, digit, or + underscore). - Type: quadoption - Default: ask-no + \\W - Controls whether you will be asked to confirm moving read messages - from your spool mailbox to your ````$mbox'''' mailbox, or as a result - of a ````mbox-hook'''' command. + Matches any character that is not word-constituent. - 66..33..112200.. mmeessssaaggee__ffoorrmmaatt + \\` - Type: string - Default: "%s" + Matches the empty string at the beginning of a buffer (string). - This is the string displayed in the ``attachment'' menu for - attachments of type message/rfc822. For a full listing of defined - printf()-like sequences see the section on ````$index_format''''. + \\' - 66..33..112211.. nnaarrrrooww__ttrreeee + Matches the empty string at the end of a buffer. - Type: boolean - Default: no + Please note however that these operators are not defined by POSIX, so they + may or may not be available in stock libraries on various systems. - This variable, when set, makes the thread tree narrower, allowing - deeper threads to fit on the screen. +2. Patterns - 66..33..112222.. nneewwss__ccaacchhee__ddiirr + Mutt-ng's pattern language provides a simple yet effective way to set up + rules to match messages, e.g. for operations like tagging and scoring. A + pattern consists of one or more sub-pattern, which can be logically + grouped, ORed, and negated. For a complete listing of these patterns, + please refer to table patterns in the Reference chapter. - Type: path - Default: "~/.mutt" + It must be noted that in this table, EXPR is a regular expression. For + ranges, the forms <[MAX], >>[MIN], [MIN]- and -[MAX] are also possible. - This variable pointing to directory where Mutt will save cached news - articles headers in. If _u_n_s_e_t, headers will not be saved at all and - will be reloaded each time when you enter to newsgroup. + 2.1. Complex Patterns - 66..33..112233.. nneewwss__sseerrvveerr + It is possible to combine several sub-patterns to a more complex pattern. + The most simple possibility is to logically AND several patterns by + stringing them together: - Type: string - Default: "" + ~s 'SPAM' ~U - This variable specifies domain name or address of NNTP server. It - defaults to the newsserver specified in the environment variable - $NNTPSERVER or contained in the file /etc/nntpserver. You can also - specify username and an alternative port for each newsserver, ie: + The pattern above matches all messages that contain ``SPAM'' in the + subject and are unread. - [nntp[s]://][username[:password]@]newsserver[:port] + To logical OR patterns, simply use the | operator. This one especially + useful when using local groups: - 66..33..112244.. nneewwssrrcc + ~f ("nion@muttng\.org"|"ak@muttng\.org"|"pdmef@muttng\.org") + (~b mutt-ng|~s Mutt-ng) + !~x '@synflood\.at' - Type: path - Default: "~/.newsrc" + The first pattern matches all messages that were sent by one of the + mutt-ng maintainers, while the seconds pattern matches all messages that + contain ``mutt-ng'' in the message body or ``Mutt-ng'' in the subject. The + third pattern matches all messages that do not contain ``@synflood\.at'' + in the References: header, i.e. messages that are not an (indirect) reply + to one of my messages. A pattern can be logicall negated using the ! + operator. - The file, containing info about subscribed newsgroups - names and - indexes of read articles. The following printf-style sequence is - understood: + 2.2. Patterns and Dates - %s newsserver name + When using dates in patterns, the dates must be specified in a special + format, i.e. DD/MM/YYYY. If you don't specify month or year, they default + to the current month or year. When using date ranges, and you specify only + the minimum or the maximum, the specified date will be excluded, e.g. + 01/06/2005- matches against all messages after Juni 1st, 2005. - 66..33..112255.. nnnnttpp__ccoonntteexxtt + It is also possible to use so-called ``error margins'' when specifying + date ranges. You simply specify a date, and then the error margin. This + margin needs to contain the information whether it goes ``forth'' or + ``back'' in time, by using + and -. Then follows a number and a unit, i.e. + y for years, m for months, w for weeks and d for days. If you use the + special * sign, it means that the error margin goes to both``directions'' + in time. - Type: number - Default: 1000 + ~d 01/01/2005+1y + ~d 18/10/2004-2w + ~d 28/12/2004*1d - This variable defines number of articles which will be in index when - newsgroup entered. If active newsgroup have more articles than this - number, oldest articles will be ignored. Also controls how many - articles headers will be saved in cache when you quit newsgroup. + The first pattern matches all dates between January 1st, 2005 and January + 1st 2006. The second pattern matches all dates between October 18th, 2004 + and October 4th 2004 (2 weeks before 18/10/2004), while the third pattern + matches all dates 1 day around December 28th, 2004 (i.e. Dec 27th, 28th + and 29th). - 66..33..112266.. nnnnttpp__llooaadd__ddeessccrriippttiioonn + Relative dates are also very important, as they make it possible to + specify date ranges between a fixed number of units and the current date. + How this works can be seen in the following example: - Type: boolean - Default: yes + ~d >2w # messages older than two weeks + ~d <3d # messages newer than 3 days + ~d =1m # messages that are exactly one month old - This variable controls whether or not descriptions for each newsgroup - must be loaded when newsgroup is added to list (first time list - loading or new newsgroup adding). +3. Format Strings - 66..33..112277.. nnnnttpp__uusseerr + 3.1. Introduction - Type: string - Default: "" + The so called Format Strings offer great flexibility when configuring + mutt-ng. In short, they describe what items to print out how in menus and + status messages. - Your login name on the NNTP server. If _u_n_s_e_t and NNTP server requires - authentification, Mutt will prompt you for your account name when you - connect to newsserver. + Basically, they work as this: for different menus and bars, there's a + variable specifying the layout. For every item available, there is a so + called expando. - 66..33..112288.. nnnnttpp__ppaassss + For example, when running mutt-ng on different machines or different + versions for testing purposes, it may be interesting to have the following + information always printed on screen when one is in the index: - Type: string - Default: "" + o the current hostname - Your password for NNTP account. + o the current mutt-ng version number - 66..33..112299.. nnnnttpp__ppoollll + The setting for the status bar of the index is controlled via the + status-format variable. For the hostname and version string, there's an + expando for $status_format: %h expands to the hostname and %v to the + version string. When just configuring: - Type: number - Default: 60 + set status_format = "%v on %h: ..." - The time in seconds until any operations on newsgroup except post new - article will cause recheck for new news. If set to 0, Mutt will - recheck newsgroup on each operation in index (stepping, read article, - etc.). + mutt-ng will replace the sequence %v with the version string and %h with + the host's name. When you are, for example, running mutt-ng version 1.5.9i + on host mailhost, you'll see the following when you're in the index: - 66..33..113300.. nnnnttpp__rreeccoonnnneecctt + Mutt-ng 1.5.9i on mailhost: ... - Type: quadoption - Default: ask-yes + In the index, there're more useful information one could want to see: - Controls whether or not Mutt will try to reconnect to newsserver when - connection lost. + o which mailbox is open - 66..33..113311.. ppaaggeerr + o how man new, flagged or postponed messages - Type: path - Default: "builtin" + o ... - This variable specifies which pager you would like to use to view - messages. builtin means to use the builtin pager, otherwise this - variable should specify the pathname of the external pager you would - like to use. + To include the mailbox' name is as easy as: - Using an external pager may have some disadvantages: Additional - keystrokes are necessary because you can't call mutt functions - directly from the pager, and screen resizes cause lines longer than - the screen width to be badly formatted in the help menu. + set status_format = "%v on %h: %B: ... - 66..33..113322.. ppaaggeerr__ccoonntteexxtt + When the currently opened mailbox is Inbox, this will be expanded to: - Type: number - Default: 0 + Mutt-ng 1.5.9i on mailhost: Inbox: ... - This variable controls the number of lines of context that are given - when displaying the next or previous page in the internal pager. By - default, Mutt will display the line after the last one on the screen - at the top of the next page (0 lines of context). + For the number of certain types of messages, one more feature of the + format strings is extremely useful. If there aren't messages of a certain + type, it may not be desired to print just that there aren't any but + instead only print something if there are any. - 66..33..113333.. ppaaggeerr__ffoorrmmaatt + 3.2. Conditional Expansion - Type: string - Default: "-%Z- %C/%m: %-20.20n %s" + To only print the number of messages if there are new messages in the + current mailbox, further extend $status_format to: - This variable controls the format of the one-line message ``status'' - displayed before each message in either the internal or an external - pager. The valid sequences are listed in the ````$index_format'''' - section. + set status_format = "%v on %h: %B %?n?%n new? ... - 66..33..113344.. ppaaggeerr__iinnddeexx__lliinneess + This feature is called nonzero-printing and works as this: some expandos + may be optionally printed nonzero, i.e. a portion of the format string is + only evaluated if the value of the expando is different from zero. The + basic syntax is: - Type: number - Default: 0 + %??? - Determines the number of lines of a mini-index which is shown when in - the pager. The current message, unless near the top or bottom of the - folder, will be roughly one third of the way down this mini-index, - giving the reader the context of a few messages before and after the - message. This is useful, for example, to determine how many messages - remain to be read in the current thread. One of the lines is reserved - for the status bar from the index, so a _p_a_g_e_r___i_n_d_e_x___l_i_n_e_s of 6 will - only show 5 lines of the actual index. A value of 0 results in no - index being shown. If the number of messages in the current folder is - less than _p_a_g_e_r___i_n_d_e_x___l_i_n_e_s, then the index will only use as many - lines as it needs. + which tells mutt-ng to only look at if the value of + the %?&? - When set, the internal-pager will nnoott move to the next message when - you are at the end of a message and invoke the _n_e_x_t_-_p_a_g_e function. + Using this we can make mutt-ng to do the following: - 66..33..113366.. ccrryypptt__aauuttoossiiggnn + o make it print ``n new messages'' whereby n is the count but only if + there new ones - Type: boolean - Default: no + o and make it print ``no new messages'' if there aren't any - Setting this variable will cause Mutt to always attempt to - cryptographically sign outgoing messages. This can be overridden by - use of the _p_g_p_-_m_e_n_u, when signing is not required or encryption is - requested as well. If ````$smime_is_default'''' is set, then OpenSSL - is used instead to create S/MIME messages and settings can be - overridden by use of the _s_m_i_m_e_-_m_e_n_u. (Crypto only) + The corresponding configuration is: - 66..33..113377.. ccrryypptt__aauuttooeennccrryypptt + set status_format = "%v on %h: %B: %?n?%n new messages&no new messages? ... - Type: boolean - Default: no + This doubles the use of the ``new messages'' string because it'll get + always printed. Thus, it can be shortened to: - Setting this variable will cause Mutt to always attempt to PGP encrypt - outgoing messages. This is probably only useful in connection to the - _s_e_n_d_-_h_o_o_k command. It can be overridden by use of the _p_g_p_-_m_e_n_u, when - encryption is not required or signing is requested as well. IF - ````$smime_is_default'''' is set, then OpenSSL is used instead to - create S/MIME messages and settings can be overridden by use of the - _s_m_i_m_e_-_m_e_n_u. (Crypto only) - 66..33..113388.. ppggpp__iiggnnoorree__ssuubbkkeeyyss + set status_format = "%v on %h: %B: %?n?%n&no? new messages ... - Type: boolean - Default: yes + As you might see from this rather simple example, one can create very + complex but fancy status messages. Please see the reference chapter for + expandos and those which may be printed nonzero. - Setting this variable will cause Mutt to ignore OpenPGP subkeys. - Instead, the principal key will inherit the subkeys' capabilities. - Unset this if you want to play interesting key selection games. (PGP - only) + 3.3. Modifications and Padding - 66..33..113399.. ccrryypptt__rreeppllyyeennccrryypptt + Besides the information given so far, there're even more features of + format strings: - Type: boolean - Default: yes + o When specifying %_ instead of just %, mutt-ng will convert + all characters in the expansion of to lowercase. - If set, automatically PGP or OpenSSL encrypt replies to messages which - are encrypted. (Crypto only) + o When specifying %: instead of just %, mutt-ng will convert + all dots in the expansion of to underscores (_). - 66..33..114400.. ccrryypptt__rreeppllyyssiiggnn + Also, there's a feature called Padding supplied by the following two + expandos: %|X and %>X . - Type: boolean - Default: no + %|X - If set, automatically PGP or OpenSSL sign replies to messages which - are signed. + When this occurs, mutt-ng will fill the rest of the line with the + character X. In our example, filling the rest of the line with + dashes is done by setting: - NNoottee:: this does not work on messages that are encrypted aanndd signed! - (Crypto only) + set status_format = "%v on %h: %B: %?n?%n&no? new messages %|-" - 66..33..114411.. ccrryypptt__rreeppllyyssiiggnneennccrryypptteedd + %>X - Type: boolean - Default: no + Since the previous expando stops at the end of line, there must be + a way to fill the gap between two items via the %>X expando: it + puts as many characters X in between two items so that the rest of + the line will be right-justified. For example, to not put the + version string and hostname of our example on the left but on the + right and fill the gap with spaces, one might use (note the space + after %>): - If set, automatically PGP or OpenSSL sign replies to messages which - are encrypted. This makes sense in combination with - ````$crypt_replyencrypt'''', because it allows you to sign all - messages which are automatically encrypted. This works around the - problem noted in ````$crypt_replysign'''', that mutt is not able to - find out whether an encrypted message is also signed. (Crypto only) + set status_format = "%B: %?n?%n&no? new messages %> (%v on %h)" - 66..33..114422.. ccrryypptt__ttiimmeessttaammpp +4. Using Tags - Type: boolean - Default: yes + Sometimes it is desirable to perform an operation on a group of messages + all at once rather than one at a time. An example might be to save + messages to a mailing list to a separate folder, or to delete all messages + with a given subject. To tag all messages matching a pattern, use the + tag-pattern function, which is bound to ``shift-T'' by default. Or you can + select individual messages by hand using the ``tag-message'' function, + which is bound to ``t'' by default. See patterns for Mutt-ng's pattern + matching syntax. - If set, mutt will include a time stamp in the lines surrounding PGP or - S/MIME output, so spoofing such lines is more difficult. If you are - using colors to mark these lines, and rely on these, you may unset - this setting. (Crypto only) + Once you have tagged the desired messages, you can use the ``tag-prefix'' + operator, which is the ``;'' (semicolon) key by default. When the + ``tag-prefix'' operator is used, the next operation will be applied to all + tagged messages if that operation can be used in that manner. If the + auto-tag variable is set, the next operation applies to the tagged + messages automatically, without requiring the ``tag-prefix''. - 66..33..114433.. ppggpp__uussee__ggppgg__aaggeenntt + In macro or push commands, you can use the ``tag-prefix-cond'' operator. + If there are no tagged messages, mutt will "eat" the rest of the macro to + abort it's execution.Mutt-ng will stop "eating" the macro when it + encounters the ``end-cond'' operator; after this operator the rest of the + macro will be executed asnormal. - Type: boolean - Default: no +5. Using Hooks - If set, mutt will use a possibly-running gpg-agent process. (PGP - only) + A hook is a concept borrowed from the EMACS editor which allows you to + execute arbitrary commands before performing some operation. For example, + you may wish to tailor your configuration based upon which mailbox you are + reading, or to whom you are sending mail. In the Mutt-ng world, a hook + consists of a regexp or patterns along with a configuration + option/command. See - 66..33..114444.. ccrryypptt__vveerriiffyy__ssiigg + o folder-hook - Type: quadoption - Default: yes + o send-hook - If ``yes'', always attempt to verify PGP or S/MIME signatures. If - ``ask'', ask whether or not to verify the signature. If ``no'', never - attempt to verify cryptographic signatures. (Crypto only) + o message-hook - 66..33..114455.. ssmmiimmee__iiss__ddeeffaauulltt + o save-hook - Type: boolean - Default: no + o mbox-hook - The default behaviour of mutt is to use PGP on all auto- - sign/encryption operations. To override and to use OpenSSL instead - this must be set. However, this has no effect while replying, since - mutt will automatically select the same application that was used to - sign/encrypt the original message. (Note that this variable can be - overridden by unsetting ``$crypt_autosmime''.) (S/MIME only) + o fcc-hook - 66..33..114466.. ssmmiimmee__aasskk__cceerrtt__llaabbeell + o fcc-save-hook - Type: boolean - Default: yes + for specific details on each type of hook available. - This flag controls whether you want to be asked to enter a label for a - certificate about to be added to the database or not. It is set by - default. (S/MIME only) + Note: if a hook changes configuration settings, these changes remain + effective until the end of the current mutt session. As this is generally + not desired, a default hook needs to be added before all other hooks to + restore configuration defaults. Here is an example with send-hook and the + my_hdr directive: - 66..33..114477.. ssmmiimmee__ddeeccrryypptt__uussee__ddeeffaauulltt__kkeeyy + send-hook . 'unmy_hdr From:' + send-hook ~C'^b@b\.b$' my_hdr from: c@c.c - Type: boolean - Default: yes + 5.1. Message Matching in Hooks - If set (default) this tells mutt to use the default key for - decryption. Otherwise, if manage multiple certificate-key-pairs, mutt - will try to use the mailbox-address to determine the key to use. It - will ask you to supply a key, if it can't find one. (S/MIME only) + Hooks that act upon messages (send-hook, save-hook, fcc-hook,message-hook + )are evaluated in a slightly different manner. For the other types of + hooks, a regexp is sufficient. But in dealing with messages a finer grain + of control is needed for matching since for different purposes you want to + match different criteria. - 66..33..114488.. ppggpp__eennttrryy__ffoorrmmaatt + Mutt-ng allows the use of the patterns language for matching messages in + hook commands. This works in exactly the same way as it would when + limiting orsearching the mailbox, except that you are restricted to those + operators which match information mutt extracts from the header of the + message (i.e. from, to, cc, date, subject, etc.). - Type: string - Default: "%4n %t%f %4l/0x%k %-4a %2c %u" + For example, if you wanted to set your return address based upon sending + mail to a specific address, you could do something like: - This variable allows you to customize the PGP key selection menu to - your personal taste. This string is similar to ````$index_format'''', - but has its own set of printf()-like sequences: + send-hook '~t ^me@cs\.hmc\.edu$' 'my_hdr From: Mutt-ng User ' - %%nn number + which would execute the given command when sending mail to me@cs.hmc.edu. - %%kk key id + However, it is not required that you write the pattern to match using the + full searching language. You can still specify a simple regular expression + like the other hooks, in which case Mutt-ng will translate your pattern + into the full language, using the translation specified by the + default-hook variable. The pattern is translated at the time the hook is + declared, so the value of default-hook that is in effect at that time will + be used. - %%uu user id +6. Using the sidebar + + The sidebar, a feature specific to Mutt-ng, allows you to use a mailbox + listing which looks very similar to the ones you probably know from GUI + mail clients. The sidebar lists all specified mailboxes, shows the number + in each and highlights the ones with new email Use the following + configuration commands: + + set sidebar_visible="yes" + set sidebar_width=25 - %%aa algorithm + If you want to specify the mailboxes you can do so with: - %%ll key length + set mbox='=INBOX' + mailboxes INBOX \ + MBOX1 \ + MBOX2 \ + ... - %%ff flags + You can also specify the colors for mailboxes with new mails by using: - %%cc capabilities + color sidebar_new red black + color sidebar white black - %%tt trust/validity of the key-uid association + The available functions are: - %%[[<>]] - date of the key where is an strftime(3) expression + Table 4.1. Default Sidebar Function Bindings - (PGP only) + +------------------------------------------------------------------------+ + | Key | Function | Description | + |------+---------------------+-------------------------------------------| + | none | sidebar-scroll-up | Scrolls the mailbox list up 1 page | + |------+---------------------+-------------------------------------------| + | none | sidebar-scroll-down | Scrolls the mailbox list down 1 page | + |------+---------------------+-------------------------------------------| + | none | sidebar-next | Highlights the next mailbox | + |------+---------------------+-------------------------------------------| + | none | sidebar-next-new | Highlights the next mailbox with new mail | + |------+---------------------+-------------------------------------------| + | none | sidebar-previous | Highlights the previous mailbox | + |------+---------------------+-------------------------------------------| + | none | sidebar-open | Opens the currently highlighted mailbox | + +------------------------------------------------------------------------+ - 66..33..114499.. ppggpp__ggoooodd__ssiiggnn + Reasonable key bindings look e.g. like this: - Type: regular expression - Default: "" + bind index \Cp sidebar-prev + bind index \Cn sidebar-next + bind index \Cb sidebar-open + bind pager \Cp sidebar-prev + bind pager \Cn sidebar-next + bind pager \Cb sidebar-open - If you assign a text to this variable, then a PGP signature is only - considered verified if the output from ``$pgp_verify_command'' - contains the text. Use this variable if the exit code from the command - is 0 even for bad signatures. (PGP only) + macro index B ':toggle sidebar_visible^M' + macro pager B ':toggle sidebar_visible^M' - 66..33..115500.. ppggpp__cchheecckk__eexxiitt + You can then go up and down by pressing Ctrl-P and Ctrl-N, and switch on + and off the sidebar simply by pressing 'B'. - Type: boolean - Default: yes +7. External Address Queries - If set, mutt will check the exit code of the PGP subprocess when - signing or encrypting. A non-zero exit code means that the subprocess - failed. (PGP only) + Mutt-ng supports connecting to external directory databases such as LDAP, + ph/qi, bbdb, or NIS through a wrapper script which connects to mutt using + a simple interface. Using the query-command variable, you specify the + wrapper command to use. For example: - 66..33..115511.. ppggpp__lloonngg__iiddss + set query_command = "mutt_ldap_query.pl '%s'" - Type: boolean - Default: no + The wrapper script should accept the query on the command-line. It should + return a one line message, then each matching response on a single line, + each line containing a tab separated address then name thensome other + optional information. On error, or if there are no matching addresses, + return a non-zero exit code and a one line error message. + + An example multiple response output: + + Searching database ... 20 entries ... 3 matching: + me@cs.hmc.edu Michael Elkins mutt dude + blong@fiction.net Brandon Long mutt and more + roessler@guug.de Thomas Roessler mutt pgp + + There are two mechanisms for accessing the query function of mutt. One is + to do a query from the index menu using the query function (default: Q). + This will prompt for a query, then bring up the query menu which will list + the matching responses. From the query menu, you can select addresses to + create aliases, or to mail. You can tag multiple addressesto mail, start a + new query, or have a new query appended to the current responses. + + The other mechanism for accessing the query function is for address + completion, similar to the alias completion. In any prompt for address + entry, you can use the complete-query function (default: ^T) to run a + query based on the current address you have typed. Like aliases, mutt will + look for what you have typed back to the last space or comma. If there is + a single response for that query, mutt will expand the address in place. + If there are multiple responses, mutt will activate the querymenu. At the + query menu, you can select one or more addresses to be added to the + prompt. + +8. Mailbox Formats + + Mutt-ng supports reading and writing of four different mailbox formats: + mbox, MMDF, MH and Maildir. The mailbox type is autodetected, so there is + no need to use a flag for different mailbox types. When creating + newmailboxes, Mutt-ng uses the default specified with the mbox-type + variable. + + mbox. This is the most widely used mailbox format for UNIX. All messages + are stored in a single file. Each message has a line of the form: + + From me@cs.hmc.edu Fri, 11 Apr 1997 11:44:56 PST + + to denote the start of a new message (this is often referred to as the + ``From_'' line). + + MMDF. This is a variant of the mbox format. Each message is surrounded by + lines containing ``^A^A^A^A'' (four control-A's). + + MH. A radical departure from mbox and MMDF, a mailbox consists of a + directory and each message is stored in a separate file. The filename + indicates the message number (however, this is may not correspond to the + message number Mutt-ng displays). Deleted messages arerenamed with a comma + (,) prepended to the filename. Note: Mutt detects this type of mailbox by + looking for either .mh_sequences or .xmhcache (needed to distinguish + normal directories from MH mailboxes). + + Maildir. The newest of the mailbox formats, used by the Qmail MTA (a + replacement for sendmail). Similar to MH, except that it adds three + subdirectories of the mailbox: tmp, new and cur .Filenames for the + messages are chosen in such a way they are unique, even when twoprograms + are writing the mailbox over NFS, which means that no file locking is + needed. + +9. Mailbox Shortcuts + + There are a number of built in shortcuts which refer to specific + mailboxes. These shortcuts can be used anywhere you are prompted for a + file or mailbox path. + + o ! -- refers to your spoolfile (incoming) mailbox + + o > -- refers to your mbox file + + o < -- refers to your record file + + o ^ -- refers to the current mailbox + + o - or !! -- refers to the file you've last visited + + o ˜ -- refers to your home directory + + o = or + -- refers to your folder directory + + o @alias -- refers to the save-hook as determined by the address of the + alias + +10. Handling Mailing Lists + + Mutt-ng has a few configuration options that make dealing with large + amounts of mail easier. The first thing you must do is to let Mutt know + what addresses you consider to be mailing lists (technically this does not + have to be a mailing list, but that is what it is most often used for), + and what lists you are subscribed to. This is accomplished through the use + of the lists commands in your muttrc. + + Now that Mutt-ng knows what your mailing lists are, it can do several + things, the first of which is the ability to show the name of a list + through which you received a message (i.e., of a subscribed list) in the + index menu display. This is useful to distinguish between personal and + list mail in the same mailbox. In the index-format variable, the escape + ``%L'' will return the string ``To '' when ``list'' appears in the + ``To'' field, and ``Cc '' when it appears in the ``Cc'' field + (otherwise it returns the name of the author). + + Often times the ``To'' and ``Cc'' fields in mailing list messages tend to + get quite large. Most people do not bother to remove the author of the + message they are reply to from the list, resulting in two or more copies + being sent to that person. The ``list-reply'' function, which by default + is bound to ``L'' in the index menu and pager, helps reduce the clutter by + only replying to the known mailing list addresses instead of all + recipients (except as specified by Mail-Followup-To, see below). + + Mutt-ng also supports the Mail-Followup-To header. When you send a message + to a list of recipients which includes one or several subscribed mailing + lists, and if the followup-to option is set, mutt will generate a + Mail-Followup-To header which contains all the recipients to whom you send + this message, but not your address. This indicates that group-replies or + list-replies (also known as ``followups'') to this message should only be + sent to the original recipients of the message, and not separately to you + - you'll receive your copy through one of the mailing lists you are + subscribed to. + + Conversely, when group-replying or list-replying to a message which has a + Mail-Followup-To header, mutt will respect this header if the + honor-followup-to configuration variable is set. Using list-reply will in + this case also make sure that the reply goes to the mailing list, even if + it's not specified in the list of recipients in the Mail-Followup-To. - If set, use 64 bit PGP key IDs. Unset uses the normal 32 bit Key IDs. - (PGP only) + Note that, when header editing is enabled, you can create a + Mail-Followup-To header manually. Mutt-ng will only auto-generate this + header if it doesn't exist when you send the message. + + The other method some mailing list admins use is to generate a + ``Reply-To'' field which points back to the mailing list address rather + than the author of the message. This can create problems when trying to + reply directly to the author in private, since most mail clients will + automatically reply to the address given in the ``Reply-To'' field. + Mutt-ng uses the reply-to variable to help decide which address to use. If + set to ask-yes or ask-no, you will be prompted as to whether or not you + would like to use the address given inthe ``Reply-To'' field, or reply + directly to the address given in the ``From'' field. When set to yes, the + ``Reply-To'' field will be used when present. + + The ``X-Label:'' header field can be used to further identify mailing + lists or list subject matter (or just to annotate messages individually). + The index-format variable's ``%y'' and ``%Y'' escapes can be used to + expand ``X-Label:'' fields in the index, and Mutt-ng's pattern-matcher can + match regular expressions to ``X-Label:'' fields with the ``˜y'' + selector. ``X-Label:'' is not a standard message header field, but it can + easily be inserted by procmailand other mail filtering agents. + + Lastly, Mutt-ng has the ability to sort the mailbox into threads. A thread + is a group of messages which all relate to the same subject. This is + usually organized into a tree-like structure where a message and all of + its replies are represented graphically. If you've ever used a threaded + news client, this is the same concept. It makes dealingwith large volume + mailing lists easier because you can easily delete uninteresting threads + and quickly find topics of value. + +11. Editing threads - 66..33..115522.. ppggpp__rreettaaiinnaabbllee__ssiiggss + Mutt-ng has the ability to dynamically restructure threads that are broken + either by misconfigured software or bad behavior from some correspondents. + This allows to clean your mailboxes formats) from these annoyances which + make it hard to follow a discussion. + + 11.1. Linking threads + + Some mailers tend to "forget" to correctly set the "In-Reply-To:" and + "References:" headers when replying to a message. This results in broken + discussions because Mutt-ng has not enough information to guess the + correct threading. You can fix this by tagging the reply, then moving to + the parent message and using the ``link-threads'' function (bound to & by + default). The reply will then be connected to this "parent" message. + + You can also connect multiple children at once, tagging them and using the + tag-prefix command (';') or the auto_tag option. + + 11.2. Breaking threads + + On mailing lists, some people are in the bad habit of starting a new + discussion by hitting "reply" to any message from the list and changing + the subject to a totally unrelated one. You can fix such threads by using + the ``break-thread'' function (boundby default to #), which will turn the + subthread starting from the current message into a whole different thread. + +12. Delivery Status Notification (DSN) Support + + RFC1894 defines a set of MIME content types for relaying information about + the status of electronic mail messages. These can be thought of as + ``return receipts.'' + + Users can make use of it in one of the following two ways: + + o Berkeley sendmail 8.8.x currently has some command line options in + which the mail client can make requests as to what type of status + messages should be returned. + + o The SMTP support via libESMTP supports it, too. + + To support this, there are two variables: + + o dsn-notify is used to request receipts for different results (such as + failed message,message delivered, etc.). + + o dsn-return requests how much of your message should be returned with + the receipt (headers or full message). + + Please see the reference chapter for possible values. + +13. POP3 Support (OPTIONAL) + + If Mutt-ng was compiled with POP3 support (by running the configure script + with the --enable-pop flag), it has the ability to work with mailboxes + located on a remote POP3 server and fetch mail for local browsing. + + You can access the remote POP3 mailbox by selecting the folder + pop://popserver/. + + You can select an alternative port by specifying it with the server, i.e.: + pop://popserver:port/. + + You can also specify different username for each folder, i.e.: + pop://username@popserver[:port]/. + + Polling for new mail is more expensive over POP3 than locally. For this + reason the frequency at which Mutt-ng will check for mail remotely can be + controlled by the pop-mail-check variable, which defaults to every 60 + seconds. + + If Mutt-ng was compiled with SSL support (by running the configure script + with the --with-ssl flag), connections to POP3 servers can be encrypted. + This naturally requires that the server supports SSL encrypted + connections. To access a folder with POP3/SSL, you should use pops: + prefix, ie: pops://[username@]popserver[:port]/. + + Another way to access your POP3 mail is the fetch-mail function (default: + G). It allows to connect to pop-host ,fetch all your new mail and place it + in the local spoolfile. After this point, Mutt-ng runs exactly as if the + mail had always been local. - Type: boolean - Default: no + Note: If you only need to fetch all messages to local mailbox you should + consider using a specialized program, such as fetchmail - If set, signed and encrypted messages will consist of nested - multipart/signed and multipart/encrypted body parts. +14. IMAP Support (OPTIONAL) - This is useful for applications like encrypted and signed mailing - lists, where the outer layer (multipart/encrypted) can be easily - removed, while the inner multipart/signed part is retained. (PGP - only) + If Mutt-ng was compiled with IMAP support (by running the configure script + with the --enable-imap flag), it has the ability to work with folders + located on a remote IMAP server. - 66..33..115533.. ppggpp__sshhooww__uunnuussaabbllee + You can access the remote inbox by selecting the folder + imap://imapserver/INBOX, where imapserver is the name of the IMAP server + and INBOX is the special name for your spool mailbox on the IMAP server. + If you want to access another mail folder at the IMAP server, you should + use imap://imapserver/path/to/folder where path/to/folder is the path of + the folder you want to access. - Type: boolean - Default: yes + You can select an alternative port by specifying it with the server, i.e.: + imap://imapserver:port/INBOX. - If set, mutt will display non-usable keys on the PGP key selection - menu. This includes keys which have been revoked, have expired, or - have been marked as ``disabled'' by the user. (PGP only) + You can also specify different username for each folder, i.e.: + imap://username@imapserver[:port]/INBOX. - 66..33..115544.. ppggpp__ssiiggnn__aass + If Mutt-ng was compiled with SSL support (by running the configure script + with the --with-ssl flag), connections to IMAP servers can be encrypted. + This naturally requires that the server supports SSL encrypted + connections. To access a folder with IMAP/SSL, you should use + imaps://[username@]imapserver[:port]/path/to/folder as your folder path. - Type: string - Default: "" + Pine-compatible notation is also supported, i.e. + {[username@]imapserver[:port][/ssl]}path/to/folder - If you have more than one key pair, this option allows you to specify - which of your private keys to use. It is recommended that you use the - keyid form to specify your key (e.g., ``0x00112233''). (PGP only) + Note that not all servers use / as the hierarchy separator. Mutt-ng should + correctly notice which separator is being used by the server and + convertpaths accordingly. - 66..33..115555.. ppggpp__ssttrriicctt__eenncc + When browsing folders on an IMAP server, you can toggle whether to look at + only the folders you are subscribed to, or all folders with the + toggle-subscribed command. See also the imap-list-subscribed variable. - Type: boolean - Default: yes + Polling for new mail on an IMAP server can cause noticeable delays. So, + you'll want to carefully tune the imap-mail-check and timeout variables. - If set, Mutt will automatically encode PGP/MIME signed messages as - _q_u_o_t_e_d_-_p_r_i_n_t_a_b_l_e. Please note that unsetting this variable may lead - to problems with non-verifyable PGP signatures, so only change this if - you know what you are doing. (PGP only) + Note that if you are using mbox as the mail store on UW servers prior + tov12.250, the server has been reported to disconnect a client if another + client selects the same folder. - 66..33..115566.. ppggpp__ttiimmeeoouutt + 14.1. The Folder Browser - Type: number - Default: 300 + As of version 1.2, mutt supports browsing mailboxes on an IMAP server. + This is mostly the same as the local file browser, with the following + differences: - The number of seconds after which a cached passphrase will expire if - not used. (PGP only) - 66..33..115577.. ppggpp__ssoorrtt__kkeeyyss + o Instead of file permissions, mutt displays the string "IMAP", possibly + followed by the symbol "+", indicating that the entry contains both + messages and subfolders. On Cyrus-like servers folders will often + contain both messages and subfolders. - Type: sort order - Default: address + o For the case where an entry can contain both messages and subfolders, + the selection key (bound to enter by default) will choose to descend + into the subfolder view. If you wish to view the messages in that + folder, you must use view-file instead (bound to space by default). - Specifies how the entries in the `pgp keys' menu are sorted. The - following are legal values: + o You can create, delete and rename mailboxes with the create-mailbox, + delete-mailbox, and rename-mailbox commands (default bindings: C , d + and r, respectively). You may also subscribe and unsubscribe to + mailboxes (normally these are bound to s and u, respectively). - aaddddrreessss - sort alphabetically by user id + 14.2. Authentication - kkeeyyiidd - sort alphabetically by key id + Mutt-ng supports four authentication methods with IMAP servers: SASL, + GSSAPI, CRAM-MD5, and LOGIN (there is a patch by Grant Edwards to add NTLM + authentication for you poor exchange users out there, but it has yet to be + integrated into the main tree). There is also support for the + pseudo-protocol ANONYMOUS, which allows you to log in to a public IMAP + server without having an account. To use ANONYMOUS, simply make your + username blank or "anonymous". - ddaattee - sort by key creation date + SASL is a special super-authenticator, which selects among several + protocols (including GSSAPI, CRAM-MD5, ANONYMOUS, and DIGEST-MD5) the most + secure method available on your host and the server. Using some of these + methods (including DIGEST-MD5 and possibly GSSAPI), your entire session + will be encrypted and invisible to those teeming network snoops. It is the + best option if you have it. To use it, you must have the Cyrus SASL + libraryinstalled on your system and compile mutt with the --with-sasl + flag. + + Mutt-ng will try whichever methods are compiled in and available on the + server, in the following order: SASL, ANONYMOUS, GSSAPI, CRAM-MD5, LOGIN. - ttrruusstt - sort by the trust of the key + There are a few variables which control authentication: - If you prefer reverse order of the above values, prefix it with - `reverse-'. (PGP only) + o imap-user - controls the username under which you request + authentication on the IMAP server, for all authenticators. This is + overridden by an explicit username in the mailbox path (i.e. by using + a mailbox name of the form {user@host}). - 66..33..115588.. ppggpp__ccrreeaattee__ttrraaddiittiioonnaall + o imap-pass - a password which you may preset, used by all + authentication methods where a password is needed. - Type: quadoption - Default: no + o imap-authenticators - a colon-delimited list of IMAP authentication + methods to try, in the order you wish to try them. If specified, this + overrides mutt's default (attempt everything, in the order listed + above). - This option controls whether Mutt generates old-style inline PGP - encrypted or signed messages. +15. NNTP Support (OPTIONAL) - Note that PGP/MIME will be used automatically for messages which have - a character set different from us-ascii, or which consist of more than - a single MIME part. + If compiled with ``--enable-nntp'' option, Mutt-ng can read news from a + newsserver via NNTP. You can open a newsgroup with the + ``change-newsgroup'' function from the index/pager which is by default + bound to i. - Also note that using the old-style PGP message format is ssttrroonnggllyy - ddeepprreeccaatteedd. (PGP only) + The Default newsserver can be obtained from the $NNTPSERVER environment + variable. Like other news readers, info about subscribed newsgroups is + saved in a file as specified by the nntp-newsrc variable. Article headers + are cached and can be loaded from a file when a newsgroup is entered + instead loading from newsserver; currently, this caching mechanism still + is different from the header caching for maildir/IMAP. - 66..33..115599.. ppggpp__aauuttoo__ttrraaddiittiioonnaall + 15.1. Again: Scoring - Type: boolean - Default: no + Especially for Usenet, people often ask for advanced filtering and scoring + functionality. Of course, mutt-ng has scoring and allows a killfile, too. + How to use a killfile has been discussed in score-command. - This option causes Mutt to generate an old-style inline PGP encrypted - or signed message when replying to an old-style message, and a - PGP/MIME message when replying to a PGP/MIME message. Note that this - option is only meaningful when using ````$crypt_replyencrypt'''', - ````$crypt_replysign'''', or ````$crypt_replysignencrypted''''. + What has not been discusses in detail is mutt-ng's built-in realname + filter. For may newsreaders including those for ``advanced users'' like + slrn or tin, there are frequent request for such functionality. The + solutions offered often are complicated regular expressions. - Also note that PGP/MIME will be used automatically for messages which - have a character set different from us-ascii, or which consist of more - than a single MIME part. + In mutt-ng this is as easy as - This option overrides ````$pgp_create_traditional'''' (PGP only) + score ~* =42 - 66..33..116600.. ppggpp__ddeeccooddee__ccoommmmaanndd + This tells mutt-ng to apply a score of 42 to all messages whose sender + specified a valid realname and a valid email address. Using - Type: string - Default: "" + score !~* =42 - This format strings specifies a command which is used to decode - application/pgp attachments. + on the contrary applies a score of 42 to all messages not matching those + criteria which are very strict: - The PGP command formats have their own set of printf-like sequences: + o Email addresses must be valid according to RFC 2822, see + - %%pp Expands to PGPPASSFD=0 when a pass phrase is needed, to an empty - string otherwise. Note: This may be used with a %? construct. + o the name must consist of at least 2 fields whereby a field must not + end in a dot. This means that ``Joe User'' and ``Joe A.User'' are + valid while ``J. User'' and ``J. A. User'' aren't. - %%ff Expands to the name of a file containing a message. + o it's assumed that users are interested in reading their own mail and + mail from people who they have defined an alias forso that those 2 + groups of messages are excluded from the strict rules. - %%ss Expands to the name of a file containing the signature part of a - multipart/signed attachment when verifying it. +16. SMTP Support (OPTIONAL) - %%aa The value of ``$pgp_sign_as''. + Mutt-ng can be built using a library called ``libESMTP'' which provides + SMTP functionality. When configure was called with --with-libesmtp or the + output muttng -v contains +USE_LIBESMTP, this will be or is the case + already. The SMTP support includes support for Delivery Status + Notification (see dsn section) as well as handling the 8BITMIME flag + controlled via use-8bitmime . - %%rr One or more key IDs. + To enable sending mail directly via SMTP without an MTA such as Postfix or + SSMTP and the like, simply set the smtp-host variable pointing to your + SMTP server. - For examples on how to configure these formats for the various - versions of PGP which are floating around, see the pgp*.rc and gpg.rc - files in the samples/ subdirectory which has been installed on your - system alongside the documentation. (PGP only) + Authentication mechanisms are available via the smtp-user and smtp-pass + variables. - 66..33..116611.. ppggpp__ggeettkkeeyyss__ccoommmmaanndd + Transport Encryption via the StartTLS command is also available. For this + to work, first of all Mutt-ng must be built with SSL or GNUTLS. Secondly, + the smtp-use-tls variable must be either set to ``enabled'' or + ``required.'' In both cases, StartTLS will be used if the server supports + it: for the second case, the connection will fail ifit doesn't while + switching back to unencrypted communication for the first one. - Type: string - Default: "" + Some mail providers require user's to set a particular envelope sender, + i.e. they allow for only one value which may not be what the user wants to + send as the From: header. In this case, the variable smtp-envelope may be + used to set the envelope different from the From: header. - This command is invoked whenever mutt will need public key - information. %r is the only printf-like sequence used with this - format. (PGP only) +17. Managing multiple IMAP/POP/NNTP accounts (OPTIONAL) - 66..33..116622.. ppggpp__vveerriiffyy__ccoommmmaanndd + If you happen to have accounts on multiple IMAP and/or POP servers, you + may find managing all the authentication settings inconvenient and + error-prone. The account-hook command may help. This hook works like + folder-hook but is invoked whenever you access a remote mailbox (including + inside the folder browser), not just when you open the mailbox. - Type: string - Default: "" + Some examples: - This command is used to verify PGP signatures. (PGP only) + account-hook . 'unset imap_user; unset imap_pass; unset tunnel' + account-hook imap://host1/ 'set imap_user=me1 imap_pass=foo' + account-hook imap://host2/ 'set tunnel="ssh host2 /usr/libexec/imapd"' - 66..33..116633.. ppggpp__ddeeccrryypptt__ccoommmmaanndd +18. Start a WWW Browser on URLs (EXTERNAL) - Type: string - Default: "" + If a message contains URLs (unified resource locator = address in the WWW + space like http://www.mutt.org/), it is efficient to get a menu with all + the URLs and start a WWW browser on one of them. This functionality is + provided by the external urlview program which can be retrieved at + ftp://ftp.mutt.org/mutt/contrib/ > and the configuration commands: - This command is used to decrypt a PGP encrypted message. (PGP only) + macro index \cb |urlview\n + macro pager \cb |urlview\n - 66..33..116644.. ppggpp__cclleeaarrssiiggnn__ccoommmmaanndd +19. Compressed folders Support (OPTIONAL) - Type: string - Default: "" + If Mutt-ng was compiled with compressed folders support (by running the + configure script with the --enable-compressed flag), Mutt can open folders + stored in an arbitrary format, provided that the user has a script to + convert from/to this format to one of the accepted. - This format is used to create a old-style "clearsigned" PGP message. - Note that the use of this format is ssttrroonnggllyy ddeepprreeccaatteedd. (PGP only) + The most common use is to open compressed archived folders e.g. with gzip. - 66..33..116655.. ppggpp__ssiiggnn__ccoommmmaanndd + In addition, the user can provide a script that gets a folder in an + accepted format and appends its context to the folder in the user-defined + format, which may be faster than converting the entire folder to the + accepted format, appending to it and converting back to the user-defined + format. - Type: string - Default: "" + There are three hooks defined (open-hook, close-hook and append-hook + )which define commands to uncompress and compress a folder and to append + messages to an existing compressed folder respectively. - This command is used to create the detached PGP signature for a - multipart/signed PGP/MIME body part. (PGP only) + For example: - 66..33..116666.. ppggpp__eennccrryypptt__ssiiggnn__ccoommmmaanndd + open-hook \\.gz$ "gzip -cd %f > %t" + close-hook \\.gz$ "gzip -c %t > %f" + append-hook \\.gz$ "gzip -c %t >> %f" - Type: string - Default: "" + You do not have to specify all of the commands. If you omit append-hook + ,the folder will be open and closed again each time you will add to it. If + you omit close-hook (or give empty command) , the folder will be open in + the mode. If you specify append-hook though you'll be able to append to + the folder. - This command is used to both sign and encrypt a body part. (PGP only) + Note that Mutt-ng will only try to use hooks if the file is not in one of + the accepted formats. In particular, if the file is empty, mutt supposes + it is not compressed. This is important because it allows the use of + programs that do not have well defined extensions. Just use "." as a + regexp. But this may be surprising if your compressing script produces + empty files. In this situation, unset save-empty ,so that the compressed + file will be removed if you delete all of the messages. - 66..33..116677.. ppggpp__eennccrryypptt__oonnllyy__ccoommmmaanndd + 19.1. Open a compressed mailbox for reading - Type: string - Default: "" + Usage: open-hook regexp "command" - This command is used to encrypt a body part without signing it. (PGP - only) + The command is the command that can be used for opening the folders whose + names match regexp. - 66..33..116688.. ppggpp__iimmppoorrtt__ccoommmmaanndd + The command string is the printf-like format string, and it should accept + two parameters: %f, which is replaced with the (compressed) folder name, + and %t which is replaced with the name of the temporary folder to which to + write. - Type: string - Default: "" + %f and %t can be repeated any number of times in the command string, and + all of the entries are replaced with the appropriate folder name. In + addition, %% is replaced by %, as in printf, and any other %anything is + left as is. - This command is used to import a key from a message into the user's - public key ring. (PGP only) + The command should not remove the original compressed file. The command + should return non-zero exit status if it fails, so mutt knows something's + wrong. - 66..33..116699.. ppggpp__eexxppoorrtt__ccoommmmaanndd + Example: - Type: string - Default: "" + open-hook \\.gz$ "gzip -cd %f > %t" - This command is used to export a public key from the user's key ring. - (PGP only) + If the command is empty, this operation is disabled for this file type. - 66..33..117700.. ppggpp__vveerriiffyy__kkeeyy__ccoommmmaanndd + 19.2. Write a compressed mailbox - Type: string - Default: "" + Usage: close-hook regexp "command" - This command is used to verify key information from the key selection - menu. (PGP only) + This is used to close the folder that was open with the open-hook command + after some changes were made to it. - 66..33..117711.. ppggpp__lliisstt__sseeccrriinngg__ccoommmmaanndd + The command string is the command that can be used for closing the folders + whose names match regexp. It has the same format as in the open-hook + command. Temporary folder in this case is the folder previously produced + by the < open-hook command. - Type: string - Default: "" + The command should not remove the decompressed file. The command should + return non-zero exit status if it fails, so mutt knows something's wrong. - This command is used to list the secret key ring's contents. The - output format must be analogous to the one used by gpg --list-keys - --with-colons. + Example: - This format is also generated by the pgpring utility which comes with - mutt. (PGP only) + close-hook \\.gz$ "gzip -c %t > %f" - 66..33..117722.. ppggpp__lliisstt__ppuubbrriinngg__ccoommmmaanndd + If the command is empty, this operation is disabled for this file type, + and the file can only be open in the readonly mode. - Type: string - Default: "" + close-hook is not called when you exit from the folder if the folder was + not changed. - This command is used to list the public key ring's contents. The - output format must be analogous to the one used by gpg --list-keys - --with-colons. + 19.3. Append a message to a compressed mailbox - This format is also generated by the pgpring utility which comes with - mutt. (PGP only) + Usage: append-hook regexp "command" - 66..33..117733.. ffoorrwwaarrdd__ddeeccrryypptt + This command is used for saving to an existing compressed folder. The + command is the command that can be used for appending to the folders whose + names match regexp. It has the same format as in the open-hook command. + The temporary folder in this case contains the messages that are + beingappended. - Type: boolean - Default: yes + The command should not remove the decompressed file. The command should + return non-zero exit status if it fails, so mutt knows something's wrong. - Controls the handling of encrypted messages when forwarding a message. - When set, the outer layer of encryption is stripped off. This - variable is only used if ````$mime_forward'''' is _s_e_t and - ````$mime_forward_decode'''' is _u_n_s_e_t. (PGP only) + Example: - 66..33..117744.. ssmmiimmee__ttiimmeeoouutt + append-hook \\.gz$ "gzip -c %t >> %f" - Type: number - Default: 300 + When append-hook is used, the folder is not opened, which saves time, but + this means that we can not find out what the folder type is. Thus the + default ( mbox-type )type is always supposed (i.e. this is the format used + for the temporary folder). - The number of seconds after which a cached passphrase will expire if - not used. (S/MIME only) + If the file does not exist when you save to it, close-hook is called, and + not append-hook. append-hook is only for appending to existing folders. - 66..33..117755.. ssmmiimmee__eennccrryypptt__wwiitthh + If the command is empty, this operation is disabled for this file type. In + this case, the folder will be open and closed again (using open-hook and + close-hook respectively) each time you will add to it. - Type: string - Default: "" + 19.4. Encrypted folders - This sets the algorithm that should be used for encryption. Valid - choices are "des", "des3", "rc2-40", "rc2-64", "rc2-128". If unset - "3des" (TripleDES) is used. (S/MIME only) + The compressed folders support can also be used to handle encrypted + folders. If you want to encrypt a folder with PGP, you may want to usethe + following hooks: - 66..33..117766.. ssmmiimmee__kkeeyyss + open-hook \\.pgp$ "pgp -f < %f > %t" + close-hook \\.pgp$ "pgp -fe YourPgpUserIdOrKeyId < %t > %f" - Type: path - Default: "" + Please note, that PGP does not support appending to an encrypted folder, + so there is no append-hook defined. - Since there is no pubring/secring as with PGP, mutt has to handle - storage ad retrieval of keys/certs by itself. This is very basic right - now, and stores keys and certificates in two different directories, - both named as the hash-value retrieved from OpenSSL. There is an index - file which contains mailbox-address keyid pair, and which can be - manually edited. This one points to the location of the private keys. - (S/MIME only) + Note: the folder is temporary stored decrypted in the /tmp directory, + where it can be read by your system administrator. So thinkabout the + security aspects of this. - 66..33..117777.. ssmmiimmee__ccaa__llooccaattiioonn +Chapter 5. Mutt-ng's MIME Support - Type: path - Default: "" + Table of Contents - This variable contains the name of either a directory, or a file which - contains trusted certificates for use with OpenSSL. (S/MIME only) + 1. Using MIME in Mutt - 66..33..117788.. ssmmiimmee__cceerrttiiffiiccaatteess + 1.1. Viewing MIME messages in the pager - Type: path - Default: "" + 1.2. The Attachment Menu - Since there is no pubring/secring as with PGP, mutt has to handle - storage and retrieval of keys by itself. This is very basic right now, - and keys and certificates are stored in two different directories, - both named as the hash-value retrieved from OpenSSL. There is an index - file which contains mailbox-address keyid pairs, and which can be - manually edited. This one points to the location of the certificates. - (S/MIME only) + 1.3. The Compose Menu - 66..33..117799.. ssmmiimmee__ddeeccrryypptt__ccoommmmaanndd + 2. MIME Type configuration with mime.types - Type: string - Default: "" + 3. MIME Viewer configuration with mailcap - This format string specifies a command which is used to decrypt - application/x-pkcs7-mime attachments. + 3.1. The Basics of the mailcap file - The OpenSSL command formats have their own set of printf-like - sequences similar to PGP's: - %%ff Expands to the name of a file containing a message. + 3.2. Secure use of mailcap - %%ss Expands to the name of a file containing the signature part of a - multipart/signed attachment when verifying it. + 3.3. Advanced mailcap Usage - %%kk The key-pair specified with ``$smime_default_key'' + 3.4. Example mailcap files - %%cc One or more certificate IDs. + 4. MIME Autoview - %%aa The algorithm used for encryption. + 5. MIME Multipart/Alternative - %%CC CA location: Depending on whether ``$smime_ca_location'' points - to a directory or file, this expands to "-CApath - ``$smime_ca_location''" or "-CAfile ``$smime_ca_location''". + 6. MIME Lookup - For examples on how to configure these formats, see the smime.rc in - the samples/ subdirectory which has been installed on your system - alongside the documentation. (S/MIME only) + Quite a bit of effort has been made to make Mutt-ng the premier text-mode + MIME MUA. Every effort has been made to provide the functionality that the + discerning MIME user requires, and the conformance to the standards + wherever possible. When configuring Mutt-ng for MIME, there are two + extratypes of configuration files which Mutt-ng uses. One is the + mime.types file, which contains the mapping of file extensions to IANA + MIME types. The other is the mailcap file, which specifies the external + commands to use for handling specific MIME types. - 66..33..118800.. ssmmiimmee__vveerriiffyy__ccoommmmaanndd +1. Using MIME in Mutt - Type: string - Default: "" + There are three areas/menus in Mutt-ng which deal with MIME, they are the + pager (while viewing a message), the attachment menu and the compose menu. - This command is used to verify S/MIME signatures of type - multipart/signed. (S/MIME only) + 1.1. Viewing MIME messages in the pager - 66..33..118811.. ssmmiimmee__vveerriiffyy__ooppaaqquuee__ccoommmmaanndd + When you select a message from the index and view it in the pager, Mutt + decodes the message to a text representation. Mutt-ng internally supports + a number of MIME types, including text/plain, text/enriched, + message/rfc822, and message/news .In addition, the export controlled + version of Mutt-ng recognizes a variety of PGP MIME types, including + PGP/MIME and application/pgp. - Type: string - Default: "" + Mutt-ng will denote attachments with a couple lines describing them. These + lines are of the form: - This command is used to verify S/MIME signatures of type - application/x-pkcs7-mime. (S/MIME only) + [-- Attachment #1: Description --] + [-- Type: text/plain, Encoding: 7bit, Size: 10000 --] - 66..33..118822.. ssmmiimmee__ssiiggnn__ccoommmmaanndd + Where the Description is the description or filename given for the + attachment, and the Encoding is one of + 7bit/8bit/quoted-printable/base64/binary. - Type: string - Default: "" + If Mutt-ng cannot deal with a MIME type, it will display a message like: - This command is used to created S/MIME signatures of type - multipart/signed, which can be read by all mail clients. (S/MIME - only) + [-- image/gif is unsupported (use 'v' to view this part) --] - 66..33..118833.. ssmmiimmee__ssiiggnn__ooppaaqquuee__ccoommmmaanndd + 1.2. The Attachment Menu - Type: string - Default: "" + The default binding for view-attachments is `v', which displays the + attachment menu for a message. The attachment menu displays a list ofthe + attachments in a message. From the attachment menu, you can save, print, + pipe, delete, and view attachments. You can apply these operations to a + group of attachments at once, by tagging the attachments and by using the + ``tag-prefix'' operator. You can also reply to the current message from + this menu, and only the current attachment (or the attachments tagged) + will be quoted in your reply. You can view attachments as text, or view + them using the mailcap viewer definition. - This command is used to created S/MIME signatures of type - application/x-pkcs7-signature, which can only be handled by mail - clients supporting the S/MIME extension. (S/MIME only) + Finally, you can apply the usual message-related functions (like + resend-message, and the reply and forward functions) to attachments of + type message/rfc822. - 66..33..118844.. ssmmiimmee__eennccrryypptt__ccoommmmaanndd + See the help on the attachment menu for more information. - Type: string - Default: "" + 1.3. The Compose Menu - This command is used to create encrypted S/MIME messages. (S/MIME - only) + The compose menu is the menu you see before you send a message. It allows + you to edit the recipient list, the subject, and other aspects of your + message. It also contains a list of the attachments of your message, + including the main body. From this menu, you can print, copy, filter, + pipe, edit, compose, review, and rename an attachment or a list of tagged + attachments. You can also modifying the attachment information, notably + the type, encoding and description. - 66..33..118855.. ssmmiimmee__ppkk77oouutt__ccoommmmaanndd + Attachments appear as follows: - Type: string - Default: "" + 1 [text/plain, 7bit, 1K] /tmp/mutt-euler-8082-0 + 2 [applica/x-gunzip, base64, 422K] ~/src/mutt-0.85.tar.gz - This command is used to extract PKCS7 structures of S/MIME signatures, - in order to extract the public X509 certificate(s). (S/MIME only) + The '-' denotes that Mutt-ng will delete the file after sending (or + postponing, or canceling) the message. It can be toggled with the + toggle-unlink command (default: u). The next field is the MIME + content-type, and can be changed with the edit-type command (default: ^T). + The next field is the encoding for the attachment, which allows a binary + message to be encoded for transmission on 7bit links. It can be changed + with the edit-encoding command (default: ^E). The next field is the size + of the attachment, rounded to kilobytes or megabytes. The next field is + the filename, which can be changed with the rename-file command (default: + R). The final field is the description of the attachment, and can be + changed with the edit-description command (default: d). - 66..33..118866.. ssmmiimmee__ggeett__cceerrtt__ccoommmmaanndd +2. MIME Type configuration with mime.types - Type: string - Default: "" + When you add an attachment to your mail message, Mutt-ng searches your + personal mime.types file at ${HOME}/.mime.types ,and then the system + mime.types file at /usr/local/share/mutt/mime.types or /etc/mime.types - This command is used to extract X509 certificates from a PKCS7 - structure. (S/MIME only) + The mime.types file consist of lines containing a MIME type and a space + separated list of extensions. For example: - 66..33..118877.. ssmmiimmee__ggeett__ssiiggnneerr__cceerrtt__ccoommmmaanndd + application/postscript ps eps + application/pgp pgp + audio/x-aiff aif aifc aiff - Type: string - Default: "" + A sample mime.types file comes with the Mutt-ng distribution, and should + contain most of the MIME types you are likely to use. - This command is used to extract only the signers X509 certificate from - a S/MIME signature, so that the certificate's owner may get compared - to the email's (S/MIME only) + If Mutt-ng can not determine the mime type by the extension of the file + you attach, it will look at the file. If the file is free of binary + information, Mutt-ng will assume that the file is plain text, and mark it + as text/plain. If the file contains binary information, then Mutt-ng will + mark it as application/octet-stream. You can change the MIME type that + Mutt-ng assigns to an attachment by using the edit-type command from the + compose menu (default: ^T). The MIME type is actually a major mime type + followed by the sub-type, separated by a '/'. 6 major types: application, + text, image, video, audio, and model have been approved after various + internet discussions. Mutt-ng recognises all of these if the appropriate + entry is found in the mime.types file. It also recognises other major mime + types, such as the chemical type that is widely used in the molecular + modelling community to pass molecular data in various forms to various + molecular viewers. Non-recognised mime types should only be used if the + recipient of the message is likely to be expecting such attachments. - 66..33..118888.. ssmmiimmee__iimmppoorrtt__cceerrtt__ccoommmmaanndd +3. MIME Viewer configuration with mailcap - Type: string - Default: "" + Mutt-ng supports RFC 1524 MIME Configuration, in particular the Unix + specific format specified in Appendix A of RFC 1524. This file format is + commonly referred to as the mailcap format. Many MIME compliant programs + utilize the mailcap format, allowing you to specify handling for all MIME + types in one place for all programs. Programs known to use this format + include Netscape, XMosaic, lynx and metamail. - This command is used to import a certificate via smime_keys. (S/MIME - only) + In order to handle various MIME types that Mutt-ng can not handle + internally, Mutt-ng parses a series of external configuration files to + find an external handler. The default search string for these files is a + colon delimited list set to - 66..33..118899.. ssmmiimmee__ggeett__cceerrtt__eemmaaiill__ccoommmmaanndd + ${HOME}/.mailcap:/usr/local/share/mutt/mailcap:/etc/mailcap:/etc/mailcap:/usr/etc/mailcap:/usr/local/etc/mailcap - Type: string - Default: "" + where $HOME is your home directory. - This command is used to extract the mail address(es) used for storing - X509 certificates, and for verification purposes (to check whether the - certificate was issued for the sender's mailbox). (S/MIME only) + In particular, the metamail distribution will install a mailcap file, + usually as /usr/local/etc/mailcap, which contains some baseline entries. - 66..33..119900.. ssmmiimmee__ddeeffaauulltt__kkeeyy + 3.1. The Basics of the mailcap file - Type: string - Default: "" + A mailcap file consists of a series of lines which are comments, blank, or + definitions. + + A comment line consists of a # character followed by anything you want. + + A blank line is blank. - This is the default key-pair to use for signing. This must be set to - the keyid (the hash-value that OpenSSL generates) to work properly - (S/MIME only) + A definition line consists of a content type, a view command, and any + number of optional fields. Each field of a definition line is dividedby a + semicolon ';' character. - 66..33..119911.. ssssll__ssttaarrttttllss + The content type is specified in the MIME standard type/subtype method. + For example, text/plain, text/html, image/gif, etc. In addition, the + mailcap format includes two formats for wildcards, one using the special + '*' subtype, the other is the implicit wild, where you only include the + major type. For example, image/* ,or video, will match all image types and + video types, respectively. - Type: quadoption - Default: yes + The view command is a Unix command for viewing the type specified. There + are two different types of commands supported. The default is to send the + body of the MIME message to the command on stdin. You can change this + behavior by using %s as a parameter to your view command. This will cause + Mutt-ng to save the body of the MIME message to a temporary file, and then + call the view command with the %s replaced by the name of the temporary + file. In both cases, Mutt-ng will turn over the terminal to the view + program until the program quits, at which time Mutt will remove the + temporary file if it exists. - If set (the default), mutt will attempt to use STARTTLS on servers - advertising the capability. When unset, mutt will not attempt to use - STARTTLS regardless of the server's capabilities. + So, in the simplest form, you can send a text/plain message to the + external pager more on stdin: - 66..33..119922.. cceerrttiiffiiccaattee__ffiillee + text/plain; more - Type: path - Default: "" + Or, you could send the message as a file: - This variable specifies the file where the certificates you trust are - saved. When an unknown certificate is encountered, you are asked if - you accept it or not. If you accept it, the certificate can also be - saved in this file and further connections are automatically accepted. + text/plain; more %s - You can also manually add CA certificates in this file. Any server - certificate that is signed with one of these CA certificates are also - automatically accepted. + Perhaps you would like to use lynx to interactively view a text/html + message: - Example: set certificate_file=~/.mutt/certificates + text/html; lynx %s - 66..33..119933.. ssssll__uusseessyysstteemmcceerrttss + In this case, lynx does not support viewing a file from stdin, so you must + use the %s syntax. Note: Some older versions of lynx contain a bug where + they will check the mailcap file for a viewer for text/html. They will + find the line which calls lynx, and run it. This causes lynx to + continuously spawn itself to view the object. - Type: boolean - Default: yes + On the other hand, maybe you don't want to use lynx interactively, youjust + want to have it convert the text/html to text/plain, then you can use: - If set to _y_e_s, mutt will use CA certificates in the system-wide - certificate store when checking if server certificate is signed by a - trusted CA. + text/html; lynx -dump %s | more - 66..33..119944.. eennttrrooppyy__ffiillee + Perhaps you wish to use lynx to view text/html files, and a pager on all + other text formats, then you would use the following: - Type: path - Default: "" + text/html; lynx %s + text/*; more - The file which includes random data that is used to initialize SSL - library functions. + This is the simplest form of a mailcap file. - 66..33..119955.. ssssll__uussee__ssssllvv22 + 3.2. Secure use of mailcap - Type: boolean - Default: yes + The interpretation of shell meta-characters embedded in MIME parameters + can lead to security problems in general. Mutt-ng tries to quote + parameters in expansion of %s syntaxes properly, and avoids risky + characters by substituting them, see the mailcap-sanitize variable. - This variables specifies whether to attempt to use SSLv2 in the SSL - authentication process. + Although mutt's procedures to invoke programs with mailcap seem to be + safe, there are other applications parsing mailcap, maybe taking less care + of it. Therefore you should pay attention to the following rules: - 66..33..119966.. ssssll__uussee__ssssllvv33 + Keep the %-expandos away from shell quoting. Don't quote them with single + or double quotes. Mutt-ng does this for you, the right way, as should any + other program which interprets mailcap. Don't put them into backtick + expansions. Be highly careful with eval statements, and avoid them if + possible at all. Trying to fix broken behaviour with quotes introduces new + leaks - there is no alternative to correct quoting in the first place. - Type: boolean - Default: yes + If you have to use the %-expandos' values in context where you need + quoting or backtick expansions, put that value into a shell variable and + reference the shell variable where necessary, as in the following example + (using $charset inside the backtick expansion is safe, since it is not + itself subject to any further expansion): - This variables specifies whether to attempt to use SSLv3 in the SSL - authentication process. + text/test-mailcap-bug; cat %s; copiousoutput; test=charset=%{charset} \ + && test "`echo $charset | tr '[A-Z]' '[a-z]'`" != iso-8859-1 - 66..33..119977.. ssssll__uussee__ttllssvv11 + 3.3. Advanced mailcap Usage - Type: boolean - Default: yes + 3.3.1. Optional Fields - This variables specifies whether to attempt to use TLSv1 in the SSL - authentication process. + In addition to the required content-type and view command fields, you can + add semi-colon ';' separated fields to set flags and other options. + Mutt-ng recognizes the following optional fields: - 66..33..119988.. ppiippee__sspplliitt + copiousoutput - Type: boolean - Default: no + This flag tells Mutt-ng that the command passes possibly large + amounts of text on stdout. This causes Mutt-ng to invoke a pager + (either the internal pager or the external pager defined by the + pager variable) on the output of the view command. Without this + flag, Mutt-ng assumes that the command is interactive. One could + use this to replace the pipe to more in the lynx -dump example in + the Basic section: - Used in connection with the _p_i_p_e_-_m_e_s_s_a_g_e command and the ``tag- - prefix'' operator. If this variable is unset, when piping a list of - tagged messages Mutt will concatenate the messages and will pipe them - as a single folder. When set, Mutt will pipe the messages one by one. - In both cases the messages are piped in the current sorted order, and - the ````$pipe_sep'''' separator is added after each message. + text/html; lynx -dump %s ; copiousoutput - 66..33..119999.. ppiippee__ddeeccooddee + This will cause lynx to format the text/html output as text/plain + and Mutt-ng will use your standard pager to display the results. - Type: boolean - Default: no + needsterminal - Used in connection with the _p_i_p_e_-_m_e_s_s_a_g_e command. When unset, Mutt - will pipe the messages without any preprocessing. When set, Mutt will - weed headers and will attempt to PGP/MIME decode the messages first. + Mutt-ng uses this flag when viewing attachments with auto-view ,in + order to decide whether it should honor the setting of the + wait-key variable or not. When an attachment is viewed using an + interactive program, and the corresponding mailcap entry has a + needsterminal flag, Mutt-ng will use wait-key and the exit + statusof the program to decide if it will ask you to press a key + after the external program has exited. In all other situations it + will not prompt you for a key. - 66..33..220000.. ppiippee__sseepp + compose= - Type: string - Default: "\n" + This flag specifies the command to use to create a new attachment + of a specific MIME type. Mutt-ng supports this from the compose + menu. - The separator to add between messages when piping a list of tagged - messages to an external Unix command. + composetyped= - 66..33..220011.. ppoopp__aauutthheennttiiccaattoorrss + This flag specifies the command to use to create a new attachment + of a specific MIME type. This command differs from the compose + command in that mutt will expect standard MIME headers on the + data. This can be used to specify parameters, filename, + description, etc. for a new attachment. Mutt-ng supports this from + the compose menu. - Type: string - Default: "" + print= - This is a colon-delimited list of authentication methods mutt may - attempt to use to log in to an POP server, in the order mutt should - try them. Authentication methods are either 'user', 'apop' or any - SASL mechanism, eg 'digest-md5', 'gssapi' or 'cram-md5'. This - parameter is case-insensitive. If this parameter is unset (the - default) mutt will try all available methods, in order from most- - secure to least-secure. + This flag specifies the command to use to print a specific MIME + type. Mutt-ng supports this from the attachment and compose menus. - Example: set pop_authenticators="digest-md5:apop:user" + edit= - 66..33..220022.. ppoopp__aauutthh__ttrryy__aallll + This flag specifies the command to use to edit a specific MIME + type. Mutt-ng supports this from the compose menu, and also uses + it to compose new attachments. Mutt-ng will default to the defined + editor for text attachments. - Type: boolean - Default: yes + nametemplate=