From 68e9c3fe5664c1e13093e24dd15415ac000af70c Mon Sep 17 00:00:00 2001 From: pdmef Date: Mon, 18 Apr 2005 11:04:13 +0000 Subject: [PATCH] Rocco Rutte: - sidebar cleanup: (partially?) fix $sidebar_newmail_only, prefix $shorten_hierarchy with sidebar_ (for consistency) - add $sidebar_number_format to eventually stop counting - add $sidebar_boundary (split chars for $sidebar_shorten_hierarchy) git-svn-id: svn://svn.berlios.de/mutt-ng/trunk@269 e385b8ad-14ed-0310-8656-cc95a2468c6d --- ChangeLog.mutt-ng | 7 + UPGRADING | 16 +- buffy.c | 15 +- doc/manual.txt | 13198 +++++++++++++++++++++++--------------------- globals.h | 2 + init.h | 49 +- sidebar.c | 255 +- sidebar.h | 2 + 8 files changed, 7161 insertions(+), 6383 deletions(-) diff --git a/ChangeLog.mutt-ng b/ChangeLog.mutt-ng index 7b27453..734f1b5 100644 --- a/ChangeLog.mutt-ng +++ b/ChangeLog.mutt-ng @@ -1,5 +1,12 @@ Changes specific to mutt-ng: +2005-04-18: + * sidebar updates: eventually counting can be disabled and + $sidebar_newmail_only works way better + +2005-04-18 (up to): + * Re-design, re-organization and cleanup still in progress + 2005-03-13: * Merged in latest mutt changes up to 1.5.9 diff --git a/UPGRADING b/UPGRADING index 6dbfbfe..5122cc0 100644 --- a/UPGRADING +++ b/UPGRADING @@ -10,13 +10,21 @@ This document is not the place for verbose documentation; it only offers the necessary keywords to look them up in the manual, ChangeLog or other sources of information. -Note: as development goes fast and as documentation is way behind it, -this still likely is incomplete. Please report missing items to - +2005-04-18: + + New Configuration Variables: + - $sidebar_boundary - boundary characters for name compression + - $sidebar_number_format - control if and how to print/count numbers + + Renamed Variables: + - $shorten_hierarchy is now named $sidebar_shorten_hierarchy + (still kept as synonym) 2005-03-16: + New Configuration Variables: - - $sidebar_newmail_only - if set, only mailboxes with new mail will be shown in the sidebar + - $sidebar_newmail_only - if set, only mailboxes with new mail will + be shown in the sidebar 2005-03-14 diff --git a/buffy.c b/buffy.c index 0112e55..24663cb 100644 --- a/buffy.c +++ b/buffy.c @@ -271,7 +271,7 @@ int mutt_buffy_check (int force) struct stat contex_sb; time_t now, last1; CONTEXT *ctx; - int i = 0, local = 0; + int i = 0, local = 0, count = 0; #ifdef USE_IMAP time_t last2; @@ -303,6 +303,8 @@ int mutt_buffy_check (int force) BuffyCount = 0; BuffyNotify = 0; + count = sidebar_need_count (); + if (!Context || !Context->path || (mx_is_local (Context->magic-1) && stat (Context->path, &contex_sb) != 0)) { /* check device ID and serial number instead of comparing paths */ @@ -335,7 +337,7 @@ int mutt_buffy_check (int force) case M_MMDF: /* only check on force or $mail_check reached */ if (force != 0 || (now - last1 >= BuffyTimeout)) { - if (SidebarWidth == 0 || !option (OPTMBOXPANE)) { + if (!count) { if (STAT_CHECK) { BuffyCount++; tmp->new = 1; @@ -347,8 +349,7 @@ int mutt_buffy_check (int force) } #endif } - else if (SidebarWidth > 0 && option (OPTMBOXPANE) && - (STAT_CHECK || tmp->msgcount == 0)) { + else if (STAT_CHECK || tmp->msgcount == 0) { /* sidebar visible */ BuffyCount++; if ((ctx = @@ -389,7 +390,7 @@ int mutt_buffy_check (int force) if (tmp->new == 0) { BuffyCount++; tmp->new = 1; - if (SidebarWidth == 0 || !option (OPTMBOXPANE)) + if (!count) /* if sidebar invisible -> done */ break; } @@ -400,7 +401,7 @@ int mutt_buffy_check (int force) } closedir (dirp); - if (SidebarWidth > 0 && option (OPTMBOXPANE)) { + if (count) { /* only count total mail if sidebar visible */ snprintf (path, sizeof (path), "%s/cur", tmp->path); if ((dirp = opendir (path)) == NULL) { @@ -432,7 +433,7 @@ int mutt_buffy_check (int force) if (force != 0 || (now - last1 >= BuffyTimeout)) { if ((tmp->new = mh_buffy (tmp->path)) > 0) BuffyCount++; - if (SidebarWidth > 0 && option (OPTMBOXPANE)) { + if (count) { DIR *dp; struct dirent *de; diff --git a/doc/manual.txt b/doc/manual.txt index 6c8cec7..c127ae9 100644 --- a/doc/manual.txt +++ b/doc/manual.txt @@ -1,7820 +1,8564 @@ - The Mutt E-Mail Client - by Michael Elkins - version 1.5.8 - - ``All mail clients suck. This one just sucks less.'' -me, circa 1995 - ______________________________________________________________________ - - Table of Contents - - 1. Introduction - 1.1 Mutt Home Page - 1.2 Mutt-ng Home Page - 1.3 Mailing Lists - 1.4 Software Distribution Sites - 1.5 IRC - 1.6 Weblog - 1.7 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 Spam detection - 3.25 Setting variables - 3.26 Reading initialization commands from another file - 3.27 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 Usingg the sidebar - 4.6 External Address Queries - 4.7 Mailbox Formats - 4.8 Mailbox Shortcuts - 4.9 Handling Mailing Lists - 4.10 Editing threads - 4.10.1 Linking threads - 4.10.2 Breaking threads - 4.11 Delivery Status Notification (DSN) Support - 4.12 POP3 Support (OPTIONAL) - 4.13 IMAP Support (OPTIONAL) - 4.13.1 The Folder Browser - 4.13.2 Authentication - 4.14 Managing multiple IMAP/POP accounts (OPTIONAL) - 4.15 Start a WWW Browser on URLs (EXTERNAL) - 4.16 Compressed folders Support (OPTIONAL) - 4.16.1 Open a compressed mailbox for reading - 4.16.2 Write a compressed mailbox - 4.16.3 Append a message to a compressed mailbox - 4.16.4 Encrypted folders - - 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 mime.types - 5.3 MIME Viewer configuration with mailcap - 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 ask_follow_up - 6.3.10 ask_x_comment_to - 6.3.11 askbcc - 6.3.12 askcc - 6.3.13 assumed_charset - 6.3.14 attach_format - 6.3.15 attach_sep - 6.3.16 attach_split - 6.3.17 attribution - 6.3.18 auto_tag - 6.3.19 autoedit - 6.3.20 beep - 6.3.21 beep_new - 6.3.22 bounce - 6.3.23 bounce_delivered - 6.3.24 catchup_newsgroup - 6.3.25 certificate_file - 6.3.26 charset - 6.3.27 check_new - 6.3.28 collapse_unread - 6.3.29 compose_format - 6.3.30 config_charset - 6.3.31 confirmappend - 6.3.32 confirmcreate - 6.3.33 connect_timeout - 6.3.34 content_type - 6.3.35 copy - 6.3.36 crypt_autoencrypt - 6.3.37 crypt_autopgp - 6.3.38 crypt_autosign - 6.3.39 crypt_autosmime - 6.3.40 crypt_replyencrypt - 6.3.41 crypt_replysign - 6.3.42 crypt_replysignencrypted - 6.3.43 crypt_timestamp - 6.3.44 crypt_use_gpgme - 6.3.45 crypt_verify_sig - 6.3.46 date_format - 6.3.47 default_hook - 6.3.48 delete - 6.3.49 delete_untag - 6.3.50 digest_collapse - 6.3.51 display_filter - 6.3.52 dotlock_program - 6.3.53 dsn_notify - 6.3.54 dsn_return - 6.3.55 duplicate_threads - 6.3.56 edit_headers - 6.3.57 editor - 6.3.58 encode_from - 6.3.59 envelope_from - 6.3.60 escape - 6.3.61 fast_reply - 6.3.62 fcc_attach - 6.3.63 fcc_clear - 6.3.64 file_charset - 6.3.65 folder - 6.3.66 folder_format - 6.3.67 followup_to - 6.3.68 followup_to_poster - 6.3.69 force_name - 6.3.70 forward_decode - 6.3.71 forward_decrypt - 6.3.72 forward_edit - 6.3.73 forward_format - 6.3.74 forward_quote - 6.3.75 from - 6.3.76 gecos_mask - 6.3.77 group_index_format - 6.3.78 hdrs - 6.3.79 header - 6.3.80 help - 6.3.81 hidden_host - 6.3.82 hide_limited - 6.3.83 hide_missing - 6.3.84 hide_thread_subject - 6.3.85 hide_top_limited - 6.3.86 hide_top_missing - 6.3.87 history - 6.3.88 honor_followup_to - 6.3.89 hostname - 6.3.90 ignore_list_reply_to - 6.3.91 imap_authenticators - 6.3.92 imap_delim_chars - 6.3.93 imap_force_ssl - 6.3.94 imap_headers - 6.3.95 imap_home_namespace - 6.3.96 imap_keepalive - 6.3.97 imap_list_subscribed - 6.3.98 imap_pass - 6.3.99 imap_passive - 6.3.100 imap_peek - 6.3.101 imap_reconnect - 6.3.102 imap_servernoise - 6.3.103 imap_user - 6.3.104 implicit_autoview - 6.3.105 include - 6.3.106 include_onlyfirst - 6.3.107 indent_string - 6.3.108 index_format - 6.3.109 inews - 6.3.110 ispell - 6.3.111 keep_flagged - 6.3.112 list_reply - 6.3.113 locale - 6.3.114 mail_check - 6.3.115 mailcap_path - 6.3.116 mailcap_sanitize - 6.3.117 maildir_trash - 6.3.118 mark_old - 6.3.119 markers - 6.3.120 mask - 6.3.121 max_line_length - 6.3.122 mbox - 6.3.123 mbox_type - 6.3.124 menu_context - 6.3.125 menu_scroll - 6.3.126 message_format - 6.3.127 meta_key - 6.3.128 metoo - 6.3.129 mh_purge - 6.3.130 mh_seq_flagged - 6.3.131 mh_seq_replied - 6.3.132 mh_seq_unseen - 6.3.133 mime_forward - 6.3.134 mime_forward_decode - 6.3.135 mime_forward_rest - 6.3.136 mime_subject - 6.3.137 mix_entry_format - 6.3.138 mixmaster - 6.3.139 move - 6.3.140 msgid_format - 6.3.141 narrow_tree - 6.3.142 news_cache_dir - 6.3.143 news_server - 6.3.144 newsrc - 6.3.145 nntp_context - 6.3.146 nntp_load_description - 6.3.147 nntp_pass - 6.3.148 nntp_poll - 6.3.149 nntp_reconnect - 6.3.150 nntp_user - 6.3.151 operating_system - 6.3.152 pager - 6.3.153 pager_context - 6.3.154 pager_format - 6.3.155 pager_index_lines - 6.3.156 pager_stop - 6.3.157 pgp_auto_decode - 6.3.158 pgp_autoinline - 6.3.159 pgp_check_exit - 6.3.160 pgp_clearsign_command - 6.3.161 pgp_decode_command - 6.3.162 pgp_decrypt_command - 6.3.163 pgp_encrypt_only_command - 6.3.164 pgp_encrypt_sign_command - 6.3.165 pgp_entry_format - 6.3.166 pgp_export_command - 6.3.167 pgp_getkeys_command - 6.3.168 pgp_good_sign - 6.3.169 pgp_ignore_subkeys - 6.3.170 pgp_import_command - 6.3.171 pgp_list_pubring_command - 6.3.172 pgp_list_secring_command - 6.3.173 pgp_long_ids - 6.3.174 pgp_mime_auto - 6.3.175 pgp_replyinline - 6.3.176 pgp_retainable_sigs - 6.3.177 pgp_show_unusable - 6.3.178 pgp_sign_as - 6.3.179 pgp_sign_command - 6.3.180 pgp_sort_keys - 6.3.181 pgp_strict_enc - 6.3.182 pgp_timeout - 6.3.183 pgp_use_gpg_agent - 6.3.184 pgp_verify_command - 6.3.185 pgp_verify_key_command - 6.3.186 pipe_decode - 6.3.187 pipe_sep - 6.3.188 pipe_split - 6.3.189 pop_auth_try_all - 6.3.190 pop_authenticators - 6.3.191 pop_checkinterval - 6.3.192 pop_delete - 6.3.193 pop_host - 6.3.194 pop_last - 6.3.195 pop_pass - 6.3.196 pop_reconnect - 6.3.197 pop_user - 6.3.198 post_indent_string - 6.3.199 post_moderated - 6.3.200 postpone - 6.3.201 postponed - 6.3.202 preconnect - 6.3.203 print - 6.3.204 print_command - 6.3.205 print_decode - 6.3.206 print_split - 6.3.207 prompt_after - 6.3.208 query_command - 6.3.209 quit - 6.3.210 quote_empty - 6.3.211 quote_quoted - 6.3.212 quote_regexp - 6.3.213 read_inc - 6.3.214 read_only - 6.3.215 realname - 6.3.216 recall - 6.3.217 record - 6.3.218 reply_regexp - 6.3.219 reply_self - 6.3.220 reply_to - 6.3.221 resolve - 6.3.222 reverse_alias - 6.3.223 reverse_name - 6.3.224 reverse_realname - 6.3.225 rfc2047_parameters - 6.3.226 save_address - 6.3.227 save_empty - 6.3.228 save_name - 6.3.229 save_unsubscribed - 6.3.230 score - 6.3.231 score_threshold_delete - 6.3.232 score_threshold_flag - 6.3.233 score_threshold_read - 6.3.234 send_charset - 6.3.235 sendmail - 6.3.236 sendmail_wait - 6.3.237 shell - 6.3.238 shorten_hierarchy - 6.3.239 show_new_news - 6.3.240 show_only_unread - 6.3.241 sidebar_delim - 6.3.242 sidebar_visible - 6.3.243 sidebar_width - 6.3.244 sig_dashes - 6.3.245 sig_on_top - 6.3.246 signature - 6.3.247 signoff_string - 6.3.248 simple_search - 6.3.249 sleep_time - 6.3.250 smart_wrap - 6.3.251 smileys - 6.3.252 smime_ask_cert_label - 6.3.253 smime_ca_location - 6.3.254 smime_certificates - 6.3.255 smime_decrypt_command - 6.3.256 smime_decrypt_use_default_key - 6.3.257 smime_default_key - 6.3.258 smime_encrypt_command - 6.3.259 smime_encrypt_with - 6.3.260 smime_get_cert_command - 6.3.261 smime_get_cert_email_command - 6.3.262 smime_get_signer_cert_command - 6.3.263 smime_import_cert_command - 6.3.264 smime_is_default - 6.3.265 smime_keys - 6.3.266 smime_pk7out_command - 6.3.267 smime_sign_command - 6.3.268 smime_sign_opaque_command - 6.3.269 smime_timeout - 6.3.270 smime_verify_command - 6.3.271 smime_verify_opaque_command - 6.3.272 smtp_auth_password - 6.3.273 smtp_auth_username - 6.3.274 smtp_host - 6.3.275 smtp_port - 6.3.276 sort - 6.3.277 sort_alias - 6.3.278 sort_aux - 6.3.279 sort_browser - 6.3.280 sort_re - 6.3.281 spam_separator - 6.3.282 spoolfile - 6.3.283 ssl_ca_certificates_file - 6.3.284 ssl_client_cert - 6.3.285 ssl_min_dh_prime_bits - 6.3.286 ssl_starttls - 6.3.287 ssl_use_sslv3 - 6.3.288 ssl_use_tlsv1 - 6.3.289 status_chars - 6.3.290 status_format - 6.3.291 status_on_top - 6.3.292 strict_mime - 6.3.293 strict_threads - 6.3.294 stuff_quoted - 6.3.295 suspend - 6.3.296 text_flowed - 6.3.297 thorough_search - 6.3.298 thread_received - 6.3.299 tilde - 6.3.300 timeout - 6.3.301 tmpdir - 6.3.302 to_chars - 6.3.303 trash - 6.3.304 tunnel - 6.3.305 umask - 6.3.306 uncollapse_jump - 6.3.307 use_8bitmime - 6.3.308 use_domain - 6.3.309 use_from - 6.3.310 user_agent - 6.3.311 visual - 6.3.312 wait_key - 6.3.313 weed - 6.3.314 wrap_search - 6.3.315 wrapmargin - 6.3.316 write_bcc - 6.3.317 write_inc - 6.3.318 x_comment_to - 6.3.319 xterm_icon - 6.3.320 xterm_set_titles - 6.3.321 xterm_title - 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. - - This documentation additionaly contains documentation to MMuutttt--NNGG, 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-ng features, plus many more. - - 11..11.. MMuutttt HHoommee PPaaggee - - http://www.mutt.org/ - - 11..22.. MMuutttt--nngg HHoommee PPaaggee - - http://mutt-ng.berlios.de/ - - 11..33.. MMaaiilliinngg LLiissttss - - +o mutt-ng-users@lists.berlios.de -- This is where the mutt-ng user - support happens. - - +o mutt-ng-devel@lists.berlios.de -- The development mailing list for - mutt-ng - - 11..44.. SSooffttwwaarree DDiissttrriibbuuttiioonn SSiitteess - - So far, there are no official releases of Mutt-ng, but you can - download daily snapshots from http://mutt-ng.berlios.de/snapshots/ - - 11..55.. IIRRCC - - Visit channel _#_m_u_t_t_n_g on irc.freenode.net (www.freenode.net) to chat - with other people interested in Mutt-ng. - - 11..66.. WWeebblloogg - - 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. - - 11..77.. 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 - 22..22.. EEddiittiinngg IInnppuutt FFiieellddss + TThhee MMuutttt--nngg EE--MMaaiill CClliieenntt - 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. + by Michael Elkins and others. - ^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 + version 1.5.9 - 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 + AAbbssttrraacctt - bind editor backspace + ``All mail clients suck. This one just sucks less.'' -me, circa 1995 - 22..33.. RReeaaddiinngg MMaaiill -- TThhee IInnddeexx aanndd PPaaggeerr + _1_. _I_n_t_r_o_d_u_c_t_i_o_n - 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.'' - - The next few sections describe the functions provided in each of these - modes. - - 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 - - +o sseett--ffllaagg (default: w) - - +o 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 + MMuutttt--nngg 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 mes- + sages. - Colors are - 0 black - 1 red - 2 green - 3 yellow - 4 blue - 5 magenta - 6 cyan - 7 white + This documentation additionally contains documentation to MMuutttt--NNGG, 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 fea- + tures. 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. - 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_._1 _M_u_t_t_-_n_g _H_o_m_e _P_a_g_e - 22..33..33.. TThhrreeaaddeedd MMooddee + http://www.muttng.org - 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. + _1_._2 _M_a_i_l_i_n_g _L_i_s_t_s - ^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 regular expressions 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_<_i_d_> ] - - ``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-ng - usable right out of the box, it is often desirable to tailor Mutt 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'' ``command line'' 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. - - .muttrc (or .muttngrc for Mutt-ng) 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, - - set record=+sent_on_$HOSTNAME - - The commands understood by mutt are explained in the next paragraphs. - For a complete list, see the ``command reference''. - - 33..22.. DDeeffiinniinngg//UUssiinngg aalliiaasseess - - Usage: alias _k_e_y _a_d_d_r_e_s_s [ , _a_d_d_r_e_s_s, ... ] - - 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. Multiple maps may be - specified by separating them with commas (no additional whitespace is - allowed). The currently defined maps are: + +o mutt-ng-users@lists.berlios.de -- This is where the mutt-ng user support + happens. - 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. - - ccoommppoossee - The compose menu is the screen used when sending a new message. + +o mutt-ng-devel@lists.berlios.de -- The development mailing list for mutt-ng - 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 - (`` ''). - - _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. - - 33..44.. DDeeffiinniinngg aalliiaasseess ffoorr cchhaarraacctteerr sseettss + _1_._3 _S_o_f_t_w_a_r_e _D_i_s_t_r_i_b_u_t_i_o_n _S_i_t_e_s - 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 + So far, there are no official releases of Mutt-ng, but you can download daily + snapshots from http://mutt-ng.berlios.de/snapshots/ - 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. - - 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. + The Mutt-ng E-Mail Client 1 - 33..55.. SSeettttiinngg vvaarriiaabblleess bbaasseedd uuppoonn mmaaiillbbooxx + The Mutt-ng E-Mail Client 2 - Usage: folder-hook [!]_r_e_g_e_x_p _c_o_m_m_a_n_d + _1_._4 _I_R_C - 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. + Visit channel _#_m_u_t_t_n_g on irc.freenode.net (www.freenode.net) to chat with other + people interested in Mutt-ng. - 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. + _1_._5 _W_e_b_l_o_g - 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: + 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. - folder-hook mutt set sort=threads + _1_._6 _C_o_p_y_r_i_g_h_t - 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 ``.'': + Mutt is Copyright (C) 1996-2000 Michael R. Elkins and others - folder-hook . set sort=date-sent + 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 ver- + sion. - 33..66.. KKeeyybbooaarrdd mmaaccrrooss + 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. - 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 ] + 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. - 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. + _2_. _G_e_t_t_i_n_g _S_t_a_r_t_e_d - _m_e_n_u is the ``map'' 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 the - commas separating them. + This section is intended as a brief overview of how to use Mutt-ng. 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. --> - _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''. + The key bindings 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 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). + The first thing you need to do is invoke mutt-ng simply by typing muttng at the + command line. There are various command-line options, see either the muttng + man page or the _r_e_f_e_r_e_n_c_e (section 6.1 , page 62). - Optionally you can specify a descriptive text after _s_e_q_u_e_n_c_e, which is - shown in the help screens. + If you have used mutt in the past the easiest thing to have a proper configura- + tion file is to source /.muttrc in /.muttngrc. - NNoottee:: Macro definitions (if any) listed in the help screen(s), are - silently truncated at the screen width, and are not wrapped. + _2_._1 _M_o_v_i_n_g _A_r_o_u_n_d _i_n _M_e_n_u_s - 33..77.. UUssiinngg ccoolloorr aanndd mmoonnoo vviiddeeoo aattttrriibbuutteess + Information is presented in menus, very similar to ELM. Here is a table show- + ing the common keys used to navigate menus in Mutt. - 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 ... ] - 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). + The Mutt-ng E-Mail Client 3 - _o_b_j_e_c_t can be one of: + 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 - +o attachment + _2_._2 _E_d_i_t_i_n_g _I_n_p_u_t _F_i_e_l_d_s - +o body (match _r_e_g_e_x_p in the body of messages) + 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. + + ^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 - +o bold (hiliting bold patterns in the body of messages) + You can remap the _e_d_i_t_o_r functions using the _b_i_n_d (section 3.3 , page 17) com- + mand. 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 - +o error (error messages printed by Mutt) + bind editor backspace - +o header (match _r_e_g_e_x_p in the message header) + _2_._3 _R_e_a_d_i_n_g _M_a_i_l _- _T_h_e _I_n_d_e_x _a_n_d _P_a_g_e_r - +o hdrdefault (default color of the message header in the pager) + Similar to many other mail clients, there are two modes in which mail is read + in Mutt-ng. 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.'' - +o index (match _p_a_t_t_e_r_n in the message index) + The Mutt-ng E-Mail Client 4 - +o indicator (arrow or bar used to indicate the current item in a - menu) + The next few sections describe the functions provided in each of these modes. - +o markers (the ``+'' markers at the beginning of wrapped lines in the - pager) + _2_._3_._1 _T_h_e _M_e_s_s_a_g_e _I_n_d_e_x - +o message (informational messages) + 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 + + _2_._3_._1_._1 _S_t_a_t_u_s _F_l_a_g_s + + In addition to who sent the message and the subject, a short summary of the + disposition of each message is printed beside the message number. Zero or more + of the following ``flags'' may appear, which mean: + + D + message is deleted (is marked for deletion) + + d + message have attachments marked for deletion + + K + contains a PGP public key + + N + message is new + + The Mutt-ng E-Mail Client 5 + + O + message is old + + P + message is PGP encrypted + + r + message has been replied to + + 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 sseett--ffllaagg (default: w) + + +o cclleeaarr--ffllaagg (default: W) + + Furthermore, the following flags reflect who the message is addressed to. They + can be customized with the _$_t_o___c_h_a_r_s (section 6.3.313 , page 141) 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 + + L + message is sent to a subscribed mailing list + + _2_._3_._2 _T_h_e _P_a_g_e_r + + By default, Mutt-ng 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 fea- + tureful. + + The Mutt-ng E-Mail Client 6 + + 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 _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 under- + line. 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 _c_o_l_o_r + (section 3.7 , page 21) objects to specify a color or mono attribute for them. - +o normal + Additionally, the internal pager supports the ANSI escape sequences for charac- + ter attributes. Mutt-ng translates them into the correct color and character + settings. The sequences Mutt-ng supports are: - +o quoted (text matching ``$quote_regexp'' in the body of a message) + 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 - +o quoted1, quoted2, ..., quotedNN (higher levels of quoting) + Colors are + 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 _a_u_t_o_v_i_e_w (section 5.4 , page 60) script for high- + lighting purposes. NNoottee:: If you change the colors for your display, for - +o search (hiliting of words in the pager) + The Mutt-ng E-Mail Client 7 + + example by changing the color associated with color2 for your xterm, then that + color will be used instead of green. + + _2_._3_._3 _T_h_r_e_a_d_e_d _M_o_d_e - +o signature + When the mailbox is _s_o_r_t_e_d (section 6.3.285 , page 133) 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. - +o status (mode lines used to display info about the mailbox or - message) + ^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 _$_i_n_d_e_x___f_o_r_m_a_t (sec- + tion 6.3.112 , page 91). For example, you could use "%?M?(#%03M)&(%4l)?" in + _$_i_n_d_e_x___f_o_r_m_a_t (section 6.3.112 , page 91) to optionally display the number of + hidden messages if the thread is collapsed. + + See also: _$_s_t_r_i_c_t___t_h_r_e_a_d_s (section 6.3.302 , page 139). + + _2_._3_._4 _M_i_s_c_e_l_l_a_n_e_o_u_s _F_u_n_c_t_i_o_n_s + + ccrreeaattee--aalliiaass + (default: a) + + Creates a new alias based upon the current message (or prompts for a new one). + Once editing is complete, an _a_l_i_a_s (section 3.2 , page 16) command is added to + the file specified by the _$_a_l_i_a_s___f_i_l_e (section 6.3.3 , page 65) variable for + future use. NNoottee:: Specifying an _$_a_l_i_a_s___f_i_l_e (section 6.3.3 , page 65) does not + add the aliases specified there-in, you must also _s_o_u_r_c_e (section 3.26 , page + 32) 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. Techni- + cally, this function will temporarily change the MIME content types of the body + parts containing PGP data; this is similar to the _e_d_i_t_-_t_y_p_e (section 2.3.4 , + page 8) function's effect. + + The Mutt-ng E-Mail Client 8 + + ddiissppllaayy--ttooggggllee--wweeeedd + (default: h) + + Toggles the weeding of message header fields specified by _i_g_n_o_r_e (section + 3.8 , page 23) 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 fin- + ished editing, the changed message will be appended to the current folder, and + the original message will be marked for deletion. - +o tilde (the ``~'' used to pad blank lines in the pager) + 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 _a_t_t_a_c_h_m_e_n_t _m_e_n_u (section 5.1.2 , page 53), you can + change any attachment's content type. These changes are not persistent, and get + lost upon changing folders. - +o tree (thread tree drawn in the message index and attachment menu) + Note that this command is also available on the _c_o_m_p_o_s_e _m_e_n_u (section 5.1.3 , + page 53). 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 config- + uration file. A common use is to check the settings of variables, or in con- + junction with _m_a_c_r_o_s (section 3.6 , page 20) to change settings on the fly. - +o underline (hiliting underlined patterns in the body of messages) + 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 mis- + spelled the passphrase. + + lliisstt--rreeppllyy + (default: L) + + Reply to the current or tagged message(s) by extracting any addresses which + + The Mutt-ng E-Mail Client 9 + + match the regular expressions given by the _l_i_s_t_s _o_r _s_u_b_s_c_r_i_b_e (section 3.10 , + page 24) commands, but also honor any Mail-Followup-To header(s) if the + _$_h_o_n_o_r___f_o_l_l_o_w_u_p___t_o (section 6.3.91 , page 86) configuration variable is set. + Using this when replying to messages posted to mailing lists helps avoid dupli- + cate 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 _$_p_i_p_e___d_e_c_o_d_e (section 6.3.192 , page 112), _$_p_i_p_e___s_p_l_i_t + (section 6.3.194 , page 112), _$_p_i_p_e___s_e_p (section 6.3.193 , page 112) and + _$_w_a_i_t___k_e_y (section 6.3.325 , page 144) control the exact behavior 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 orig- + inal mail structure. Note that the amount of headers included here depends on + the value of the _$_w_e_e_d (section 6.3.326 , page 144) 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 mes- + sage/rfc822 body part. + + sshheellll--eessccaappee + (default: !) + + Asks for an external Unix command and executes it. The _$_w_a_i_t___k_e_y (section + 6.3.325 , page 144) 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. + + ttooggggllee--qquuootteedd + (default: T) + + The _p_a_g_e_r uses the _$_q_u_o_t_e___r_e_g_e_x_p (section 6.3.218 , page 118) variable to + detect quoted text when displaying the body of the message. This function tog- + gles 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. - _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: + _2_._4 _S_e_n_d_i_n_g _M_a_i_l - +o white + The following bindings are available in the _i_n_d_e_x for sending messages. - +o black + The Mutt-ng E-Mail Client 10 - +o green + 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 - +o magenta + Bouncing a message sends the message as is to the recipient you specify. For- + warding a message allows you to add comments or modify the message you are for- + warding. These items are discussed in greater detail in the next chapter + _`_`_F_o_r_w_a_r_d_i_n_g _a_n_d _B_o_u_n_c_i_n_g _M_a_i_l_'_' (section 2.5 , page 13). - +o blue + Mutt-ng 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 _$_a_s_k_c_c (section 6.3.12 , page 67), _$_a_s_k_b_c_c (section + 6.3.11 , page 67), _$_a_u_t_o_e_d_i_t (section 6.3.19 , page 69), _$_b_o_u_n_c_e (section + 6.3.22 , page 70), and _$_f_a_s_t___r_e_p_l_y (section 6.3.61 , page 78) for changing + how Mutt asks these questions. - +o cyan + Mutt will then automatically start your _$_e_d_i_t_o_r (section 6.3.57 , page 77) on + the message body. If the _$_e_d_i_t___h_e_a_d_e_r_s (section 6.3.56 , page 77) variable is + set, the headers will be at the top of the message in your editor. Any mes- + sages you are replying to will be added in sort order to the message, with + appropriate _$_a_t_t_r_i_b_u_t_i_o_n (section 6.3.17 , page 69), _$_i_n_d_e_n_t___s_t_r_i_n_g (section + 6.3.111 , page 90) and _$_p_o_s_t___i_n_d_e_n_t___s_t_r_i_n_g (section 6.3.204 , page 115). + When forwarding a message, if the _$_m_i_m_e___f_o_r_w_a_r_d (section 6.3.139 , page 98) + variable is unset, a copy of the forwarded message will be included. If you + have specified a _$_s_i_g_n_a_t_u_r_e (section 6.3.255 , page 126), 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: + + The Mutt-ng E-Mail Client 11 + + 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 mes- + sages 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 _$_s_t_a_t_u_s___f_o_r_m_a_t (section 6.3.299 , page 137) will change to a + 'A' to indicate that you are in attach-message mode. + + _2_._4_._1 _E_d_i_t_i_n_g _t_h_e _m_e_s_s_a_g_e _h_e_a_d_e_r + + 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 _e_d_i_t___h_e_a_d_e_r_s (section 6.3.56 , page 77). + + The Mutt-ng E-Mail Client 12 + + _2_._4_._2 _U_s_i_n_g _M_u_t_t _w_i_t_h _P_G_P + + If you want to use PGP, you can specify + + Pgp: [ E | S | S_<_i_d_> ] + + ``E'' encrypts, ``S'' signs and ``S'' signs with the given key, setting + _$_p_g_p___s_i_g_n___a_s (section 6.3.184 , page 110) 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 _$_p_g_p___e_n_t_r_y___f_o_r_- + _m_a_t (section 6.3.171 , page 107)) have obvious meanings. But some explana- + tions 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 capabili- + ties: 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. + + The Mutt-ng E-Mail Client 13 - +o yellow + _2_._4_._3 _S_e_n_d_i_n_g _a_n_o_n_y_m_o_u_s _m_e_s_s_a_g_e_s _v_i_a _m_i_x_m_a_s_t_e_r_. - +o red + 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 ver- + sions or the later so-called version 3 betas, of which the latest appears to be + called 2.9b23. - +o default + To use it, you'll have to obey certain restrictions. Most important, you can- + not 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. - +o color_x + 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. - _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). + 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 posi- + tion, 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. - 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): + Note that different remailers do have different capabilities, indicated in the + %c entry of the remailer menu lines (see _$_m_i_x___e_n_t_r_y___f_o_r_m_a_t (section 6.3.143 , + page 99)). Most important is the ``middleman'' capability, indicated by a cap- + ital ``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. + + _2_._5 _F_o_r_w_a_r_d_i_n_g _a_n_d _B_o_u_n_c_i_n_g _M_a_i_l + + Bouncing and forwarding let you send an existing message to recipients that you + specify. Bouncing a message uses the _s_e_n_d_m_a_i_l (section 6.3.241 , page 123) + 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 com- + ments). + + 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 _$_m_i_m_e___f_o_r_w_a_r_d (section 6.3.139 , page 98) vari- + able. Decoding of attachments, like in the pager, can be controlled by the + _$_f_o_r_w_a_r_d___d_e_c_o_d_e (section 6.3.71 , page 81) and _$_m_i_m_e___f_o_r_w_a_r_d___d_e_c_o_d_e (section + + The Mutt-ng E-Mail Client 14 + + 6.3.140 , page 99) 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 exam- + ple, can be set to ``ask-no''. + + The inclusion of headers is controlled by the current setting of the _$_w_e_e_d + (section 6.3.326 , page 144) variable, unless _m_i_m_e___f_o_r_w_a_r_d (section 6.3.139 , + page 98) is set. + + Editing the message to forward follows the same procedure as sending or reply- + ing to a message does. + + _2_._6 _P_o_s_t_p_o_n_i_n_g _M_a_i_l + + 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 _$_p_o_s_t_p_o_n_e_d (section 6.3.207 , page 115) 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 _$_p_o_s_t_p_o_n_e (section 6.3.206 , page 115) quad-option. + + _2_._7 _R_e_a_d_i_n_g _n_e_w_s _v_i_a _N_N_T_P + + 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 _$_n_e_w_s_r_c (section 6.3.150 , page 102) variable. Article headers are + cached and can be loaded from file when newsgroup entered instead loading from + newsserver. - set COLORFGBG="green;black" - export COLORFGBG + _3_. _C_o_n_f_i_g_u_r_a_t_i_o_n - 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. + While the default configuration (or ``preferences'') make Mutt-ng usable right + out of the box, it is often desirable to tailor Mutt to suit your own tastes. + When Mutt-ng is first invoked, it will attempt to read the ``system'' configu- + ration file (defaults set by your local system administrator), unless the + ``-n'' _c_o_m_m_a_n_d _l_i_n_e (section 6.1 , page 62) 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 - 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. + The Mutt-ng E-Mail Client 15 - 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. + subdirectory named .mutt, mutt try to load a file named .muttng/muttngrc. - If your terminal does not support color, it is still possible change - the video attributes through the use of the ``mono'' command: + .muttrc (or .muttngrc for Mutt-ng) is the file where you will usually place + your _c_o_m_m_a_n_d_s (section 6.2 , page 62) to configure Mutt. - 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 ... ] + 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 run- + ning 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'' _c_o_m_m_a_n_d _l_i_n_e (section 6.1 , page + 62) switch or using the show-version key (default: V) from the index menu. - where _a_t_t_r_i_b_u_t_e is one of the following: + _3_._1 _S_y_n_t_a_x _o_f _I_n_i_t_i_a_l_i_z_a_t_i_o_n _F_i_l_e_s - +o none + An initialization file consists of a series of _c_o_m_m_a_n_d_s (section 6.2 , page + 62). Each line of the file may contain one or more commands. When multiple + commands are used, they must be separated by a semicolon (;). - +o bold + set realname='Mutt user' ; ignore x- - +o underline + 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, - +o reverse + my_hdr X-Disclaimer: Why are you listening to me? # This is a comment - +o standout + Single quotes (') and double quotes (') can be used to quote strings which con- + tain 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 sin- + gle 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. - 33..88.. IIggnnoorriinngg ((wweeeeddiinngg)) uunnwwaanntteedd mmeessssaaggee hheeaaddeerrss + \ quotes the next character, just as in shells such as bash and zsh. For exam- + ple, 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. - Usage: [un]ignore _p_a_t_t_e_r_n [ _p_a_t_t_e_r_n ... ] + set realname="Michael \"MuttDude\" Elkins" - 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. + ``\\'' means to insert a literal ``\'' into the line. ``\n'' and ``\r'' have + their usual C meanings of linefeed and carriage-return, respectively. - 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. + 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. - 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''. + Please note that, unlike the various shells, mutt-ng interprets a ``\'' at the - ``unignore *'' will remove all tokens from the ignore list. + The Mutt-ng E-Mail Client 16 - For example: + end of a line also in comments. This allows you to disable a command split over + multiple lines with only one ``#''. - # 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: + # folder-hook . \ + set realname="Michael \"MuttDude\" Elkins" - 33..99.. AAlltteerrnnaattiivvee aaddddrreesssseess + 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! - Usage: [un]alternates _r_e_g_e_x_p [ _r_e_g_e_x_p ... ] + Abstract example: - 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''.) + line1\ + line2a # line2b\ + line3\ + line4 + line5 - 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. + 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. - 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. + It is also possible to substitute the output of a Unix command in an initial- + ization file. This is accomplished by enclosing the command in backquotes + (``). For example, - To remove a regular expression from the alternates list, use the - unalternates command with exactly the same _r_e_g_e_x_p. Likewise, if the - _r_e_g_e_x_p for a alternates command matches an entry on the unalternates - list, that unalternates entry will be removed. If the _r_e_g_e_x_p for - unalternates is ``*'', _a_l_l _e_n_t_r_i_e_s on alternates will be removed. + my_hdr X-Operating-System: `uname -a` - 33..1100.. MMaaiilliinngg lliissttss + 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. - 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 ... ] + 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, - 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. + set record=+sent_on_$HOSTNAME - 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''. + The commands understood by mutt are explained in the next paragraphs. For a + complete list, see the _c_o_m_m_a_n_d _r_e_f_e_r_e_n_c_e (section 6.2 , page 62). - 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. + _3_._2 _D_e_f_i_n_i_n_g_/_U_s_i_n_g _a_l_i_a_s_e_s - 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. + Usage: alias _k_e_y _a_d_d_r_e_s_s [ , _a_d_d_r_e_s_s, ... ] - The ``unlists'' command is used to remove a token from the list of - known and subscribed mailing-lists. Use ``unlists *'' to remove all - tokens. + It's usually very cumbersome to remember or type out the address of someone you - To remove a mailing list from the list of subscribed mailing lists, - but keep it on the list of known mailing lists, use ``unsubscribe''. + The Mutt-ng E-Mail Client 17 - 33..1111.. UUssiinngg MMuullttiippllee ssppooooll mmaaiillbbooxxeess + are communicating with. Mutt allows you to create ``aliases'' which map a + short string to a full address. - Usage: mbox-hook [!]_p_a_t_t_e_r_n _m_a_i_l_b_o_x + 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 (``,''). - 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. + To remove an alias or aliases (``*'' means all aliases): - 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). + unalias [ * | _k_e_y _._._. ] - 33..1122.. DDeeffiinniinngg mmaaiillbbooxxeess wwhhiicchh rreecceeiivvee mmaaiill + alias muttdude me@cs.hmc.edu (Michael Elkins) + alias theguys manny, moe, jack - Usage: [un]mailboxes [!]_f_i_l_e_n_a_m_e [ _f_i_l_e_n_a_m_e ... ] + 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 _s_o_u_r_c_e_d (section 3.26 , page 32). Consequently, you can have + multiple alias files, or you can have all aliases defined in your muttrc. - 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. + On the other hand, the _c_r_e_a_t_e_-_a_l_i_a_s (section 2.3.4 , page 7) function can use + only one file, the one pointed to by the _$_a_l_i_a_s___f_i_l_e (section 6.3.3 , page 65) + 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 _s_o_u_r_c_e (section 3.26 , + page 32) this file too. - When changing folders, pressing _s_p_a_c_e will cycle through folders with - new mail. + For example: - 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. + source /usr/local/share/Mutt.aliases + source ~/.mail_aliases + set alias_file=~/.mail_aliases - The ``unmailboxes'' command is used to remove a token from the list of - folders which receive mail. Use ``unmailboxes *'' to remove all - tokens. + 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 _$_e_d_i_t___h_e_a_d_e_r_s + (section 6.3.56 , page 77) variable set. - 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. + 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. - 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. + 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..1133.. UUsseerr ddeeffiinneedd hheeaaddeerrss + _3_._3 _C_h_a_n_g_i_n_g _t_h_e _d_e_f_a_u_l_t _k_e_y _b_i_n_d_i_n_g_s - Usage: - my_hdr _s_t_r_i_n_g - unmy_hdr _f_i_e_l_d [ _f_i_e_l_d ... ] + Usage: bind _m_a_p _k_e_y _f_u_n_c_t_i_o_n - The ``my_hdr'' command allows you to create your own header fields - which will be added to every message you send. + The Mutt-ng E-Mail Client 18 - For example, if you would like to add an ``Organization:'' header - field to all of your outgoing messages, you can put the command + This command allows you to change the default key bindings (operation invoked + when pressing a key). - my_hdr Organization: A Really Big Company, Anytown, USA + _m_a_p specifies in which menu the binding belongs. Multiple maps may be speci- + fied by separating them with commas (no additional whitespace is allowed). The + currently defined maps are: - in your .muttrc. + generic + 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 accom- + plish the same task. - 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. + 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). - 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. + attach + The attachment menu is used to access the attachments on received + messages. - 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: + browser + The browser is used for both browsing the local directory struc- + ture, and for listing all of your incoming mailboxes. - unmy_hdr to cc + editor + The editor is the line-based editor the user enters text data. - 33..1144.. DDeeffiinniinngg tthhee oorrddeerr ooff hheeaaddeerrss wwhheenn vviieewwiinngg mmeessssaaggeess + index + The index is the list of messages contained in a mailbox. - Usage: hdr_order _h_e_a_d_e_r_1 _h_e_a_d_e_r_2 _h_e_a_d_e_r_3 + compose + The compose menu is the screen used when sending a new message. - With this command, you can specify an order in which mutt will attempt - to present headers to you when viewing messages. + pager + The pager is the mode used to display message/attachment data, and + help listings. - ``unhdr_order *'' will clear all previous headers from the order list, - thus removing the header order effects set by the system-wide startup - file. + pgp + The pgp menu is used to select the OpenPGP keys used for encrypting + outgoing messages. - hdr_order From Date: From: To: Cc: Subject: + 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. - 33..1155.. SSppeecciiffyy ddeeffaauulltt ssaavvee ffiilleennaammee + _k_e_y is the key (or key sequence) you wish to bind. To specify a control char- + acter, 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 - Usage: save-hook [!]_p_a_t_t_e_r_n _f_i_l_e_n_a_m_e + The Mutt-ng E-Mail Client 19 - 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. + 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: - See ``Message Matching in Hooks'' for information on the exact format - of _p_a_t_t_e_r_n. + \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 - Examples: + _k_e_y does not need to be enclosed in quotes unless it contains a space (`` ''). - save-hook me@(turing\\.)?cs\\.hmc\\.edu$ +elkins - save-hook aol\\.com$ +spam + _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 _r_e_f_e_r_e_n_c_e (section 6.4 , page 146). The special + function noop unbinds the specified key sequence. - Also see the ``fcc-save-hook'' command. + _3_._4 _D_e_f_i_n_i_n_g _a_l_i_a_s_e_s _f_o_r _c_h_a_r_a_c_t_e_r _s_e_t_s - 33..1166.. SSppeecciiffyy ddeeffaauulltt FFcccc:: mmaaiillbbooxx wwhheenn ccoommppoossiinngg + Usage: charset-hook _a_l_i_a_s _c_h_a_r_s_e_t - Usage: fcc-hook [!]_p_a_t_t_e_r_n _m_a_i_l_b_o_x + Usage: iconv-hook _c_h_a_r_s_e_t _l_o_c_a_l_-_c_h_a_r_s_e_t - 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. + 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. - See ``Message Matching in Hooks'' for information on the exact format - of _p_a_t_t_e_r_n. + 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. - Example: fcc-hook [@.]aol\\.com$ +spammers + _3_._5 _S_e_t_t_i_n_g _v_a_r_i_a_b_l_e_s _b_a_s_e_d _u_p_o_n _m_a_i_l_b_o_x - 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. + Usage: folder-hook [!]_r_e_g_e_x_p _c_o_m_m_a_n_d - 33..1177.. SSppeecciiffyy ddeeffaauulltt ssaavvee ffiilleennaammee aanndd ddeeffaauulltt FFcccc:: mmaaiillbbooxx aatt oonnccee + The Mutt-ng E-Mail Client 20 - Usage: fcc-save-hook [!]_p_a_t_t_e_r_n _m_a_i_l_b_o_x + It is often desirable to change settings based on which mailbox you are read- + ing. 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. - This command is a shortcut, equivalent to doing both a ``fcc-hook'' - and a ``save-hook'' with its arguments. - 33..1188.. CChhaannggee sseettttiinnggss bbaasseedd uuppoonn mmeessssaaggee rreecciippiieennttss + NNoottee:: if you use the ``!'' shortcut for _$_s_p_o_o_l_f_i_l_e (section 6.3.291 , page + 135) 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. - 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 - Usage: send2-hook [!]_p_a_t_t_e_r_n _c_o_m_m_a_n_d + Note that the settings are _n_o_t restored when you leave the mailbox. For exam- + ple, a command action to perform is to change the sorting method based upon the + mailbox being read: - 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. + folder-hook mutt set sort=threads - 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. + 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 ``.'': - 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. + folder-hook . set sort=date-sent - 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). + _3_._6 _K_e_y_b_o_a_r_d _m_a_c_r_o_s - See ``Message Matching in Hooks'' for information on the exact format - of _p_a_t_t_e_r_n. + 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 ] - Example: send-hook mutt "set mime_forward signature=''" + 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 cre- + ate a macro to execute those commands with a single key. - 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. + _m_e_n_u is the _m_a_p (section 3.3 , page 17) which the macro will be bound. Multi- + ple maps may be specified by separating multiple menu arguments by commas. + Whitespace may not be used in between the menu arguments and the commas sepa- + rating them. - 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. + _k_e_y and _s_e_q_u_e_n_c_e are expanded by the same rules as the _k_e_y _b_i_n_d_i_n_g_s (section + 3.3 , page 17). 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 _k_e_y _b_i_n_d_i_n_g_s (section + 3.3 , page 17). Functions are listed in the _f_u_n_c_t_i_o_n _r_e_f_e_r_e_n_c_e (section + 6.4 , page 146). - 33..1199.. CChhaannggee sseettttiinnggss bbeeffoorree ffoorrmmaattttiinngg aa mmeessssaaggee + 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). - Usage: message-hook [!]_p_a_t_t_e_r_n _c_o_m_m_a_n_d + The Mutt-ng E-Mail Client 21 - 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. + Optionally you can specify a descriptive text after _s_e_q_u_e_n_c_e, which is shown in + the help screens. - See ``Message Matching in Hooks'' for information on the exact format - of _p_a_t_t_e_r_n. + NNoottee:: Macro definitions (if any) listed in the help screen(s), are silently + truncated at the screen width, and are not wrapped. - Example: + _3_._7 _U_s_i_n_g _c_o_l_o_r _a_n_d _m_o_n_o _v_i_d_e_o _a_t_t_r_i_b_u_t_e_s - message-hook ~A 'set pager=builtin' - message-hook '~f freshmeat-news' 'set pager="less \"+/^ subject: .*\""' + 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 ] - 33..2200.. CChhoooossiinngg tthhee ccrryyppttooggrraapphhiicc kkeeyy ooff tthhee rreecciippiieenntt + 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: crypt-hook _p_a_t_t_e_r_n _k_e_y_i_d + Usage: uncolor index _p_a_t_t_e_r_n [ _p_a_t_t_e_r_n ... ] - 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. - - 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. - - 33..2211.. AAddddiinngg kkeeyy sseeqquueenncceess ttoo tthhee kkeeyybbooaarrdd bbuuffffeerr - - Usage: push _s_t_r_i_n_g - - 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. - - 33..2222.. EExxeeccuuttiinngg ffuunnccttiioonnss - - Usage: exec _f_u_n_c_t_i_o_n [ _f_u_n_c_t_i_o_n ... ] - - This command can be used to execute any function. Functions are listed - in the ``function reference''. ``exec function'' is equivalent to - ``push ''. - - 33..2233.. MMeessssaaggee SSccoorriinngg - - 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 ... ] - - 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. - - 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. - - 33..2244.. SSppaamm ddeetteeccttiioonn - - Usage: spam _p_a_t_t_e_r_n _f_o_r_m_a_t - Usage: nospam _p_a_t_t_e_r_n - - Mutt has generalized support for external spam-scoring filters. By - defining your spam patterns with the spam and nospam commands, you can - _l_i_m_i_t, _s_e_a_r_c_h, and _s_o_r_t 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. _p_a_t_t_e_r_n 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 _f_o_r_m_a_t parameter. _f_o_r_m_a_t can be any static text, but - it also can include back-references from the _p_a_t_t_e_r_n 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 _f_o_r_m_a_t 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 read - 90+/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 - supercedes the previous one. Instead of getting joined _f_o_r_m_a_t 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 _s_e_a_r_c_h and _l_i_m_i_t 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 _l_e_x_i_c_a_l_l_y -- 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 _a_n_y 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 lower priority 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 a more - precise pattern under a nospam command. - - If the _p_a_t_t_e_r_n given to nospam is exactly the same as the _p_a_t_t_e_r_n 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 - _p_a_t_t_e_r_n for a spam command matches an entry on the nospam list, that - nospam entry will be removed. If the _p_a_t_t_e_r_n for nospam is ``*'', _a_l_l - _e_n_t_r_i_e_s _o_n _b_o_t_h _l_i_s_t_s 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" - - 33..2255.. SSeettttiinngg vvaarriiaabblleess - - 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 ... ] - - 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. - - _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. - - _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.'' - - Prefixing a variable with ``no'' will unset it. Example: set - noaskbcc. - - 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. - - The toggle command automatically prepends the inv prefix to all - specified variables. - - The unset command automatically prepends the no prefix to all - specified variables. - 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: - - set ?allow_8bit - - The question mark is actually only required for boolean and quadoption - variables. - - 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. - - With the reset command there exists the special variable ``all'', - which allows you to reset all variables to their system defaults. - - 33..2266.. RReeaaddiinngg iinniittiiaalliizzaattiioonn ccoommmmaannddss ffrroomm aannootthheerr ffiillee - - Usage: source _f_i_l_e_n_a_m_e [ _f_i_l_e_n_a_m_e ... ] - - 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. - - If the filename begins with a tilde (``~''), it will be expanded to - the path of your home directory. - - 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|). - - 33..2277.. RReemmoovviinngg hhooookkss - - 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). - - 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. + 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). - 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_b_j_e_c_t can be one of: - 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. + +o attachment - 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: + +o body (match _r_e_g_e_x_p in the body of messages) - [[::aallnnuumm::]] - Alphanumeric characters. + +o bold (highlighting bold patterns in the body of messages) - [[::aallpphhaa::]] - Alphabetic characters. + +o error (error messages printed by Mutt) - [[::bbllaannkk::]] - Space or tab characters. + +o header (match _r_e_g_e_x_p in the message header) - [[::ccnnttrrll::]] - Control characters. + +o hdrdefault (default color of the message header in the pager) - [[::ddiiggiitt::]] - Numeric characters. + +o index (match _p_a_t_t_e_r_n in the message index) - [[::ggrraapphh::]] - Characters that are both printable and visible. (A space is - printable, but not visible, while an ``a'' is both.) + +o indicator (arrow or bar used to indicate the current item in a menu) - [[::lloowweerr::]] - Lower-case alphabetic characters. + +o markers (the ``+'' markers at the beginning of wrapped lines in the pager) - [[::pprriinntt::]] - Printable characters (characters that are not control - characters.) + +o message (informational messages) - [[::ppuunncctt::]] - Punctuation characters (characters that are not letter, digits, - control characters, or space characters). - [[::ssppaaccee::]] - Space characters (such as space, tab and formfeed, to name a - few). + +o normal - [[::uuppppeerr::]] - Upper-case alphabetic characters. + +o quoted (text matching _$_q_u_o_t_e___r_e_g_e_x_p (section 6.3.218 , page 118) in the + body of a message) - [[::xxddiiggiitt::]] - Characters that are hexadecimal digits. + +o quoted1, quoted2, ..., quotedNN (higher levels of quoting) - 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 ``e'' ``e'' and ``e''. In this case, [[[[==ee==]]]] - is a regexp that matches any of ``e'', ``e'' 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 with a spam attribute matching EXPR - ~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) - ~$ unreferenced messages (requires threaded view) - ~* ``From'' contains realname and (syntactically) valid - address (excluded are addresses matching against - alternates or any alias) - - 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 (\\). + +o search (highlighting of words in the pager) - *) The forms <[MAX], >[MIN], [MIN]- and -[MAX] are allowed, too. + +o signature - 44..22..11.. PPaatttteerrnn MMooddiiffiieerr + +o status (mode lines used to display info about the mailbox or message) - 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. + The Mutt-ng E-Mail Client 22 - ^~C \.de$ + +o tilde (the ``~'' used to pad blank lines in the pager) - 44..22..22.. CCoommpplleexx PPaatttteerrnnss + +o tree (thread tree drawn in the message index and attachment menu) - Logical AND is performed by specifying more than one criterion. For - example: + +o underline (highlighting underlined patterns in the body of messages) - ~t mutt ~f elkins + _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: - would select messages which contain the word ``mutt'' in the list of - recipients aanndd that have the word ``elkins'' in the ``From'' header - field. + +o white - Mutt also recognizes the following operators to create more complex - search patterns: + +o black - +o ! -- logical NOT operator - - +o | -- logical OR operator - - +o () -- 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''. - - !(~t mutt|~c mutt) ~f elkins - - 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, - - ~f "me@(mutt\.org|cs\.hmc\.edu)" - - Without the quotes, the parenthesis wouldn't end. This would be - seperated to two OR'd patterns: _~_f _m_e_@_(_m_u_t_t_\_._o_r_g and _c_s_\_._h_m_c_\_._e_d_u_). - They are never what you want. - - 44..22..33.. SSeeaarrcchhiinngg bbyy DDaattee + +o green - Mutt supports two types of dates, _a_b_s_o_l_u_t_e and _r_e_l_a_t_i_v_e. + +o magenta - 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: + +o blue - Limit to messages matching: ~d 20/1/95-31/10 + +o cyan - 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. + +o yellow - 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: + +o red - y years - m months - w weeks - d days + +o default - As a special case, you can replace the sign by a ``*'' character, - which is equivalent to giving identical plus and minus error margins. + +o color_x - Example: To select any messages two weeks around January 15, 2001, - you'd use the following pattern: + _f_o_r_e_g_r_o_u_n_d can optionally be prefixed with the keyword bright to make the fore- + ground color boldfaced (e.g., brightred). - Limit to messages matching: ~d 15/1/2001*2w + 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): - RReellaattiivvee. This type of date is relative to the current date, and may - be specified as: + set COLORFGBG="green;black" + export COLORFGBG - +o >_o_f_f_s_e_t (messages older than _o_f_f_s_e_t units) + 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. - +o <_o_f_f_s_e_t (messages newer than _o_f_f_s_e_t units) + 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. - +o =_o_f_f_s_e_t (messages exactly _o_f_f_s_e_t units old) + 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. - _o_f_f_s_e_t is specified as a positive number with one of the following - units: + The Mutt-ng E-Mail Client 23 - y years - m months - w weeks - d days + If your terminal does not support color, it is still possible change the video + attributes through the use of the ``mono'' command: - Example: to select messages less than 1 month old, you would use + Usage: mono _<_o_b_j_e_c_t_> _<_a_t_t_r_i_b_u_t_e_> [ _r_e_g_e_x_p ] - Limit to messages matching: ~d <1m + Usage: mono index _a_t_t_r_i_b_u_t_e _p_a_t_t_e_r_n - 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. + Usage: unmono index _p_a_t_t_e_r_n [ _p_a_t_t_e_r_n ... ] - 44..33.. UUssiinngg TTaaggss + where _a_t_t_r_i_b_u_t_e is one of the following: - 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 none - 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 bold - In ``macros'' 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 will stop "eating" - the macro when it encounters the ``end-cond'' operator; after this - operator the rest of the macro will be executed as normal. + +o underline - 44..44.. UUssiinngg HHooookkss + +o reverse - 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 standout - +o ``folder-hook'' + _3_._8 _I_g_n_o_r_i_n_g _(_w_e_e_d_i_n_g_) _u_n_w_a_n_t_e_d _m_e_s_s_a_g_e _h_e_a_d_e_r_s - +o ``send-hook'' + Usage: [un]ignore _p_a_t_t_e_r_n [ _p_a_t_t_e_r_n ... ] - +o ``message-hook'' + 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. - +o ``save-hook'' + 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 ``con- + tent-''. ``ignore *'' will ignore all headers. - +o ``mbox-hook'' + 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''. - +o ``fcc-hook'' + ``unignore *'' will remove all tokens from the ignore list. - +o ``fcc-save-hook'' + For example: - for specific details on each type of _h_o_o_k available. + # 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: - 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: + _3_._9 _A_l_t_e_r_n_a_t_i_v_e _a_d_d_r_e_s_s_e_s - send-hook . 'unmy_hdr From:' - send-hook ~C'^b@b\.b$' my_hdr from: c@c.c + Usage: [un]alternates _r_e_g_e_x_p [ _r_e_g_e_x_p ... ] - 44..44..11.. MMeessssaaggee MMaattcchhiinngg iinn HHooookkss + With various functions, mutt will treat messages differently, depending on + whether you sent them or whether you received them from someone else. For - 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. + The Mutt-ng E-Mail Client 24 - 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.). + 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 + _$_r_e_p_l_y___t_o (section 6.3.226 , page 119).) - For example, if you wanted to set your return address based upon - sending mail to a specific address, you could do something like: + 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. - send-hook '~t ^me@cs\.hmc\.edu$' 'my_hdr From: Mutt User ' + The unalternates command can be used to write exceptions to alternates pat- + terns. If an address matches something in an alternates command, but you none- + theless do not think it is from you, you can list a more precise pattern under + an unalternates command. - which would execute the given command when sending mail to - _m_e_@_c_s_._h_m_c_._e_d_u. + To remove a regular expression from the alternates list, use the unalternates + command with exactly the same _r_e_g_e_x_p. Likewise, if the _r_e_g_e_x_p for a alternates + command matches an entry on the unalternates list, that unalternates entry will + be removed. If the _r_e_g_e_x_p for unalternates is ``*'', _a_l_l _e_n_t_r_i_e_s on alternates + will be removed. - 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. + _3_._1_0 _M_a_i_l_i_n_g _l_i_s_t_s - 44..55.. UUssiinngggg tthhee ssiiddeebbaarr + Usage: [un]lists _r_e_g_e_x_p [ _r_e_g_e_x_p ... ] - 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: + Usage: [un]subscribe _r_e_g_e_x_p [ _r_e_g_e_x_p ... ] - set sidebar_visible="yes" - set sidebar_width=25 + Mutt has a few nice features for _h_a_n_d_l_i_n_g _m_a_i_l_i_n_g _l_i_s_t_s (section 4.9 , page + 44). 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 _l_i_s_t_-_r_e_p_l_y (section 2.3.4 , page 8) 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 _$_f_o_l_l_o_w_u_p___t_o (section 6.3.67 , page 80) configura- + tion variable. - If you want to specify the mailboxes you can do so with: - - set mbox='=INBOX' - mailboxes INBOX \ - MBOX1 \ - MBOX2 \ - ... + 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''. - You can also specify the colors for mailboxes with new mails by using: + 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. - color sidebar_new red black + Specify as much of the address as you need to to remove ambiguity. For exam- + ple, if you've subscribed to the Mutt mailing list, you will receive mail + addressed 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 - The available functions are: + The Mutt-ng E-Mail Client 25 - sidebar-scroll-up Scrolls the mailbox list up 1 page - sidebar-scroll-down Scrolls the mailbox list down 1 page - sidebar-next Hilights the next mailbox - sidebar-next-new Hilights the next mailbox with new mail - sidebar-previous Hilights the previous mailbox - sidebar-open Opens the currently hilighted mailbox + 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 ini- + tialization 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. - Reasonable key bindings look e.g. like this: + The ``unlists'' command is used to remove a token from the list of known and + subscribed mailing-lists. Use ``unlists *'' to remove all tokens. - 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 + To remove a mailing list from the list of subscribed mailing lists, but keep it + on the list of known mailing lists, use ``unsubscribe''. - macro index B ':toggle sidebar_visible^M' - macro pager B ':toggle sidebar_visible^M' + _3_._1_1 _U_s_i_n_g _M_u_l_t_i_p_l_e _s_p_o_o_l _m_a_i_l_b_o_x_e_s - 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'. + Usage: mbox-hook [!]_p_a_t_t_e_r_n _m_a_i_l_b_o_x - 44..66.. EExxtteerrnnaall AAddddrreessss QQuueerriieess + This command is used to move read messages from a specified mailbox to a dif- + ferent 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. - 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: + 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). - set query_command = "mutt_ldap_query.pl '%s'" + _3_._1_2 _D_e_f_i_n_i_n_g _m_a_i_l_b_o_x_e_s _w_h_i_c_h _r_e_c_e_i_v_e _m_a_i_l - 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. - - An example multiple response output: + Usage: [un]mailboxes [!]_f_i_l_e_n_a_m_e [ _f_i_l_e_n_a_m_e ... ] - 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 addresses 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..77.. 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..88.. 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. - - +o ! -- refers to your ``$spoolfile'' (incoming) mailbox - - +o > -- refers to your ``$mbox'' file - - +o < -- refers to your ``$record'' file - - +o - or !! -- refers to the file you've last visited - - +o ~ -- refers to your home directory - - +o = or + -- refers to your ``$folder'' directory - - +o @_a_l_i_a_s -- refers to the ``default save folder'' as determined by - the address of the alias - - 44..99.. 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 to _a_s_k_-_y_e_s or _a_s_k_-_n_o, 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 set to _y_e_s, 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..1100.. EEddiittiinngg tthhrreeaaddss - - Mutt has the ability to dynamically restructure threads that are - broken either by misconfigured software or bad behaviour from some - correspondents. This allows to clean your mailboxes formats) from - these annoyances which make it hard to follow a discussion. - - If you want to use these functions with IMAP, you need to compile Mutt - with the _-_-_e_n_a_b_l_e_-_i_m_a_p_-_e_d_i_t_-_t_h_r_e_a_d_s configure flag. - - 44..1100..11.. LLiinnkkiinngg tthhrreeaaddss - - 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 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 childs at once, tagging them and using - the tag-prefix command (';') or the auto_tag option. - - 44..1100..22.. BBrreeaakkiinngg tthhrreeaaddss - - 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 (bound by default to - #), which will turn the subthread starting from the current message - into a whole different thread. - - 44..1111.. 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..1122.. 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..1133.. 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..1133..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: - - +o 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. - - +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). - - +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). - - 44..1133..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: - - +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 (ie by using - a mailbox name of the form {user@host}). - - +o ``$imap_pass'' - a password which you may preset, used by all - authentication methods where a password is needed. - - +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 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. - 44..1144.. 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"' + When changing folders, pressing _s_p_a_c_e will cycle through folders with new mail. - 44..1155.. SSttaarrtt aa WWWWWW BBrroowwsseerr oonn UURRLLss ((EEXXTTEERRNNAALL)) + 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. - If a message contains URLs (_u_n_i_f_i_e_d _r_e_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: + The ``unmailboxes'' command is used to remove a token from the list of folders + which receive mail. Use ``unmailboxes *'' to remove all tokens. - macro index \cb |urlview\n - macro pager \cb |urlview\n + 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. - 44..1166.. CCoommpprreesssseedd ffoollddeerrss SSuuppppoorrtt ((OOPPTTIIOONNAALL)) + NNoottee:: the filenames in the mailboxes command are resolved when the command is + executed, so if these names contain _s_h_o_r_t_c_u_t _c_h_a_r_a_c_t_e_r_s (section 4.8 , page + 44) (such as ``='' and ``!''), any variable definition that affect these char- + acters (like _$_f_o_l_d_e_r (section 6.3.65 , page 79) and _$_s_p_o_o_l_f_i_l_e (section + 6.3.291 , page 135)) should be executed before the mailboxes command. - If Mutt was compiled with compressed folders support (by running the - _c_o_n_f_i_g_u_r_e script with the _-_-_e_n_a_b_l_e_-_c_o_m_p_r_e_s_s_e_d 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. + The Mutt-ng E-Mail Client 26 - The most common use is to open compressed archived folders e.g. with - gzip. + _3_._1_3 _U_s_e_r _d_e_f_i_n_e_d _h_e_a_d_e_r_s - 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. + Usage: - 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. + my_hdr _s_t_r_i_n_g - For example: + unmy_hdr _f_i_e_l_d [ _f_i_e_l_d ... ] - open-hook \\.gz$ "gzip -cd %f > %t" - close-hook \\.gz$ "gzip -c %t > %f" - append-hook \\.gz$ "gzip -c %t >> %f" + The ``my_hdr'' command allows you to create your own header fields which will + be added to every message you send. - 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. + For example, if you would like to add an ``Organization:'' header field to all + of your outgoing messages, you can put the command - Note that Mutt 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. + my_hdr Organization: A Really Big Company, Anytown, USA - 44..1166..11.. OOppeenn aa ccoommpprreesssseedd mmaaiillbbooxx ffoorr rreeaaddiinngg + in your .muttrc. - Usage: open-hook _r_e_g_e_x_p "_c_o_m_m_a_n_d" + 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. - The _c_o_m_m_a_n_d is the command that can be used for opening the folders - whose names match _r_e_g_e_x_p. + If you would like to add a header field to a single message, you should either + set the _e_d_i_t___h_e_a_d_e_r_s (section 6.3.56 , page 77) 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. - The _c_o_m_m_a_n_d 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. + 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: - %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. + unmy_hdr to cc - The _c_o_m_m_a_n_d should nnoott remove the original compressed file. The - _c_o_m_m_a_n_d should return non-zero exit status if it fails, so mutt knows - something's wrong. + _3_._1_4 _D_e_f_i_n_i_n_g _t_h_e _o_r_d_e_r _o_f _h_e_a_d_e_r_s _w_h_e_n _v_i_e_w_i_n_g _m_e_s_s_a_g_e_s - Example: + Usage: hdr_order _h_e_a_d_e_r_1 _h_e_a_d_e_r_2 _h_e_a_d_e_r_3 - open-hook \\.gz$ "gzip -cd %f > %t" + With this command, you can specify an order in which mutt will attempt to + present headers to you when viewing messages. - If the _c_o_m_m_a_n_d is empty, this operation is disabled for this file - type. - 44..1166..22.. WWrriittee aa ccoommpprreesssseedd mmaaiillbbooxx + ``unhdr_order *'' will clear all previous headers from the order list, thus + removing the header order effects set by the system-wide startup file. - Usage: close-hook _r_e_g_e_x_p "_c_o_m_m_a_n_d" + hdr_order From Date: From: To: Cc: Subject: - This is used to close the folder that was open with the ``open-hook'' - command after some changes were made to it. + _3_._1_5 _S_p_e_c_i_f_y _d_e_f_a_u_l_t _s_a_v_e _f_i_l_e_n_a_m_e - The _c_o_m_m_a_n_d string is the command that can be used for closing the - folders whose names match _r_e_g_e_x_p. 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. + The Mutt-ng E-Mail Client 27 - The _c_o_m_m_a_n_d should nnoott remove the decompressed file. The _c_o_m_m_a_n_d - should return non-zero exit status if it fails, so mutt knows - something's wrong. + Usage: save-hook [!]_p_a_t_t_e_r_n _f_i_l_e_n_a_m_e - Example: + This command is used to override the default filename used when saving mes- + sages. _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. - close-hook \\.gz$ "gzip -c %t > %f" + See _M_e_s_s_a_g_e _M_a_t_c_h_i_n_g _i_n _H_o_o_k_s (section 4.4.1 , page 41) for information on the + exact format of _p_a_t_t_e_r_n. - If the _c_o_m_m_a_n_d is empty, this operation is disabled for this file - type, and the file can only be open in the readonly mode. + Examples: - ``close-hook'' is not called when you exit from the folder if the - folder was not changed. + save-hook me@(turing\\.)?cs\\.hmc\\.edu$ +elkins + save-hook aol\\.com$ +spam - 44..1166..33.. AAppppeenndd aa mmeessssaaggee ttoo aa ccoommpprreesssseedd mmaaiillbbooxx + Also see the _f_c_c_-_s_a_v_e_-_h_o_o_k (section 3.17 , page 27) command. - Usage: append-hook _r_e_g_e_x_p "_c_o_m_m_a_n_d" + _3_._1_6 _S_p_e_c_i_f_y _d_e_f_a_u_l_t _F_c_c_: _m_a_i_l_b_o_x _w_h_e_n _c_o_m_p_o_s_i_n_g - This command is used for saving to an existing compressed folder. The - _c_o_m_m_a_n_d is the command that can be used for appending to the folders - whose names match _r_e_g_e_x_p. It has the same format as in the ``open- - hook'' command. The temporary folder in this case contains the - messages that are being appended. + Usage: fcc-hook [!]_p_a_t_t_e_r_n _m_a_i_l_b_o_x - The _c_o_m_m_a_n_d should nnoott remove the decompressed file. The _c_o_m_m_a_n_d - should return non-zero exit status if it fails, so mutt knows - something's wrong. + This command is used to save outgoing mail in a mailbox other than _$_r_e_c_o_r_d + (section 6.3.223 , page 119). 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 _$_r_e_c_o_r_d (section + 6.3.223 , page 119) mailbox. - Example: + See _M_e_s_s_a_g_e _M_a_t_c_h_i_n_g _i_n _H_o_o_k_s (section 4.4.1 , page 41) for information on the + exact format of _p_a_t_t_e_r_n. - append-hook \\.gz$ "gzip -c %t >> %f" + Example: fcc-hook [@.]aol\\.com$ +spammers - 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 above will save a copy of all messages going to the aol.com domain to the + `+spammers' mailbox by default. Also see the _f_c_c_-_s_a_v_e_-_h_o_o_k (section 3.17 , + page 27) command. - 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. + _3_._1_7 _S_p_e_c_i_f_y _d_e_f_a_u_l_t _s_a_v_e _f_i_l_e_n_a_m_e _a_n_d _d_e_f_a_u_l_t _F_c_c_: _m_a_i_l_b_o_x _a_t _o_n_c_e - If the _c_o_m_m_a_n_d 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. + Usage: fcc-save-hook [!]_p_a_t_t_e_r_n _m_a_i_l_b_o_x - 44..1166..44.. EEnnccrryypptteedd ffoollddeerrss + This command is a shortcut, equivalent to doing both a _f_c_c_-_h_o_o_k (section + 3.16 , page 27) and a _s_a_v_e_-_h_o_o_k (section 3.15 , page 26) with its arguments. - 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 use - the following hooks: + _3_._1_8 _C_h_a_n_g_e _s_e_t_t_i_n_g_s _b_a_s_e_d _u_p_o_n _m_e_s_s_a_g_e _r_e_c_i_p_i_e_n_t_s - open-hook \\.pgp$ "pgp -f < %f > %t" - close-hook \\.pgp$ "pgp -fe YourPgpUserIdOrKeyId < %t > %f" + Usage: reply-hook [!]_p_a_t_t_e_r_n _c_o_m_m_a_n_d - Please note, that PGP does not support appending to an encrypted - folder, so there is no append-hook defined. + Usage: send-hook [!]_p_a_t_t_e_r_n _c_o_m_m_a_n_d - NNoottee:: the folder is temporary stored decrypted in the /tmp directory, - where it can be read by your system administrator. So think about the - security aspects of this. + Usage: send2-hook [!]_p_a_t_t_e_r_n _c_o_m_m_a_n_d - 55.. MMuutttt''ss MMIIMMEE SSuuppppoorrtt + These commands can be used to execute arbitrary configuration commands based - 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. + The Mutt-ng E-Mail Client 28 - 55..11.. UUssiinngg MMIIMMEE iinn MMuutttt + 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. - 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. + 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. - 55..11..11.. VViieewwiinngg MMIIMMEE mmeessssaaggeess iinn tthhee ppaaggeerr + 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 + _$_s_e_n_d_m_a_i_l (section 6.3.241 , page 123) variable depending on the message's + sender address. - 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. + 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). - Mutt will denote attachments with a couple lines describing them. - These lines are of the form: + See _M_e_s_s_a_g_e _M_a_t_c_h_i_n_g _i_n _H_o_o_k_s (section 4.4.1 , page 41) for information on the + exact format of _p_a_t_t_e_r_n. - [-- 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- - printable/base64/binary. + Example: send-hook mutt 'set mime_forward signature=''' - If Mutt cannot deal with a MIME type, it will display a message like: + Another typical use for this command is to change the values of the _$_a_t_t_r_i_b_u_- + _t_i_o_n (section 6.3.17 , page 69), _$_s_i_g_n_a_t_u_r_e (section 6.3.255 , page 126) and + _$_l_o_c_a_l_e (section 6.3.117 , page 94) variables in order to change the language + of the attributions and signatures based upon the recipients. - [-- image/gif is unsupported (use 'v' to view this part) --] + 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 mod- + ify recipient headers, or the message's subject, don't have any effect on the + current message when executed from a send-hook. - 55..11..22.. TThhee AAttttaacchhmmeenntt MMeennuu + _3_._1_9 _C_h_a_n_g_e _s_e_t_t_i_n_g_s _b_e_f_o_r_e _f_o_r_m_a_t_t_i_n_g _a _m_e_s_s_a_g_e - 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. + Usage: message-hook [!]_p_a_t_t_e_r_n _c_o_m_m_a_n_d - 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. + 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 mul- + tiple matches occur, commands are executed in the order they are specified in + the muttrc. - \\%% This will be replaced by a % + See _M_e_s_s_a_g_e _M_a_t_c_h_i_n_g _i_n _H_o_o_k_s (section 4.4.1 , page 41) for information on the + exact format of _p_a_t_t_e_r_n. - 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 + Example: - This mailcap file is fairly simple and standard: + message-hook ~A 'set pager=builtin' + message-hook '~f freshmeat-news' 'set pager="less \"+/^ subject: .*\""' - ______________________________________________________________________ - # I'm always running X :) - video/*; xanim %s > /dev/null - image/*; xv %s > /dev/null + The Mutt-ng E-Mail Client 29 - # I'm always running netscape (if my computer had more memory, maybe) - text/html; netscape -remote 'openURL(%s)' - ______________________________________________________________________ + _3_._2_0 _C_h_o_o_s_i_n_g _t_h_e _c_r_y_p_t_o_g_r_a_p_h_i_c _k_e_y _o_f _t_h_e _r_e_c_i_p_i_e_n_t - 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 + Usage: crypt-hook _p_a_t_t_e_r_n _k_e_y_i_d - # Send html to a running netscape by remote - text/html; netscape -remote 'openURL(%s)'; test=RunningNetscape + When encrypting messages with PGP or OpenSSL, you may want to associate a cer- + tain key with a given e-mail address automatically, either because the recipi- + ent'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. - # If I'm not running netscape but I am running X, start netscape on the - # object - text/html; netscape %s; test=RunningX + 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. - # Else use lynx to view it as text - text/html; lynx %s + _3_._2_1 _A_d_d_i_n_g _k_e_y _s_e_q_u_e_n_c_e_s _t_o _t_h_e _k_e_y_b_o_a_r_d _b_u_f_f_e_r - # This version would convert the text/html to text/plain - text/html; lynx -dump %s; copiousoutput + Usage: push _s_t_r_i_n_g - # I use enscript to print text in two columns to a page - text/*; more %s; print=enscript -2Gr %s + This command adds the named string to the keyboard buffer. The string may con- + tain control characters, key names and function names like the sequence string + in the _m_a_c_r_o (section 3.6 , page 20) command. You may use it to automatically + run a sequence of commands at startup, or when entering certain folders. - # Netscape adds a flag to tell itself to view jpegs internally - image/jpeg;xv %s; x-mozilla-flags=internal + _3_._2_2 _E_x_e_c_u_t_i_n_g _f_u_n_c_t_i_o_n_s - # 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 + Usage: exec _f_u_n_c_t_i_o_n [ _f_u_n_c_t_i_o_n ... ] - # 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 + This command can be used to execute any function. Functions are listed in the + _f_u_n_c_t_i_o_n _r_e_f_e_r_e_n_c_e (section 6.4 , page 146). ``exec function'' is equivalent + to ``push ''. - 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. + _3_._2_3 _M_e_s_s_a_g_e _S_c_o_r_i_n_g - 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. + Usage: score _p_a_t_t_e_r_n _v_a_l_u_e - You then use the auto_view muttrc command to list the content-types - that you wish to view automatically. + Usage: unscore _p_a_t_t_e_r_n [ _p_a_t_t_e_r_n ... ] - For instance, if you set auto_view to: + 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 _p_a_t_t_e_r_n_s (section 4.2 , page + 36) 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. - auto_view text/html application/x-gunzip application/postscript image/gif application/x-tar-gz + 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. - Mutt could use the following mailcap entries to automatically view - attachments of these types. + _3_._2_4 _S_p_a_m _d_e_t_e_c_t_i_o_n - 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 + Usage: spam _p_a_t_t_e_r_n _f_o_r_m_a_t - ``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. + The Mutt-ng E-Mail Client 30 - 55..55.. MMIIMMEE MMuullttiippaarrtt//AAlltteerrnnaattiivvee + Usage: nospam _p_a_t_t_e_r_n - 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: + Mutt has generalized support for external spam-scoring filters. By defining + your spam patterns with the spam and nospam commands, you can _l_i_m_i_t, _s_e_a_r_c_h, + and _s_o_r_t 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 _$_i_n_d_e_x___f_o_r_m_a_t (section 6.3.112 , page 91) variable. + (Tip: try %?H?[%H] ? to display spam tags only when they are defined for a + given message.) - alternative_order text/enriched text/plain text application/postscript image/* + Your first step is to define your external filter's spam patterns using the + spam command. _p_a_t_t_e_r_n 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 _f_o_r_m_a_t parameter. _f_o_r_m_a_t can be any static text, + but it also can include back-references from the _p_a_t_t_e_r_n 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. - 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. + 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 mes- + sage 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 _f_o_r_m_a_t + strings joined together, with the value of $spam_separator separating them. - To remove a MIME type from the alternative_order list, use the - unalternative_order command. + For example, suppose I use DCC, SpamAssassin, and PureMessage. I might define + these spam settings: - 55..66.. MMIIMMEE LLooookkuupp + 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=", " - 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: + 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 read 90+/DCC-Fuz2, 97/PM. (The four + characters before ``=many'' in a DCC report indicate the checksum used -- in + this case, ``Fuz2''.) - mime_lookup application/octet-stream application/X-Lotus-Manuscript + If the $spam_separator variable is unset, then each spam pattern match super- + sedes the previous one. Instead of getting joined _f_o_r_m_a_t strings, you'll get + only the last one to match. - 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. + 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 _s_e_a_r_c_h and _l_i_m_i_t functions. And it's what sort- + ing by spam attribute will use as a sort key. - 66.. RReeffeerreennccee + 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. - 66..11.. CCoommmmaanndd lliinnee ooppttiioonnss + The Mutt-ng E-Mail Client 31 - 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. + Generally, when you sort by spam tag, mutt will sort _l_e_x_i_c_a_l_l_y -- 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 _a_n_y 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 lower priority 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. - -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 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 a more precise pattern under a + nospam command. - To read messages in a mailbox + If the _p_a_t_t_e_r_n given to nospam is exactly the same as the _p_a_t_t_e_r_n on an exist- + ing spam list entry, the effect will be to remove the entry from the spam list, + instead of adding an exception. Likewise, if the _p_a_t_t_e_r_n for a spam command + matches an entry on the nospam list, that nospam entry will be removed. If the + _p_a_t_t_e_r_n for nospam is ``*'', _a_l_l _e_n_t_r_i_e_s _o_n _b_o_t_h _l_i_s_t_s will be removed. This + might be the default action if you use spam and nospam in conjunction with a + folder-hook. - mutt [ -nz ] [ -F _m_u_t_t_r_c ] [ -m _t_y_p_e ] [ -f _m_a_i_l_b_o_x ] + 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: - To compose a new message + spam "^From: .*MAILER-DAEMON" "999" - 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 ... ] + _3_._2_5 _S_e_t_t_i_n_g _v_a_r_i_a_b_l_e_s - Mutt also supports a ``batch'' mode to send prepared messages. Simply - redirect input from the file you wish to send. For example, + 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 ... ] - mutt -s "data set for run #2" professor@bigschool.edu < ~/run2.dat + Usage: toggle _v_a_r_i_a_b_l_e [_v_a_r_i_a_b_l_e ... ] - 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''. + Usage: unset _v_a_r_i_a_b_l_e [_v_a_r_i_a_b_l_e ... ] - 66..22.. CCoonnffiigguurraattiioonn CCoommmmaannddss + Usage: reset _v_a_r_i_a_b_l_e [_v_a_r_i_a_b_l_e ... ] - The following are the commands understood by mutt. + This command is used to set (and unset) _c_o_n_f_i_g_u_r_a_t_i_o_n _v_a_r_i_a_b_l_e_s (section 6.3 , + page 64). 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. - +o ``account-hook'' _p_a_t_t_e_r_n _c_o_m_m_a_n_d + _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. - +o ``alias'' _k_e_y _a_d_d_r_e_s_s [ , _a_d_d_r_e_s_s, ... ] + _q_u_a_d_o_p_t_i_o_n variables are used to control whether or not to be prompted for cer- + tain 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 - +o ``unalias'' [ * | _k_e_y ... ] + The Mutt-ng E-Mail Client 32 - +o ``alternates'' _r_e_g_e_x_p [ _r_e_g_e_x_p ... ] + 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.'' - +o ``unalternates'' [ * | _r_e_g_e_x_p ... ] + Prefixing a variable with ``no'' will unset it. Example: set noaskbcc. - +o ``alternative_order'' _m_i_m_e_t_y_p_e [ _m_i_m_e_t_y_p_e ... ] + 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. - +o ``unalternative_order'' _m_i_m_e_t_y_p_e [ _m_i_m_e_t_y_p_e ... ] + The toggle command automatically prepends the inv prefix to all specified vari- + ables. - +o ``append-hook'' _r_e_g_e_x_p _c_o_m_m_a_n_d + The unset command automatically prepends the no prefix to all specified vari- + ables. - +o ``auto_view'' _m_i_m_e_t_y_p_e [ _m_i_m_e_t_y_p_e ... ] + 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: - +o ``unauto_view'' _m_i_m_e_t_y_p_e [ _m_i_m_e_t_y_p_e ... ] + set ?allow_8bit - +o ``bind'' _m_a_p _k_e_y _f_u_n_c_t_i_o_n + The question mark is actually only required for boolean and quadoption vari- + ables. - +o ``charset-hook'' _a_l_i_a_s _c_h_a_r_s_e_t + 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. - +o ``close-hook'' _r_e_g_e_x_p _c_o_m_m_a_n_d + With the reset command there exists the special variable ``all'', which allows + you to reset all variables to their system defaults. - +o ``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 ] + _3_._2_6 _R_e_a_d_i_n_g _i_n_i_t_i_a_l_i_z_a_t_i_o_n _c_o_m_m_a_n_d_s _f_r_o_m _a_n_o_t_h_e_r _f_i_l_e - +o ``uncolor'' _i_n_d_e_x _p_a_t_t_e_r_n [ _p_a_t_t_e_r_n ... ] + Usage: source _f_i_l_e_n_a_m_e [ _f_i_l_e_n_a_m_e ... ] - +o ``exec'' _f_u_n_c_t_i_o_n [ _f_u_n_c_t_i_o_n ... ] + 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. - +o ``fcc-hook'' _p_a_t_t_e_r_n _m_a_i_l_b_o_x + If the filename begins with a tilde (``~''), it will be expanded to the path of + your home directory. - +o ``fcc-save-hook'' _p_a_t_t_e_r_n _m_a_i_l_b_o_x + 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|). - +o ``folder-hook'' _p_a_t_t_e_r_n _c_o_m_m_a_n_d + _3_._2_7 _C_o_n_f_i_g_u_r_i_n_g _f_e_a_t_u_r_e_s _c_o_n_d_i_t_i_o_n_a_l_l_y - +o ``hdr_order'' _h_e_a_d_e_r [ _h_e_a_d_e_r ... ] + Usage: ifdef _i_t_e_m _c_o_m_m_a_n_d Usage: ifndef _i_t_e_m _c_o_m_m_a_n_d - +o ``unhdr_order'' _h_e_a_d_e_r [ _h_e_a_d_e_r ... ] + These command allows to test if a variable, function or certain feature is + available or not respectively, before actually executing the command. ifdef + (short for ``if defined) handles commands if upon availability while ifndef - +o ``iconv-hook'' _c_h_a_r_s_e_t _l_o_c_a_l_-_c_h_a_r_s_e_t + The Mutt-ng E-Mail Client 33 - +o ``ignore'' _p_a_t_t_e_r_n [ _p_a_t_t_e_r_n ... ] + (short for ``if not defined'') does if not. The _c_o_m_m_a_n_d may be any valid frac- + tion of a configuration file. - +o ``unignore'' _p_a_t_t_e_r_n [ _p_a_t_t_e_r_n ... ] + All names of variables and functions may be tested. Additionally, the following + compile-features may be tested when prefixed 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. - +o ``lists'' _r_e_g_e_x_p [ _r_e_g_e_x_p ... ] + Examples follow. - +o ``unlists'' _r_e_g_e_x_p [ _r_e_g_e_x_p ... ] + To only source a file with IMAP related settings only if IMAP support is com- + piled in, use: - +o ``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 ] + ifdef feature_imap 'source ~/.mutt-ng/imap_setup' + # or + # ifdef imap_user 'source ~/.mutt-ng/imap_setup' + # or + # ... - +o ``mailboxes'' _f_i_l_e_n_a_m_e [ _f_i_l_e_n_a_m_e ... ] + To exit mutt-ng directly if no NNTP support is compiled in: - +o ``mbox-hook'' _p_a_t_t_e_r_n _m_a_i_l_b_o_x + ifndef feature_nntp 'push q' + # or + # ifndef newsrc 'push q' + # or + # ... - +o ``message-hook'' _p_a_t_t_e_r_n _c_o_m_m_a_n_d + To only set the _<_$_i_m_a_p___m_a_i_l___c_h_e_c_k (section 6.3.101 , page 88) when the sys- + tem's SVN is recent enough to have it: - +o ``mime_lookup'' _m_i_m_e_t_y_p_e [ _m_i_m_e_t_y_p_e ... ] + ifdef imap_mail_check 'set imap_mail_check=300' - +o ``unmime_lookup'' _m_i_m_e_t_y_p_e [ _m_i_m_e_t_y_p_e ... ] + _3_._2_8 _R_e_m_o_v_i_n_g _h_o_o_k_s - +o ``mono'' _o_b_j_e_c_t _a_t_t_r_i_b_u_t_e [ _r_e_g_e_x_p ] + Usage: unhook [ * | _h_o_o_k_-_t_y_p_e ] - +o ``unmono'' _i_n_d_e_x _p_a_t_t_e_r_n [ _p_a_t_t_e_r_n ... ] + 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. - +o ``my_hdr'' _s_t_r_i_n_g + _4_. _A_d_v_a_n_c_e_d _U_s_a_g_e - +o ``unmy_hdr'' _f_i_e_l_d [ _f_i_e_l_d ... ] + _4_._1 _R_e_g_u_l_a_r _E_x_p_r_e_s_s_i_o_n_s - +o ``open-hook'' _r_e_g_e_x_p _c_o_m_m_a_n_d + All string patterns in Mutt including those in more complex _p_a_t_t_e_r_n_s (section + 4.2 , page 36) 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. - +o ``crypt-hook'' _p_a_t_t_e_r_n _k_e_y_-_i_d + The Mutt-ng E-Mail Client 34 - +o ``push'' _s_t_r_i_n_g + 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: ``\\''. - +o ``reset'' _v_a_r_i_a_b_l_e [_v_a_r_i_a_b_l_e ... ] + 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. - +o ``save-hook'' _r_e_g_e_x_p _f_i_l_e_n_a_m_e + 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 _S_y_n_t_a_x _o_f _I_n_i_t_i_a_l_i_z_a_t_i_o_n _F_i_l_e_s (section 3.1 , page 14) for more informa- + tion on ' and ' delimiter processing. To match a literal ' or ' you must pref- + ace it with \ (backslash). - +o ``score'' _p_a_t_t_e_r_n _v_a_l_u_e + 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 ``unscore'' _p_a_t_t_e_r_n [ _p_a_t_t_e_r_n ... ] + 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 ``send-hook'' _r_e_g_e_x_p _c_o_m_m_a_n_d + 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 lit- + eral ``]'' 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. - +o ``reply-hook'' _r_e_g_e_x_p _c_o_m_m_a_n_d + 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: - +o ``set'' [no|inv]_v_a_r_i_a_b_l_e[=_v_a_l_u_e] [ _v_a_r_i_a_b_l_e ... ] + [:alnum:] + Alphanumeric characters. - +o ``unset'' _v_a_r_i_a_b_l_e [_v_a_r_i_a_b_l_e ... ] + [:alpha:] + Alphabetic characters. - +o ``source'' _f_i_l_e_n_a_m_e + [:blank:] + Space or tab characters. - +o ``spam'' _p_a_t_t_e_r_n _f_o_r_m_a_t + [:cntrl:] + Control characters. - +o ``nospam'' _p_a_t_t_e_r_n + [:digit:] + Numeric characters. - +o ``subscribe'' _r_e_g_e_x_p [ _r_e_g_e_x_p ... ] + [:graph:] + Characters that are both printable and visible. (A space is - +o ``unsubscribe'' _r_e_g_e_x_p [ _r_e_g_e_x_p ... ] + The Mutt-ng E-Mail Client 35 - +o ``toggle'' _v_a_r_i_a_b_l_e [_v_a_r_i_a_b_l_e ... ] + printable, but not visible, while an ``a'' is both.) - +o ``unhook'' _h_o_o_k_-_t_y_p_e + [:lower:] + Lower-case alphabetic characters. - 66..33.. CCoonnffiigguurraattiioonn vvaarriiaabblleess + [:print:] + Printable characters (characters that are not control characters.) - 66..33..11.. aabboorrtt__nnoossuubbjjeecctt + [:punct:] + Punctuation characters (characters that are not letter, digits, + control characters, or space characters). - Type: quadoption - Default: ask-yes + [:space:] + Space characters (such as space, tab and formfeed, to name a few). - 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. + [:upper:] + Upper-case alphabetic characters. - 66..33..22.. aabboorrtt__uunnmmooddiiffiieedd + [:xdigit:] + Characters that are hexadecimal digits. - Type: quadoption - Default: yes + 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]]. - 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. + Two additional special sequences can appear in character lists. These apply to + non-ASCII character sets, which can have single symbols (called collating ele- + ments) that are represented with more than one character, as well as several + characters that are equivalent for collating or sorting purposes: - 66..33..33.. aalliiaass__ffiillee + Collating Symbols + A collating symbol is a multi-character collating element enclosed + in ``[.'' and ``.]''. For example, if ``ch'' is a collating ele- + ment, then [[[[..cchh..]]]] is a regexp that matches this collating ele- + ment, while [[cchh]] is a regexp that matches either ``c'' or ``h''. - Type: path - Default: "~/.muttngrc" + Equivalence Classes + An equivalence class is a locale-specific name for a list of char- + acters 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''. - The default file in which to save aliases created by the ````create- - alias'''' function. + A regular expression matching a single character may be followed by one of sev- + eral repetition operators: - NNoottee:: Mutt-ng will not automatically source this file; you must - explicitly use the ````source'''' command for it to be executed. + ? + The preceding item is optional and matched at most once. + + * + The preceding item will be matched zero or more times. + + The Mutt-ng E-Mail Client 36 + + + + The preceding item will be matched one or more times. + + {n} + The preceding item is matched exactly _n times. + + {n,} + The preceding item is matched _n or more times. + + {,m} + The preceding item is matched at most _m times. + + {n,m} + 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 result- + ing 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: + + \\y + Matches the empty string at either the beginning or the end of a + word. - 66..33..44.. aalliiaass__ffoorrmmaatt + \\B + Matches the empty string within a word. - Type: string - Default: "%4n %2f %t %-10a %r" + \\< + Matches the empty string at the beginning of a word. - Specifies the format of the data displayed for the `alias' menu. The - following printf(3)-style sequences are available: + \\> + Matches the empty string at the end of a word. - %%aa alias name + \\w + Matches any word-constituent character (letter, digit, or under- + score). - %%ff flags - currently, a "d" for an alias marked for deletion + \\W + Matches any character that is not word-constituent. - %%nn index number + \\` + Matches the empty string at the beginning of a buffer (string). - %%rr address which alias expands to + The Mutt-ng E-Mail Client 37 - %%tt character which indicates if the alias is tagged for inclusion + \\' + Matches the empty string at the end of a buffer. - 66..33..55.. aallllooww__88bbiitt + 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. - Type: boolean - Default: yes + _4_._2 _P_a_t_t_e_r_n_s - Controls whether 8-bit data is converted to 7-bit using either Quoted- - Printable or Base64 encoding when sending mail. + 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: - 66..33..66.. aallllooww__aannssii + ~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 with a spam attribute matching EXPR + ~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) + ~$ unreferenced messages (requires threaded view) + ~* ``From'' contains realname and (syntactically) valid + address (excluded are addresses matching against - Type: boolean - Default: no + The Mutt-ng E-Mail Client 38 - 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. + alternates or any alias) - 66..33..77.. aarrrrooww__ccuurrssoorr + Where EXPR, USER, ID, and SUBJECT are _r_e_g_u_l_a_r _e_x_p_r_e_s_s_i_o_n_s (section 4.1 , page + 33). 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 back- + slashes instead (\\). - Type: boolean - Default: no + *) The forms <[MAX], >[MIN], [MIN]- and -[MAX] are allowed, too. - 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. + _4_._2_._1 _P_a_t_t_e_r_n _M_o_d_i_f_i_e_r - 66..33..88.. aasscciiii__cchhaarrss + 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. - Type: boolean - Default: no + ^~C \.de$ - If set, Mutt-ng will use plain ASCII characters when displaying thread - and attachment trees, instead of the default _A_C_S characters. + _4_._2_._2 _C_o_m_p_l_e_x _P_a_t_t_e_r_n_s - 66..33..99.. aasskk__ffoollllooww__uupp + Logical AND is performed by specifying more than one criterion. For example: - Type: boolean - Default: no + ~t mutt ~f elkins - If set, Mutt-ng will prompt you for follow-up groups before editing - the body of an outgoing message. + would select messages which contain the word ``mutt'' in the list of recipients + aanndd that have the word ``elkins'' in the ``From'' header field. - 66..33..1100.. aasskk__xx__ccoommmmeenntt__ttoo + Mutt also recognizes the following operators to create more complex search pat- + terns: - Type: boolean - Default: no + +o ! -- logical NOT operator - If set, Mutt-ng will prompt you for x-comment-to field before editing - the body of an outgoing message. + +o | -- logical OR operator - 66..33..1111.. aasskkbbcccc + +o () -- logical grouping operator - Type: boolean - Default: no + 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''. - If set, Mutt-ng will prompt you for blind-carbon-copy (Bcc) recipients - before editing an outgoing message. + !(~t mutt|~c mutt) ~f elkins - 66..33..1122.. aasskkcccc + 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 - Type: boolean - Default: no + The Mutt-ng E-Mail Client 39 - If set, Mutt-ng will prompt you for carbon-copy (Cc) recipients before - editing the body of an outgoing message. + +SomeoneElse'': - 66..33..1133.. aassssuummeedd__cchhaarrsseett + '~s "^Junk +From +Me$" ~f ("Jim +Somebody"|"Ed +SomeoneElse")' - Type: string - Default: "us-ascii" + 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 lan- + guage. For example, - This variable is a colon-separated list of character encoding schemes - for messages without character encoding indication. Header field - values and message body content without character encoding indication - would be assumed that they are written in one of this list. By - default, all the header fields and message body without any charset - indication are assumed to be in "us-ascii". + ~f "me@(mutt\.org|cs\.hmc\.edu)" - For example, Japanese users might prefer this: + Without the quotes, the parenthesis wouldn't end. This would be separated to + two OR'd patterns: _~_f _m_e_@_(_m_u_t_t_\_._o_r_g and _c_s_\_._h_m_c_\_._e_d_u_). They are never what you + want. - set assumed_charset="iso-2022-jp:euc-jp:shift_jis:utf-8" + _4_._2_._3 _S_e_a_r_c_h_i_n_g _b_y _D_a_t_e - However, only the first content is valid for the message body. This - variable is valid only if ``$strict_mime'' is unset. + Mutt supports two types of dates, _a_b_s_o_l_u_t_e and _r_e_l_a_t_i_v_e. - 66..33..1144.. aattttaacchh__ffoorrmmaatt + 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: - Type: string - Default: "%u%D%I %t%4n %T%.40d%> [%.7m/%.10M, %.6e%?C?, %C?, %s] " + Limit to messages matching: ~d 20/1/95-31/10 - This variable describes the format of the `attachment' menu. The - following printf-style sequences are understood: + If you omit the minimum (first) date, and just specify ``-DD/MM/YY'', all mes- + sages _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. - %%CC charset + 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: - %%cc requires charset conversion (n or c) + y years + m months + w weeks + d days - %%DD deleted flag + As a special case, you can replace the sign by a ``*'' character, which is + equivalent to giving identical plus and minus error margins. - %%dd description + Example: To select any messages two weeks around January 15, 2001, you'd use + the following pattern: - %%ee MIME content-transfer-encoding + The Mutt-ng E-Mail Client 40 - %%ff filename + Limit to messages matching: ~d 15/1/2001*2w - %%II disposition (I=inline, A=attachment) + RReellaattiivvee. This type of date is relative to the current date, and may be speci- + fied as: - %%mm major MIME type + +o >_o_f_f_s_e_t (messages older than _o_f_f_s_e_t units) - %%MM MIME subtype + +o <_o_f_f_s_e_t (messages newer than _o_f_f_s_e_t units) - %%nn attachment number + +o =_o_f_f_s_e_t (messages exactly _o_f_f_s_e_t units old) - %%ss size + _o_f_f_s_e_t is specified as a positive number with one of the following units: - %%tt tagged flag + y years + m months + w weeks + d days - %%TT graphic tree characters + Example: to select messages less than 1 month old, you would use - %%uu unlink (=to delete) flag + Limit to messages matching: ~d <1m - %%>>XX - right justify the rest of the string and pad with character "X" + NNoottee:: all dates used when searching are relative to the llooccaall time zone, so + unless you change the setting of your _$_i_n_d_e_x___f_o_r_m_a_t (section 6.3.112 , page + 91) to include a %[...] format, these are nnoott the dates shown in the main + index. - %%||XX - pad to the end of the line with character "X" + _4_._3 _U_s_i_n_g _T_a_g_s - 66..33..1155.. aattttaacchh__sseepp + 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 sub- + ject. 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 mes- + sages by hand using the ``tag-message'' function, which is bound to ``t'' by + default. See _p_a_t_t_e_r_n_s (section 4.2 , page 36) for Mutt's pattern matching + syntax. - Type: string - Default: "\n" + Once you have tagged the desired messages, you can use the ``tag-prefix'' oper- + ator, 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 _$_a_u_t_o___t_a_g (section 6.3.18 , + page 69) variable is set, the next operation applies to the tagged messages + automatically, without requiring the ``tag-prefix''. - The separator to add between attachments when operating (saving, - printing, piping, etc) on a list of tagged attachments. + In _m_a_c_r_o_s (section 3.6 , page 20) or _p_u_s_h (section 3.21 , page 29) 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 will stop + "eating" the macro when it encounters the ``end-cond'' operator; after this + operator the rest of the macro will be executed as normal. - 66..33..1166.. aattttaacchh__sspplliitt + The Mutt-ng E-Mail Client 41 - Type: boolean - Default: yes + _4_._4 _U_s_i_n_g _H_o_o_k_s - If this variable is unset, when operating (saving, printing, piping, - etc) on a list of tagged attachments, Mutt-ng 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-ng will operate on the attachments one by one. + 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 _r_e_g_u_l_a_r + _e_x_p_r_e_s_s_i_o_n (section 4.1 , page 33) or _p_a_t_t_e_r_n (section 4.2 , page 36) along + with a configuration option/command. See - 66..33..1177.. aattttrriibbuuttiioonn + +o _f_o_l_d_e_r_-_h_o_o_k (section 3.5 , page 19) - Type: string - Default: "On %d, %n wrote:" + +o _s_e_n_d_-_h_o_o_k (section 3.18 , page 27) - 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''''. + +o _m_e_s_s_a_g_e_-_h_o_o_k (section 3.19 , page 28) - 66..33..1188.. aauuttoo__ttaagg + +o _s_a_v_e_-_h_o_o_k (section 3.15 , page 26) - Type: boolean - Default: no + +o _m_b_o_x_-_h_o_o_k (section 3.11 , page 25) - 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. + +o _f_c_c_-_h_o_o_k (section 3.16 , page 27) - 66..33..1199.. aauuttooeeddiitt + +o _f_c_c_-_s_a_v_e_-_h_o_o_k (section 3.17 , page 27) - Type: boolean - Default: no + for specific details on each type of _h_o_o_k available. - When set along with ````$edit_headers'''', Mutt-ng 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. + 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: - Also see ````$fast_reply''''. + send-hook . 'unmy_hdr From:' + send-hook ~C'^b@b\.b$' my_hdr from: c@c.c - 66..33..2200.. bbeeeepp + _4_._4_._1 _M_e_s_s_a_g_e _M_a_t_c_h_i_n_g _i_n _H_o_o_k_s - Type: boolean - Default: yes + 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 _r_e_g_- + _u_l_a_r _e_x_p_r_e_s_s_i_o_n (section 4.1 , page 33) 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. - When this variable is set, mutt-ng will beep when an error occurs. + Mutt allows the use of the _s_e_a_r_c_h _p_a_t_t_e_r_n (section 4.2 , page 36) 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.). - 66..33..2211.. bbeeeepp__nneeww + For example, if you wanted to set your return address based upon sending mail + to a specific address, you could do something like: - Type: boolean - Default: no + send-hook '~t ^me@cs\.hmc\.edu$' 'my_hdr From: Mutt User ' - When this variable is set, mutt-ng will beep whenever it prints a - message notifying you of new mail. This is independent of the setting - of the ````$beep'''' variable. + The Mutt-ng E-Mail Client 42 - 66..33..2222.. bboouunnccee + which would execute the given command when sending mail to _m_e_@_c_s_._h_m_c_._e_d_u. - Type: quadoption - Default: ask-yes + 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 lan- + guage, using the translation specified by the _$_d_e_f_a_u_l_t___h_o_o_k (section 6.3.47 , + page 75) variable. The pattern is translated at the time the hook is declared, + so the value of _$_d_e_f_a_u_l_t___h_o_o_k (section 6.3.47 , page 75) that is in effect at + that time will be used. - 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. + _4_._5 _U_s_i_n_g _t_h_e _s_i_d_e_b_a_r - 66..33..2233.. bboouunnccee__ddeelliivveerreedd + 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 high- + lights the ones with new email Use the following configuration commands: - Type: boolean - Default: yes + set sidebar_visible="yes" + set sidebar_width=25 - When this variable is set, mutt-ng will include Delivered-To headers - when bouncing messages. Postfix users may wish to unset this - variable. + If you want to specify the mailboxes you can do so with: - 66..33..2244.. ccaattcchhuupp__nneewwssggrroouupp + set mbox='=INBOX' + mailboxes INBOX \ + MBOX1 \ + MBOX2 \ + ... - Type: quadoption - Default: ask-yes + You can also specify the colors for mailboxes with new mails by using: - If this variable is _s_e_t, Mutt-ng will mark all articles in newsgroup - as read when you quit the newsgroup (catchup newsgroup). + color sidebar_new red black + color sidebar white black - 66..33..2255.. cceerrttiiffiiccaattee__ffiillee + The available functions are: - Type: path - Default: "~/.mutt_certificates" + sidebar-scroll-up Scrolls the mailbox list up 1 page + sidebar-scroll-down Scrolls the mailbox list down 1 page + sidebar-next Highlights the next mailbox + sidebar-next-new Highlights the next mailbox with new mail + sidebar-previous Highlights the previous mailbox + sidebar-open Opens the currently highlighted mailbox - 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. + Reasonable key bindings look e.g. like this: - 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. + The Mutt-ng E-Mail Client 43 - Example: set certificate_file=~/.mutt/certificates + 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 - 66..33..2266.. cchhaarrsseett + macro index B ':toggle sidebar_visible^M' + macro pager B ':toggle sidebar_visible^M' - Type: string - Default: "" + 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'. - Character set your terminal uses to display and enter textual data. + _4_._6 _E_x_t_e_r_n_a_l _A_d_d_r_e_s_s _Q_u_e_r_i_e_s - 66..33..2277.. cchheecckk__nneeww + 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 _$_q_u_e_r_y___c_o_m_m_a_n_d (section 6.3.214 , page 117) variable, + you specify the wrapper command to use. For example: - Type: boolean - Default: yes + set query_command = "mutt_ldap_query.pl '%s'" - NNoottee:: this option only affects _m_a_i_l_d_i_r and _M_H style mailboxes. + 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. - When _s_e_t, Mutt-ng 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. + An example multiple response output: - 66..33..2288.. ccoollllaappssee__uunnrreeaadd + 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 - Type: boolean - Default: yes + 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 addresses to mail, start a new + query, or have a new query appended to the current responses. - When _u_n_s_e_t, Mutt-ng will not collapse a thread if it contains any - unread messages. + 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. - 66..33..2299.. ccoommppoossee__ffoorrmmaatt + The Mutt-ng E-Mail Client 44 - Type: string - Default: "-- Mutt-ng: Compose [Approx. msg size: %l Atts: %a]%>-" + _4_._7 _M_a_i_l_b_o_x _F_o_r_m_a_t_s - Controls the format of the status line displayed in the _C_o_m_p_o_s_e menu. - This string is similar to ````$status_format'''', but has its own set - of printf()-like sequences: + 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 _$_m_b_o_x___t_y_p_e (section 6.3.128 , page 96) vari- + able. - %%aa total number of attachments + 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: - %%hh local hostname + From me@cs.hmc.edu Fri, 11 Apr 1997 11:44:56 PST - %%ll approximate size (in bytes) of the current message + to denote the start of a new message (this is often referred to as the + ``From_'' line). - %%vv Mutt-ng version string + 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). - See the text describing the ````$status_format'''' option for more - information on how to set ````$compose_format''''. + 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 mes- + sage number (however, this is may not correspond to the message number Mutt + displays). Deleted messages are renamed with a comma (,) prepended to the file- + name. 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 replace- + ment 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. + + _4_._8 _M_a_i_l_b_o_x _S_h_o_r_t_c_u_t_s + + 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 _$_s_p_o_o_l_f_i_l_e (section 6.3.291 , page 135) (incoming) + mailbox + + +o > -- refers to your _$_m_b_o_x (section 6.3.127 , page 96) file + + +o < -- refers to your _$_r_e_c_o_r_d (section 6.3.223 , page 119) file + + +o ^ -- refers to the current mailbox + + +o - or !! -- refers to the file you've last visited + + +o ~ -- refers to your home directory + + The Mutt-ng E-Mail Client 45 + + +o = or + -- refers to your _$_f_o_l_d_e_r (section 6.3.65 , page 79) directory + + +o @_a_l_i_a_s -- refers to the _d_e_f_a_u_l_t _s_a_v_e _f_o_l_d_e_r (section 3.15 , page 26) as + determined by the address of the alias + + _4_._9 _H_a_n_d_l_i_n_g _M_a_i_l_i_n_g _L_i_s_t_s + + 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 mail- + ing 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 _l_i_s_t_s _a_n_d _s_u_b_s_c_r_i_b_e + (section 3.10 , page 24) 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 mail- + box. In the _$_i_n_d_e_x___f_o_r_m_a_t (section 6.3.112 , page 91) 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 _$_f_o_l_l_o_w_u_p___t_o (section 6.3.67 , page 80) option is set, mutt will gener- + ate 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. - 66..33..3300.. ccoonnffiigg__cchhaarrsseett + Conversely, when group-replying or list-replying to a message which has a Mail- + Followup-To header, mutt will respect this header if the _$_h_o_n_o_r___f_o_l_l_o_w_u_p___t_o + (section 6.3.91 , page 86) 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. - Type: string - Default: "" + 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 + + The Mutt-ng E-Mail Client 46 + + address given in the ``Reply-To'' field. Mutt uses the _$_r_e_p_l_y___t_o (section + 6.3.226 , page 119) variable to help decide which address to use. If set to + _a_s_k_-_y_e_s or _a_s_k_-_n_o, 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 set to _y_e_s, 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 + _$_i_n_d_e_x___f_o_r_m_a_t (section 6.3.112 , page 91) 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 eas- + ily be inserted by procmail and other mail filtering agents. - When defined, Mutt-ng will recode commands in rc files from this - encoding. + Lastly, Mutt has the ability to _s_o_r_t (section 6.3.285 , page 133) the mailbox + into _t_h_r_e_a_d_s (section 2.3.3 , page 7). 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. - 66..33..3311.. ccoonnffiirrmmaappppeenndd + _4_._1_0 _E_d_i_t_i_n_g _t_h_r_e_a_d_s - Type: boolean - Default: yes + Mutt 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. - When set, Mutt-ng will prompt for confirmation when appending messages - to an existing mailbox. + _4_._1_0_._1 _L_i_n_k_i_n_g _t_h_r_e_a_d_s - 66..33..3322.. ccoonnffiirrmmccrreeaattee + Some mailers tend to "forget" to correctly set the "In-Reply-To:" and "Refer- + ences:" headers when replying to a message. This results in broken discussions + because Mutt 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. + + _4_._1_0_._2 _B_r_e_a_k_i_n_g _t_h_r_e_a_d_s + + 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 (bound by default to #), which will turn the subthread starting from + the current message into a whole different thread. + + _4_._1_1 _D_e_l_i_v_e_r_y _S_t_a_t_u_s _N_o_t_i_f_i_c_a_t_i_o_n _(_D_S_N_) _S_u_p_p_o_r_t + + 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 + + The Mutt-ng E-Mail Client 47 + + 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. _$_d_s_n___n_o_t_i_f_y (section 6.3.53 , page + 76) is used to request receipts for different results (such as failed message, + message delivered, etc.). _$_d_s_n___r_e_t_u_r_n (section 6.3.54 , page 77) requests how + much of your message should be returned with the receipt (headers or full mes- + sage). Refer to the man page on sendmail for more details on DSN. + + _4_._1_2 _P_O_P_3 _S_u_p_p_o_r_t _(_O_P_T_I_O_N_A_L_) + + 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. - Type: boolean - Default: yes + 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://user- + name@popserver[:port]/. - When set, Mutt-ng will prompt for confirmation when saving messages to - a mailbox which does not yet exist before creating it. + 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 _$_p_o_p___c_h_e_c_k_i_n_t_e_r_v_a_l (section 6.3.197 , page 113) 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://[user- + name@]popserver[:port]/. - 66..33..3333.. ccoonnnneecctt__ttiimmeeoouutt + 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 _p_o_p___h_o_s_t (section 6.3.199 , page 113), fetch all your + new mail and place it in the local _s_p_o_o_l_f_i_l_e (section 6.3.291 , page 135). + After this point, Mutt runs exactly as if the mail had always been local. - Type: number - Default: 30 + NNoottee:: If you only need to fetch all messages to local mailbox you should con- + sider using a specialized program, such as fetchmail - Causes Mutt-ng 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-ng to wait indefinitely for the connection - to succeed. + _4_._1_3 _I_M_A_P _S_u_p_p_o_r_t _(_O_P_T_I_O_N_A_L_) - 66..33..3344.. ccoonntteenntt__ttyyppee + 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. - Type: string - Default: "text/plain" + 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 - Sets the default Content-Type for the body of newly composed messages. + The Mutt-ng E-Mail Client 48 - 66..33..3355.. ccooppyy + imap://imapserver/path/to/folder where path/to/folder is the path of the folder + you want to access. - Type: quadoption - Default: yes + You can select an alternative port by specifying it with the server, i.e.: + imap://imapserver:port/INBOX. - 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''''. + You can also specify different username for each folder, i.e.: imap://user- + name@imapserver[:port]/INBOX. - 66..33..3366.. ccrryypptt__aauuttooeennccrryypptt + 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://[user- + name@]imapserver[:port]/path/to/folder as your folder path. - Type: boolean - Default: no + Pine-compatible notation is also supported, i.e. {[user- + name@]imapserver[:port][/ssl]}path/to/folder - Setting this variable will cause Mutt-ng 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) + Note that not all servers use / as the hierarchy separator. Mutt should cor- + rectly notice which separator is being used by the server and convert paths + accordingly. - 66..33..3377.. ccrryypptt__aauuttooppggpp + 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 _$_i_m_a_p___l_i_s_t___s_u_b_s_c_r_i_b_e_d (section 6.3.100 , page 88) vari- + able. - Type: boolean - Default: yes + Polling for new mail on an IMAP server can cause noticeable delays. So, you'll + want to carefully tune the _$_i_m_a_p___m_a_i_l___c_h_e_c_k (section 6.3.101 , page 88) and + _$_t_i_m_e_o_u_t (section 6.3.311 , page 141) variables. - This variable controls whether or not mutt-ng may automatically enable - PGP encryption/signing for messages. See also - ````$crypt_autoencrypt'''', ````$crypt_replyencrypt'''', - ````$crypt_autosign'''', ````$crypt_replysign'''' and - ````$smime_is_default''''. + 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. - 66..33..3388.. ccrryypptt__aauuttoossiiggnn + _4_._1_3_._1 _T_h_e _F_o_l_d_e_r _B_r_o_w_s_e_r - Type: boolean - Default: no + 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: - Setting this variable will cause Mutt-ng 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) + +o Instead of file permissions, mutt displays the string "IMAP", possibly + followed by the symbol "+", indicating that the entry contains both mes- + sages and subfolders. On Cyrus-like servers folders will often contain + both messages and subfolders. - 66..33..3399.. ccrryypptt__aauuttoossmmiimmee + +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). - Type: boolean - Default: yes + +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 (nor- + mally these are bound to s and u, respectively). - This variable controls whether or not mutt-ng may automatically enable - S/MIME encryption/signing for messages. See also - ````$crypt_autoencrypt'''', ````$crypt_replyencrypt'''', - ````$crypt_autosign'''', ````$crypt_replysign'''' and - ````$smime_is_default''''. + The Mutt-ng E-Mail Client 49 - 66..33..4400.. ccrryypptt__rreeppllyyeennccrryypptt + _4_._1_3_._2 _A_u_t_h_e_n_t_i_c_a_t_i_o_n - Type: boolean - Default: yes + Mutt supports four authentication methods with IMAP servers: SASL, GSSAPI, + CRAM-MD5, and LOGIN (there is a patch by Grant Edwards to add NTLM authentica- + tion 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". - If set, automatically PGP or OpenSSL encrypt replies to messages which - are encrypted. (Crypto only) + 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. - 66..33..4411.. ccrryypptt__rreeppllyyssiiggnn + Mutt will try whichever methods are compiled in and available on the server, in + the following order: SASL, ANONYMOUS, GSSAPI, CRAM-MD5, LOGIN. - Type: boolean - Default: no + There are a few variables which control authentication: - If set, automatically PGP or OpenSSL sign replies to messages which - are signed. - NNoottee:: this does not work on messages that are encrypted aanndd signed! - (Crypto only) + +o _$_i_m_a_p___u_s_e_r (section 6.3.107 , page 90) - controls the username under + which you request authentication on the IMAP server, for all authentica- + tors. 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..4422.. ccrryypptt__rreeppllyyssiiggnneennccrryypptteedd + +o _$_i_m_a_p___p_a_s_s (section 6.3.102 , page 88) - a password which you may preset, + used by all authentication methods where a password is needed. - Type: boolean - Default: no + +o _$_i_m_a_p___a_u_t_h_e_n_t_i_c_a_t_o_r_s (section 6.3.94 , page 86) - 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). - 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-ng is not able to - find out whether an encrypted message is also signed. (Crypto only) + _4_._1_4 _M_a_n_a_g_i_n_g _m_u_l_t_i_p_l_e _I_M_A_P_/_P_O_P _a_c_c_o_u_n_t_s _(_O_P_T_I_O_N_A_L_) - 66..33..4433.. ccrryypptt__ttiimmeessttaammpp + 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: boolean - Default: yes + Some examples: - If set, mutt-ng 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) + 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..4444.. ccrryypptt__uussee__ggppggmmee + _4_._1_5 _S_t_a_r_t _a _W_W_W _B_r_o_w_s_e_r _o_n _U_R_L_s _(_E_X_T_E_R_N_A_L_) - Type: boolean - Default: no + If a message contains URLs (_u_n_i_f_i_e_d _r_e_s_o_u_r_c_e _l_o_c_a_t_o_r = address in the WWW space - This variable controls the use the GPGME enabled crypto backends. If - it is set and Mutt-ng was build with gpgme support, the gpgme code for - S/MIME and PGP will be used instead of the classic code. Note, that - you need to use this option in .muttrc as it won't have any effect - when used interactively. + The Mutt-ng E-Mail Client 50 - 66..33..4455.. ccrryypptt__vveerriiffyy__ssiigg + 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/con- + trib/ and the configuration commands: - Type: quadoption - Default: yes + macro index \cb |urlview\n + macro pager \cb |urlview\n - 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) + _4_._1_6 _C_o_m_p_r_e_s_s_e_d _f_o_l_d_e_r_s _S_u_p_p_o_r_t _(_O_P_T_I_O_N_A_L_) - 66..33..4466.. ddaattee__ffoorrmmaatt + If Mutt was compiled with compressed folders support (by running the _c_o_n_f_i_g_u_r_e + script with the _-_-_e_n_a_b_l_e_-_c_o_m_p_r_e_s_s_e_d 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. - Type: string - Default: "!%a, %b %d, %Y at %I:%M:%S%p %Z" + The most common use is to open compressed archived folders e.g. with gzip. - 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. + 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, append- + ing to it and converting back to the user-defined format. - 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). + There are three hooks defined (_o_p_e_n_-_h_o_o_k (section 4.16.1 , page 50), _c_l_o_s_e_- + _h_o_o_k (section 4.16.2 , page 51) and _a_p_p_e_n_d_-_h_o_o_k (section 4.16.3 , page 51)) + which define commands to uncompress and compress a folder and to append mes- + sages to an existing compressed folder respectively. - 66..33..4477.. ddeeffaauulltt__hhooookk + For example: - Type: string - Default: "~f %s !~P | (~P ~C %s)" + open-hook \\.gz$ "gzip -cd %f > %t" + close-hook \\.gz$ "gzip -c %t > %f" + append-hook \\.gz$ "gzip -c %t >> %f" - 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. + You do not have to specify all of the commands. If you omit _a_p_p_e_n_d_-_h_o_o_k (sec- + tion 4.16.3 , page 51), the folder will be open and closed again each time you + will add to it. If you omit _c_l_o_s_e_-_h_o_o_k (section 4.16.2 , page 51) (or give + empty command) , the folder will be open in the mode. If you specify _a_p_p_e_n_d_- + _h_o_o_k (section 4.16.3 , page 51) though you'll be able to append to the folder. - 66..33..4488.. ddeelleettee + Note that Mutt 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 sur- + prising if your compressing script produces empty files. In this situation, + unset _$_s_a_v_e___e_m_p_t_y (section 6.3.233 , page 121), so that the compressed file + will be removed if you delete all of the messages. - Type: quadoption - Default: ask-yes + _4_._1_6_._1 _O_p_e_n _a _c_o_m_p_r_e_s_s_e_d _m_a_i_l_b_o_x _f_o_r _r_e_a_d_i_n_g - 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. + Usage: open-hook _r_e_g_e_x_p '_c_o_m_m_a_n_d' - 66..33..4499.. ddeelleettee__uunnttaagg + The Mutt-ng E-Mail Client 51 - Type: boolean - Default: yes + The _c_o_m_m_a_n_d is the command that can be used for opening the folders whose names + match _r_e_g_e_x_p. - If this option is _s_e_t, mutt-ng 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. + The _c_o_m_m_a_n_d 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. - 66..33..5500.. ddiiggeesstt__ccoollllaappssee + %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. - Type: boolean - Default: yes + The _c_o_m_m_a_n_d should nnoott remove the original compressed file. The _c_o_m_m_a_n_d should + return non-zero exit status if it fails, so mutt knows something's wrong. - If this option is _s_e_t, mutt-ng's received-attachments menu will not - show the subparts of individual messages in a multipart/digest. To - see these subparts, press 'v' on that menu. + Example: - 66..33..5511.. ddiissppllaayy__ffiilltteerr + open-hook \\.gz$ "gzip -cd %f > %t" - Type: path - Default: "" + If the _c_o_m_m_a_n_d is empty, this operation is disabled for this file type. - 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. + _4_._1_6_._2 _W_r_i_t_e _a _c_o_m_p_r_e_s_s_e_d _m_a_i_l_b_o_x - 66..33..5522.. ddoottlloocckk__pprrooggrraamm + Usage: close-hook _r_e_g_e_x_p '_c_o_m_m_a_n_d' - Type: path - Default: "/usr/local/bin/muttng_dotlock" + This is used to close the folder that was open with the _o_p_e_n_-_h_o_o_k (section + 4.16.1 , page 50) command after some changes were made to it. - Contains the path of the muttng_dotlock (1) binary to be used by mutt- - ng. + The _c_o_m_m_a_n_d string is the command that can be used for closing the folders + whose names match _r_e_g_e_x_p. It has the same format as in the _o_p_e_n_-_h_o_o_k (section + 4.16.1 , page 50) command. Temporary folder in this case is the folder previ- + ously produced by the <_o_p_e_n_-_h_o_o_k (section 4.16.1 , page 50) command. - 66..33..5533.. ddssnn__nnoottiiffyy + The _c_o_m_m_a_n_d should nnoott remove the decompressed file. The _c_o_m_m_a_n_d should return + non-zero exit status if it fails, so mutt knows something's wrong. - Type: string - Default: "" + Example: - NNoottee:: you should not enable this unless you are using Sendmail 8.8.x - or greater. + close-hook \\.gz$ "gzip -c %t > %f" - 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. + If the _c_o_m_m_a_n_d is empty, this operation is disabled for this file type, and the + file can only be open in the readonly mode. - Example: set dsn_notify="failure,delay" + _c_l_o_s_e_-_h_o_o_k (section 4.16.2 , page 51) is not called when you exit from the + folder if the folder was not changed. - 66..33..5544.. ddssnn__rreettuurrnn + _4_._1_6_._3 _A_p_p_e_n_d _a _m_e_s_s_a_g_e _t_o _a _c_o_m_p_r_e_s_s_e_d _m_a_i_l_b_o_x - Type: string - Default: "" + Usage: append-hook _r_e_g_e_x_p '_c_o_m_m_a_n_d' - NNoottee:: you should not enable this unless you are using Sendmail 8.8.x - or greater. - 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. + This command is used for saving to an existing compressed folder. The _c_o_m_m_a_n_d - Example: set dsn_return=hdrs + The Mutt-ng E-Mail Client 52 - 66..33..5555.. dduupplliiccaattee__tthhrreeaaddss + is the command that can be used for appending to the folders whose names match + _r_e_g_e_x_p. It has the same format as in the _o_p_e_n_-_h_o_o_k (section 4.16.1 , page 50) + command. The temporary folder in this case contains the messages that are + being appended. - Type: boolean - Default: yes + The _c_o_m_m_a_n_d should nnoott remove the decompressed file. The _c_o_m_m_a_n_d should return + non-zero exit status if it fails, so mutt knows something's wrong. - This variable controls whether mutt-ng, 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. + Example: - 66..33..5566.. eeddiitt__hheeaaddeerrss + append-hook \\.gz$ "gzip -c %t >> %f" - Type: boolean - Default: no + When _a_p_p_e_n_d_-_h_o_o_k (section 4.16.3 , page 51) 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 (_$_m_b_o_x___t_y_p_e (section 6.3.128 , page 96)) type is always + supposed (i.e. this is the format used for the temporary folder). - This option allows you to edit the header of your outgoing messages - along with the body of your message. + If the file does not exist when you save to it, _c_l_o_s_e_-_h_o_o_k (section 4.16.2 , + page 51) is called, and not _a_p_p_e_n_d_-_h_o_o_k (section 4.16.3 , page 51). _a_p_p_e_n_d_- + _h_o_o_k (section 4.16.3 , page 51) is only for appending to existing folders. - 66..33..5577.. eeddiittoorr + If the _c_o_m_m_a_n_d is empty, this operation is disabled for this file type. In this + case, the folder will be open and closed again (using _o_p_e_n_-_h_o_o_k (section + 4.16.1 , page 50) and _c_l_o_s_e_-_h_o_o_k (section 4.16.2 , page 51)respectively) each + time you will add to it. - Type: path - Default: "" + _4_._1_6_._4 _E_n_c_r_y_p_t_e_d _f_o_l_d_e_r_s - This variable specifies which editor is used by mutt-ng. It defaults - to the value of the VISUAL, or EDITOR, environment variable, or to the - string "vi" if neither of those are set. + 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 use the following hooks: - 66..33..5588.. eennccooddee__ffrroomm + open-hook \\.pgp$ "pgp -f < %f > %t" + close-hook \\.pgp$ "pgp -fe YourPgpUserIdOrKeyId < %t > %f" - Type: boolean - Default: no + Please note, that PGP does not support appending to an encrypted folder, so + there is no append-hook defined. - When _s_e_t, mutt-ng 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. + NNoottee:: the folder is temporary stored decrypted in the /tmp directory, where it + can be read by your system administrator. So think about the security aspects + of this. - 66..33..5599.. eennvveellooppee__ffrroomm + _5_. _M_u_t_t_'_s _M_I_M_E _S_u_p_p_o_r_t - Type: boolean - Default: no - When _s_e_t, mutt-ng 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. + 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 discern- + ing 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 - 66..33..6600.. eessccaappee + The Mutt-ng E-Mail Client 53 - Type: string - Default: "~" + specifies the external commands to use for handling specific MIME types. - Escape character to use for functions in the builtin editor. + _5_._1 _U_s_i_n_g _M_I_M_E _i_n _M_u_t_t - 66..33..6611.. ffaasstt__rreeppllyy + 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. - Type: boolean - Default: no + _5_._1_._1 _V_i_e_w_i_n_g _M_I_M_E _m_e_s_s_a_g_e_s _i_n _t_h_e _p_a_g_e_r - 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. + 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 mes- + sage/news. In addition, the export controlled version of Mutt recognizes a + variety of PGP MIME types, including PGP/MIME and application/pgp. - NNoottee:: this variable has no effect when the ````$autoedit'''' variable - is set. + Mutt will denote attachments with a couple lines describing them. These lines + are of the form: - 66..33..6622.. ffcccc__aattttaacchh + [-- Attachment #1: Description --] + [-- Type: text/plain, Encoding: 7bit, Size: 10000 --] - Type: boolean - Default: yes + Where the Description is the description or filename given for the attachment, + and the Encoding is one of 7bit/8bit/quoted-printable/base64/binary. - This variable controls whether or not attachments on outgoing messages - are saved along with the main body of your message. + If Mutt cannot deal with a MIME type, it will display a message like: - 66..33..6633.. ffcccc__cclleeaarr + [-- image/gif is unsupported (use 'v' to view this part) --] - Type: boolean - Default: no + _5_._1_._2 _T_h_e _A_t_t_a_c_h_m_e_n_t _M_e_n_u - When this variable is set, FCCs will be stored unencrypted and - unsigned, even when the actual message is encrypted and/or signed. - (PGP only) + 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. - 66..33..6644.. ffiillee__cchhaarrsseett + Finally, you can apply the usual message-related functions (like _r_e_s_e_n_d_-_m_e_s_s_a_g_e + (section 2.3.4 , page 9), and the reply and forward functions) to attachments + of type message/rfc822. - Type: string - Default: "" + See the help on the attachment menu for more information. - This variable is a colon-separated list of character encoding schemes - for text file attatchments. If unset, ``$charset'' value will be used - instead. For example, the following configuration would work for - Japanese text handling: + _5_._1_._3 _T_h_e _C_o_m_p_o_s_e _M_e_n_u - set file_charset="iso-2022-jp:euc-jp:shift_jis:utf-8" + 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 - Note: "iso-2022-*" must be put at the head of the value as shown above - if included. + The Mutt-ng E-Mail Client 54 - 66..33..6655.. ffoollddeerr + modifying the attachment information, notably the type, encoding and descrip- + tion. - Type: path - Default: "~/Mail" + Attachments appear as follows: - 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. + - 1 [text/plain, 7bit, 1K] /tmp/mutt-euler-8082-0 + 2 [applica/x-gunzip, base64, 422K] ~/src/mutt-0.85.tar.gz - 66..33..6666.. ffoollddeerr__ffoorrmmaatt + The '-' denotes that Mutt 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). - Type: string - Default: "%2C %t %N %F %2l %-8.8u %-8.8g %8s %d %f" + _5_._2 _M_I_M_E _T_y_p_e _c_o_n_f_i_g_u_r_a_t_i_o_n _w_i_t_h _m_i_m_e_._t_y_p_e_s - 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: + 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 - %%CC current file number + The mime.types file consist of lines containing a MIME type and a space sepa- + rated list of extensions. For example: - %%dd date/time folder was last modified + application/postscript ps eps + application/pgp pgp + audio/x-aiff aif aifc aiff - %%ff filename + A sample mime.types file comes with the Mutt distribution, and should contain + most of the MIME types you are likely to use. - %%FF file permissions + 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 applica- + tion/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 vari- + ous molecular viewers. Non-recognised mime types should only be used if the + recipient of the message is likely to be expecting such attachments. - %%gg group name (or numeric gid, if missing) + _5_._3 _M_I_M_E _V_i_e_w_e_r _c_o_n_f_i_g_u_r_a_t_i_o_n _w_i_t_h _m_a_i_l_c_a_p - %%ll number of hard links + The Mutt-ng E-Mail Client 55 - %%NN N if folder has new mail, blank otherwise + Mutt supports RFC 1524 MIME Configuration, in particular the Unix specific for- + mat 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. - %%ss size in bytes + 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 - %%tt * if the file is tagged, blank otherwise + ${HOME}/.mailcap:/usr/local/share/mutt/mailcap:/etc/mailcap:/etc/mailcap:/usr/etc/mailcap:/usr/local/etc/mailcap - %%uu owner name (or numeric uid, if missing) + where $HOME is your home directory. - %%>>XX - right justify the rest of the string and pad with character "X" + In particular, the metamail distribution will install a mailcap file, usually + as /usr/local/etc/mailcap, which contains some baseline entries. - %%||XX - pad to the end of the line with character "X" - 66..33..6677.. ffoolllloowwuupp__ttoo + _5_._3_._1 _T_h_e _B_a_s_i_c_s _o_f _t_h_e _m_a_i_l_c_a_p _f_i_l_e - Type: boolean - Default: yes + A mailcap file consists of a series of lines which are comments, blank, or def- + initions. - 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-ng will generate this field when - you are replying to a known mailing list, specified with the - ``subscribe'' or ````lists'''' commands. + A comment line consists of a # character followed by anything you want. - 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. + A blank line is blank. - 66..33..6688.. ffoolllloowwuupp__ttoo__ppoosstteerr + 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. - Type: quadoption - Default: ask-yes + 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 for- + mat includes two formats for wildcards, one using the special '*' subtype, the + other is the implicit wild, where you only include the major type. For exam- + ple, image/*, or video, will match all image types and video types, respec- + tively. - 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 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 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. - 66..33..6699.. ffoorrccee__nnaammee + So, in the simplest form, you can send a text/plain message to the external + pager more on stdin: - Type: boolean - Default: no + text/plain; more - This variable is similar to ````$save_name'''', except that Mutt-ng - 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. + The Mutt-ng E-Mail Client 56 - Also see the ````$record'''' variable. + Or, you could send the message as a file: - 66..33..7700.. ffoorrwwaarrdd__ddeeccooddee + text/plain; more %s - Type: boolean - Default: yes + Perhaps you would like to use lynx to interactively view a text/html message: - 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. + text/html; lynx %s - 66..33..7711.. ffoorrwwaarrdd__ddeeccrryypptt + 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_. - Type: boolean - Default: yes + 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: - 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) + text/html; lynx -dump %s | more - 66..33..7722.. ffoorrwwaarrdd__eeddiitt + 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: quadoption - Default: yes + text/html; lynx %s + text/*; more - 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''. + This is the simplest form of a mailcap file. - 66..33..7733.. ffoorrwwaarrdd__ffoorrmmaatt + _5_._3_._2 _S_e_c_u_r_e _u_s_e _o_f _m_a_i_l_c_a_p - Type: string - Default: "[%a: %s]" + The interpretation of shell meta-characters embedded in MIME parameters can + lead to security problems in general. Mutt tries to quote parameters in expan- + sion of %s syntaxes properly, and avoids risky characters by substituting them, + see the _m_a_i_l_c_a_p___s_a_n_i_t_i_z_e (section 6.3.120 , page 95) variable. - This variable controls the default subject when forwarding a message. - It uses the same format sequences as the ````$index_format'''' - 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: - 66..33..7744.. ffoorrwwaarrdd__qquuoottee + _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 pro- + gram 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 alterna- + tive to correct quoting in the first place. - Type: boolean - Default: no + 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): - 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 Mutt-ng E-Mail Client 57 - 66..33..7755.. ffrroomm + text/test-mailcap-bug; cat %s; copiousoutput; test=charset=%{charset} \ + && test "`echo $charset | tr '[A-Z]' '[a-z]'`" != iso-8859-1 - Type: e-mail address - Default: "" + _5_._3_._3 _A_d_v_a_n_c_e_d _m_a_i_l_c_a_p _U_s_a_g_e - 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. + _5_._3_._3_._1 _O_p_t_i_o_n_a_l _F_i_e_l_d_s - Defaults to the contents of the environment variable EMAIL. + 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 recog- + nizes the following optional fields: - 66..33..7766.. ggeeccooss__mmaasskk + copiousoutput + 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: - Type: regular expression - Default: "^[^,]*" + text/html; lynx -dump %s ; copiousoutput - A regular expression used by mutt-ng 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=".*". + This will cause lynx to format the text/html output as text/plain + and Mutt will use your standard pager to display the results. - 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-ng - 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-ng will expand "Franklin" to "Franklin, Steve". + needsterminal + Mutt uses this flag when viewing attachments with _a_u_t_o_v_i_e_w (section + 5.4 , page 60), in order to decide whether it should honor the + setting of the _$_w_a_i_t___k_e_y (section 6.3.325 , page 144) 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 _$_w_a_i_t___k_e_y (section 6.3.325 , page 144) and the exit sta- + tus 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. - 66..33..7777.. ggrroouupp__iinnddeexx__ffoorrmmaatt + compose= + This flag specifies the command to use to create a new attachment + of a specific MIME type. Mutt supports this from the compose menu. - Type: string - Default: "%4C %M%N %5s %-45.45f %d" + composetyped= + 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. - 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: + print= + This flag specifies the command to use to print a specific MIME + type. Mutt supports this from the attachment and compose menus. + + edit= + This flag specifies the command to use to edit a specific MIME + + The Mutt-ng E-Mail Client 58 + + type. Mutt supports this from the compose menu, and also uses it + to compose new attachments. Mutt will default to the defined edi- + tor for text attachments. + + nametemplate=