+ version devel-r473
+
+ Abstract
+
+ Michael Elinks on mutt, circa 1995: ``All mail clients suck. This one just
+ sucks less.'' - Sven Guckes on mutt, ca. 2003: ``But it still sucks!''
+
+ --------------------------------------------------------------------------
+
+ Table of Contents
+
+ 1. Introduction
+
+ 1. Overview
+
+ 2. Mutt-ng Home Page
+
+ 3. Mailing Lists
+
+ 4. Software Distribution Sites
+
+ 5. IRC
+
+ 6. Weblog
+
+ 7. Copyright
+
+ 2. Getting Started
+
+ 1. Basic Concepts
+
+ 1.1. Screens and Menus
+
+ 1.2. Configuration
+
+ 1.3. Functions
+
+ 1.4. Interaction
+
+ 1.5. Modularization
+
+ 1.6. Patterns
+
+ 2. Screens and Menus
+
+ 2.1. Index
+
+ 2.2. Pager
+
+ 2.3. File Browser
+
+ 2.4. Sidebar
+
+ 2.5. Help
+
+ 2.6. Compose Menu
+
+ 2.7. Alias Menu
+
+ 2.8. Attachment Menu
+
+ 2.9. Key Menu
+
+ 3. Moving Around in Menus
+
+ 4. Editing Input Fields
+
+ 5. Reading Mail - The Index and Pager
+
+ 5.1. The Message Index
+
+ 5.2. The Pager
+
+ 5.3. Threaded Mode
+
+ 5.4. Miscellaneous Functions
+
+ 6. Sending Mail
+
+ 6.1. Composing new messages
+
+ 6.2. Replying
+
+ 6.3. Editing the message header
+
+ 6.4. Using Mutt-ng with PGP
+
+ 6.5. Sending anonymous messages via mixmaster
+
+ 7. Forwarding and Bouncing Mail
+
+ 8. Postponing Mail
+
+ 3. Configuration
+
+ 1. Locations of Configuration Files
+
+ 2. Basic Syntax of Initialization Files
+
+ 3. Expansion within variables
+
+ 3.1. Commands' Output
+
+ 3.2. Environment Variables
+
+ 3.3. Configuration Variables
+
+ 3.4. Self-Defined Variables
+
+ 3.5. Pre-Defined Variables
+
+ 3.6. Type Conversions
+
+ 4. Defining/Using aliases
+
+ 5. Changing the default key bindings
+
+ 6. Defining aliases for character sets
+
+ 7. Setting variables based upon mailbox
+
+ 8. Keyboard macros
+
+ 9. Using color and mono video attributes
+
+ 10. Ignoring (weeding) unwanted message headers
+
+ 11. Alternative addresses
+
+ 12. Format = Flowed
+
+ 12.1. Introduction
+
+ 12.2. Receiving: Display Setup
+
+ 12.3. Sending
+
+ 12.4. Additional Notes
+
+ 13. Mailing lists
+
+ 14. Using Multiple spool mailboxes
+
+ 15. Defining mailboxes which receive mail
+
+ 16. User defined headers
+
+ 17. Defining the order of headers when viewing messages
+
+ 18. Specify default save filename
+
+ 19. Specify default Fcc: mailbox when composing
+
+ 20. Specify default save filename and default Fcc: mailbox at
+ once
+
+ 21. Change settings based upon message recipients
+
+ 22. Change settings before formatting a message
+
+ 23. Choosing the cryptographic key of the recipient
+
+ 24. Adding key sequences to the keyboard buffer
+
+ 25. Executing functions
+
+ 26. Message Scoring
+
+ 27. Spam detection
+
+ 28. Setting variables
+
+ 29. Reading initialization commands from another file
+
+ 30. Removing hooks
+
+ 31. Sharing Setups
+
+ 31.1. Character Sets
+
+ 31.2. Modularization
+
+ 31.3. Conditional parts
+
+ 32. Obsolete Variables
+
+ 4. Advanced Usage
+
+ 1. Regular Expressions
+
+ 2. Patterns
+
+ 2.1. Complex Patterns
+
+ 2.2. Patterns and Dates
+
+ 3. Format Strings
+
+ 3.1. Introduction
+
+ 3.2. Conditional Expansion
+
+ 3.3. Modifications and Padding
+
+ 4. Using Tags
+
+ 5. Using Hooks
+
+ 5.1. Message Matching in Hooks
+
+ 6. Using the sidebar
+
+ 7. External Address Queries
+
+ 8. Mailbox Formats
+
+ 9. Mailbox Shortcuts
+
+ 10. Handling Mailing Lists
+
+ 11. Editing threads
+
+ 11.1. Linking threads
+
+ 11.2. Breaking threads
+
+ 12. Delivery Status Notification (DSN) Support
+
+ 13. POP3 Support (OPTIONAL)
+
+ 14. IMAP Support (OPTIONAL)
+
+ 14.1. The Folder Browser
+
+ 14.2. Authentication
+
+ 15. NNTP Support (OPTIONAL)
+
+ 15.1. Again: Scoring
+
+ 16. SMTP Support (OPTIONAL)
+
+ 17. Managing multiple IMAP/POP/NNTP accounts (OPTIONAL)
+
+ 18. Start a WWW Browser on URLs (EXTERNAL)
+
+ 19. Compressed folders Support (OPTIONAL)
+
+ 19.1. Open a compressed mailbox for reading
+
+ 19.2. Write a compressed mailbox
+
+ 19.3. Append a message to a compressed mailbox
+
+ 19.4. Encrypted folders
+
+ 5. Mutt-ng's MIME Support
+
+ 1. Using MIME in Mutt
+
+ 1.1. Viewing MIME messages in the pager
+
+ 1.2. The Attachment Menu
+
+ 1.3. The Compose Menu
+
+ 2. MIME Type configuration with mime.types
+
+ 3. MIME Viewer configuration with mailcap
+
+ 3.1. The Basics of the mailcap file
+
+ 3.2. Secure use of mailcap
+
+ 3.3. Advanced mailcap Usage
+
+ 3.4. Example mailcap files
+
+ 4. MIME Autoview
+
+ 5. MIME Multipart/Alternative
+
+ 6. MIME Lookup
+
+ 6. Security Considerations
+
+ 1. Passwords
+
+ 2. Temporary Files
+
+ 3. Information Leaks
+
+ 3.1. Message-ID: headers
+
+ 3.2. mailto:-style links
+
+ 4. External applications
+
+ 4.1. mailcap
+
+ 4.2. Other
+
+ 7. Reference
+
+ 1. Command line options
+
+ 2. Patterns
+
+ 3. Configuration Commands
+
+ 4. Configuration variables
+
+ 5. Functions
+
+ 5.1. generic
+
+ 5.2. index
+
+ 5.3. pager
+
+ 5.4. alias
+
+ 5.5. query
+
+ 5.6. attach
+
+ 5.7. compose
+
+ 5.8. postpone
+
+ 5.9. browser
+
+ 5.10. pgp
+
+ 5.11. editor
+
+ 8. Miscellany
+
+ 1. Acknowledgments
+
+Chapter 1. Introduction
+
+ Table of Contents
+
+ 1. Overview
+
+ 2. Mutt-ng Home Page
+
+ 3. Mailing Lists
+
+ 4. Software Distribution Sites
+
+ 5. IRC
+
+ 6. Weblog
+
+ 7. Copyright
+
+1. Overview
+
+ Mutt-ng is a small but very powerful text-based MIME mail client. Mutt-ng
+ is highly configurable, and is well suited to the mail power user with
+ advanced features like key bindings, keyboard macros, mail threading,
+ regular expression searches and a powerful pattern matching language for
+ selecting groups of messages.
+
+ This documentation additionally contains documentation to Mutt-NG, a fork
+ from Mutt with the goal to fix all the little annoyances of Mutt, to
+ integrate all the Mutt patches that are floating around in the web, and to
+ add other new features. Features specific to Mutt-ng will be discussed in
+ an extra section. Don't be confused when most of the documentation talk
+ about Mutt and not Mutt-ng, Mutt-ng contains all Mutt features, plus many
+ more.
+
+2. Mutt-ng Home Page
+
+ http://www.muttng.org
+
+3. Mailing Lists
+
+ 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
+
+4. Software Distribution Sites
+
+ So far, there are no official releases of Mutt-ng, but you can download
+ daily snapshots from http://mutt-ng.berlios.de/snapshots/
+
+5. IRC
+
+ Visit channel #muttng on irc.freenode.net (www.freenode.net) to chat with
+ other people interested in Mutt-ng.
+
+6. Weblog
+
+ 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.
+
+7. Copyright
+
+ Mutt is Copyright (C) 1996-2000 Michael R. Elkins <me@cs.hmc.edu> 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.
+
+Chapter 2. Getting Started
+
+ Table of Contents
+
+ 1. Basic Concepts
+
+ 1.1. Screens and Menus
+
+ 1.2. Configuration
+
+ 1.3. Functions
+
+ 1.4. Interaction
+
+ 1.5. Modularization
+
+ 1.6. Patterns
+
+ 2. Screens and Menus
+
+ 2.1. Index
+
+ 2.2. Pager
+
+ 2.3. File Browser
+
+ 2.4. Sidebar
+
+ 2.5. Help
+
+ 2.6. Compose Menu
+
+ 2.7. Alias Menu
+
+ 2.8. Attachment Menu
+
+ 2.9. Key Menu
+
+ 3. Moving Around in Menus
+
+ 4. Editing Input Fields
+
+ 5. Reading Mail - The Index and Pager
+
+ 5.1. The Message Index
+
+ 5.2. The Pager
+
+ 5.3. Threaded Mode
+
+ 5.4. Miscellaneous Functions
+
+ 6. Sending Mail
+
+ 6.1. Composing new messages
+
+ 6.2. Replying
+
+ 6.3. Editing the message header
+
+ 6.4. Using Mutt-ng with PGP
+
+ 6.5. Sending anonymous messages via mixmaster
+
+ 7. Forwarding and Bouncing Mail
+
+ 8. Postponing Mail
+
+1. Basic Concepts
+
+ 1.1. Screens and Menus
+
+ mutt-ng offers different screens of which every has its special purpose:
+
+ o The index displays the contents of the currently opened mailbox.
+
+ o The pager is responsible for displaying messages, that is, the header,
+ the body and all attached parts.
+
+ o The file browser offers operations on and displays information of all
+ folders mutt-ng should watch for mail.
+
+ o The sidebar offers a permanent view of which mailboxes contain how
+ many total, new and/or flagged mails.
+
+ o The help screen lists for all currently available commands how to
+ invoke them as well as a short description.
+
+ o The compose menu is a comfortable interface take last actions before
+ sending mail: change subjects, attach files, remove attachements, etc.
+
+ o The attachement menu gives a summary and the tree structure of the
+ attachements of the current message.
+
+ o The alias menu lists all or a fraction of the aliases a user has
+ defined.
+
+ o The key menu used in connection with encryption lets users choose the
+ right key to encrypt with.
+
+ When mutt-ng is started without any further options, it'll open the users
+ default mailbox and display the index.
+
+ 1.2. Configuration
+
+ Mutt-ng does not feature an internal configuration interface or menu due
+ to the simple fact that this would be too complex to handle (currently
+ there are several hundred variables which fine-tune the behaviour.)
+
+ Mutt-ng is configured using configuration files which allow users to add
+ comments or manage them via version control systems to ease maintenance.
+
+ Also, mutt-ng comes with a shell script named grml-muttng kindly
+ contributed by users which really helps and eases the creation of a user's
+ configuration file. When downloading the source code via a snapshot or via
+ subversion, it can be found in the contrib directory.
+
+ 1.3. Functions
+
+ Mutt-ng offers great flexibility due to the use of functions: internally,
+ every action a user can make mutt-ng perform is named ``function.'' Those
+ functions are assigned to keys (or even key sequences) and may be
+ completely adjusted to user's needs. The basic idea is that the impatient
+ users get a very intuitive interface to start off with and advanced users
+ virtually get no limits to adjustments.
+
+ 1.4. Interaction
+
+ Mutt-ng has two basic concepts of user interaction:
+
+ 1. There is one dedicated line on the screen used to query the user for
+ input, issue any command, query variables and display error and
+ informational messages. As for every type of user input, this requires
+ manual action leading to the need of input.
+
+ 2. The automatized interface for interaction are the so called hooks.
+ Hooks specify actions the user wants to be performed at well-defined
+ situations: what to do when entering which folder, what to do when
+ displaying or replying to what kind of message, etc. These are
+ optional, i.e. a user doesn't need to specify them but can do so.
+
+ 1.5. Modularization
+
+ Although mutt-ng has many functionality built-in, many features can be
+ delegated to external tools to increase flexibility: users can define
+ programs to filter a message through before displaying, users can use any
+ program they want for displaying a message, message types (such as PDF or
+ PostScript) for which mutt-ng doesn't have a built-in filter can be
+ rendered by arbitrary tools and so forth. Although mutt-ng has an alias
+ mechanism built-in, it features using external tools to query for nearly
+ every type of addresses from sources like LDAP, databases or just the list
+ of locally known users.
+
+ 1.6. Patterns
+
+ Mutt-ng has a built-in pattern matching ``language'' which is as widely
+ used as possible to present a consistent interface to users. The same
+ ``pattern terms'' can be used for searching, scoring, message selection
+ and much more.
+
+2. Screens and Menus
+
+ 2.1. Index
+
+ The index is the screen that you usually see first when you start mutt-ng.
+ It gives an overview over your emails in the currently opened mailbox. By
+ default, this is your system mailbox. The information you see in the index
+ is a list of emails, each with its number on the left, its flags (new
+ email, important email, email that has been forwarded or replied to,
+ tagged email, ...), the date when email was sent, its sender, the email
+ size, and the subject. Additionally, the index also shows thread
+ hierarchies: when you reply to an email, and the other person replies
+ back, you can see the other's person email in a "sub-tree" below. This is
+ especially useful for personal email between a group of people or when
+ you've subscribed to mailing lists.
+
+ 2.2. Pager
+
+ The pager is responsible for showing the email content. On the top of the
+ pager you have an overview over the most important email headers like the
+ sender, the recipient, the subject, and much more information. How much
+ information you actually see depends on your configuration, which we'll
+ describe below.
+
+ Below the headers, you see the email body which usually contains the
+ message. If the email contains any attachments, you will see more
+ information about them below the email body, or, if the attachments are
+ text files, you can view them directly in the pager.
+
+ To give the user a good overview, it is possible to configure mutt-ng to
+ show different things in the pager with different colors. Virtually
+ everything that can be described with a regular expression can be colored,
+ e.g. URLs, email addresses or smileys.
+
+ 2.3. File Browser
+
+ The file browser is the interface to the local or remote file system. When
+ selecting a mailbox to open, the browser allows custom sorting of items,
+ limiting the items shown by a regular expression and a freely adjustable
+ format of what to display in which way. It also allows for easy navigation
+ through the file system when selecting file(s) to attach to a message,
+ select multiple files to attach and many more.
+
+ 2.4. Sidebar
+
+ The sidebar comes in handy to manage mails which are spread over different
+ folders. All folders users setup mutt-ng to watch for new mail will be
+ listed. The listing includes not only the name but also the number of
+ total messages, the number of new and flagged messages. Items with new
+ mail may be colored different from those with flagged mail, items may be
+ shortened or compress if they're they to long to be printed in full form
+ so that by abbreviated names, user still now what the name stands for.
+
+ 2.5. Help
+
+ The help screen is meant to offer a quick help to the user. It lists the
+ current configuration of key bindings and their associated commands
+ including a short description, and currently unbound functions that still
+ need to be associated with a key binding (or alternatively, they can be
+ called via the mutt-ng command prompt).
+
+ 2.6. Compose Menu
+
+ The compose menu features a split screen containing the information which
+ really matter before actually sending a message by mail or posting an
+ article to a newsgroup: who gets the message as what (recipient,
+ newsgroup, who gets what kind of copy). Additionally, users may set
+ security options like deciding whether to sign, encrypt or sign and
+ encrypt a message with/for what keys.
+
+ Also, it's used to attach messages, news articles or files to a message,
+ to re-edit any attachment including the message itself.
+
+ 2.7. Alias Menu
+
+ The alias menu is used to help users finding the recipients of messages.
+ For users who need to contact many people, there's no need to remember
+ addresses or names completely because it allows for searching, too. The
+ alias mechanism and thus the alias menu also features grouping several
+ addresses by a shorter nickname, the actual alias, so that users don't
+ have to select each single recipient manually.
+
+ 2.8. Attachment Menu
+
+ As will be later discussed in detail, mutt-ng features a good and stable
+ MIME implementation, that is, is greatly supports sending and receiving
+ messages of arbitrary type. The attachment menu displays a message's
+ structure in detail: what content parts are attached to which parent part
+ (which gives a true tree structure), which type is of what type and what
+ size. Single parts may saved, deleted or modified to offer great and easy
+ access to message's internals.
+
+ 2.9. Key Menu
+
+ FIXME
+
+3. Moving Around in Menus
+
+ Information is presented in menus, very similar to ELM. Here is a table
+ showing the common keys used to navigate menus in Mutt-ng.
+
+ j or Down next-entry move to the next entry
+ k or Up previous-entry move to the previous entry
+ z or PageDn page-down go to the next page
+ Z or PageUp page-up go to the previous page
+ = or Home first-entry jump to the first entry
+ * or End last-entry jump to the last entry
+ q quit exit the current menu
+ ? help list all key bindings for the current menu
+
+4. Editing Input Fields
+
+ Mutt-ng has a builtin line editor which is used as the primary way to
+ input textual data such as email addresses or filenames. The keys used to
+ move around while editing are very similar to those of Emacs.
+
+ ^A or <Home> bol move to the start of the line
+ ^B or <Left> backward-char move back one char
+ Esc B backward-word move back one word
+ ^D or <Delete> delete-char delete the char under the cursor
+ ^E or <End> eol move to the end of the line
+ ^F or <Right> forward-char move forward one char
+ Esc F forward-word move forward one word
+ <Tab> complete complete filename or alias
+ ^T complete-query complete address with query
+ ^K kill-eol delete to the end of the line
+ ESC d kill-eow delete to the end of the word
+ ^W kill-word kill the word in front of the cursor
+ ^U kill-line delete entire line
+ ^V quote-char quote the next typed key
+ <Up> history-up recall previous string from history
+ <Down> history-down recall next string from history
+ <BackSpace> 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
+ <Return> n/a finish editing
+
+ You can remap the editor functions using the bind command. For example, to
+ make the Delete key delete the character in front of the cursor rather
+ than under, you could use
+
+ bind editor <delete> backspace
+
+5. Reading Mail - The Index and 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-ng. The second mode is the display of the
+ message contents. This is called the ``pager.''
+
+ The next few sections describe the functions provided in each of these
+ modes.
+
+ 5.1. The Message Index
+
+ 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
+ <Return> display-message
+ <Tab> 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
+
+ 5.1.1. Status Flags
+
+ 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
+
+ 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 set-flag (default: w)
+
+ o clear-flag (default: W)
+
+ Furthermore, the following flags reflect who the message is addressed to.
+ They can be customized with the $to_chars variable.
+
+ +
+
+ message is to you and you only
+
+ T
+
+ message is to you, but also to or cc'ed to others
+
+ C
+
+ message is cc'ed to you
+
+ F
+
+ message is from you
+
+ L
+
+ message is sent to a subscribed mailing list
+
+ 5.2. The Pager
+
+ By default, Mutt-ng uses its builtin pager to display the body of
+ messages. The pager is very similar to the Unix program less though not
+ nearly as featureful.
+
+ <Return> go down one line
+ <Space> display the next page (or next message if at the end of a message)
+ - go back to the previous page
+ n search for next match
+ S skip beyond quoted text
+ T toggle display of quoted text
+ ? show key bindings
+ / search for a regular expression (pattern)
+ ESC / search backwards for a regular expression
+ \ toggle search pattern coloring
+ ^ jump to the top of the message
+
+ In addition, many of the functions from the index are available in the
+ pager, such as delete-message or copy-message (this is one advantage over
+ using an external pager to view messages).
+
+ Also, the internal pager supports a couple other advanced features. For
+ one, it will accept and translate the ``standard'' nroff sequences 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-ng will attempt to display these in bold and
+ underline respectively if your terminal supports them. If not, you can use
+ the bold and underline color objects to specify a color or mono attribute
+ for them.
+
+ Additionally, the internal pager supports the ANSI escape sequences for
+ character attributes. Mutt-ng translates them into the correct color and
+ character settings. The sequences Mutt-ng supports are:
+
+ ESC [ Ps;Ps;Ps;...;Ps m
+ 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
+
+ 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 autoview script for highlighting
+ purposes. Note: If you change the colors for your display, for example by
+ changing the color associated with color2 for your xterm, then that color
+ will be used instead of green.
+
+ 5.3. Threaded Mode
+
+ When the mailbox is sorted by threads, there are a few additional
+ functions available in the index and pager modes.
+
+ ^D delete-thread delete all messages in the current thread
+ ^U undelete-thread undelete all messages in the current thread
+ ^N next-thread jump to the start of the next thread
+ ^P previous-thread jump to the start of the previous thread
+ ^R read-thread mark the current thread as read
+ ESC d delete-subthread delete all messages in the current subthread
+ ESC u undelete-subthread undelete all messages in the current subthread
+ ESC n next-subthread jump to the start of the next subthread
+ ESC p previous-subthread jump to the start of the previous subthread
+ ESC r read-subthread mark the current subthread as read
+ ESC t tag-thread toggle the tag on the current thread
+ ESC v collapse-thread toggle collapse for the current thread
+ ESC V collapse-all toggle collapse for all threads
+ P parent-message jump to parent message in thread
+
+ Note: Collapsing a thread displays only the first message in the thread
+ and hides the others. This is useful when threads contain so many messages
+ that you can only see a handful of threads 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.
+
+ 5.4. Miscellaneous Functions
+
+ create-alias (default: a)
+
+ Creates a new alias based upon the current message (or prompts for a new
+ one). Once editing is complete, an alias command is added to the file
+ specified by the alias-file variable for future use. Note: Specifying an
+ alias-file does not add the aliases specified there-in, you must also
+ source the file.
+
+ check-traditional-pgp (default: ESC P)
+
+ This function will search the current message for content signed or
+ encrypted with PGP the "traditional" way, that is, without proper MIME
+ tagging. Technically, this function will temporarily change the MIME
+ content types of the body parts containing PGP data; this is similar to
+ the edit-type function's effect.
+
+ display-toggle-weed (default: h)
+
+ Toggles the weeding of message header fields specified by ignore commands.
+
+ edit (default: e)
+
+ This command (available in the ``index'' and ``pager'') allows you to edit
+ the raw current message as it's present in the mail folder. After you have
+ finished editing, the changed message will be appended to the current
+ folder, and the original message will be marked for deletion.
+
+ edit-type (default: ^E on the attachment menu, and in the pager and index
+ menus; ^T on the compose menu)
+
+ This command is used to temporarily edit an attachment's content type to
+ fix, for instance, bogus character set parameters. When invoked from the
+ index or from the pager, you'll have the opportunity to edit the top-level
+ attachment's content type. On the attach-menu, you can change any
+ attachment's content type. These changes are not persistent, and get lost
+ upon changing folders.
+
+ Note that this command is also available on the compose-menu. There, it's
+ used to fine-tune the properties of attachments you are going to send.
+
+ enter-command (default: ``:'')
+
+ This command is used to execute any command you would normally put in a
+ configuration file. A common use is to check the settings of variables, or
+ in conjunction with macro to change settings on the fly.
+
+ extract-keys (default: ^K)
+
+ This command extracts PGP public keys from the current or tagged
+ message(s) and adds them to your PGP public key ring.
+
+ forget-passphrase (default: ^F)
+
+ This command wipes the passphrase(s) from memory. It is useful, if you
+ misspelled the passphrase.
+
+ list-reply (default: L)
+
+ Reply to the current or tagged message(s) by extracting any addresses
+ which match the regular expressions given by the lists commands, but also
+ honor any Mail-Followup-To header(s) if the honor-followup-to
+ configuration variable is set. Using this when replying to messages posted
+ to mailing lists helps avoid duplicate copies being sent to the author of
+ the message you are replying to.
+
+ pipe-message (default: |)
+
+ Asks for an external Unix command and pipes the current or tagged
+ message(s) to it. The variables pipe-decode, pipe-split, pipe-sep and
+ wait-key control the exact behavior of this function.
+
+ resend-message (default: ESC e)
+
+ With resend-message, mutt takes the current message as a template for a
+ new message. This function is best described as "recall from arbitrary
+ folders". It can conveniently be used to forward MIME messages while
+ preserving the original mail structure. Note that the amount of headers
+ included here depends on the value of the weed variable.
+
+ This function is also available from the attachment menu. You can use this
+ to easily resend a message which was included with a bounce message as a
+ message/rfc822 body part.
+
+ shell-escape (default: !)
+
+ Asks for an external Unix command and executes it. The wait-key can be
+ used to control whether Mutt-ng will wait for a key to be pressed when the
+ command returns (presumably to let the user read the output of the
+ command), based on the return status of the named command.
+
+ toggle-quoted (default: T)
+
+ The pager 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.
+
+ skip-quoted (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.
+
+6. Sending Mail
+
+ The following bindings are available in the index 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-mail.
+
+ 6.1. Composing new messages
+
+ When you want to send an email using mutt-ng, simply press m on your
+ keyboard. Then, mutt-ng asks for the recipient via a prompt in the last
+ line:
+
+ To:
+
+ After you've finished entering the recipient(s), press return. If you want
+ to send an email to more than one recipient, separate the email addresses
+ using the comma ",". Mutt-ng then asks you for the email subject. Again,
+ press return after you've entered it. After that, mutt-ng got the most
+ important information from you, and starts up an editor where you can then
+ enter your email.
+
+ The editor that is called is selected in the following way: you can e.g.
+ set it in the mutt-ng configuration:
+
+ set editor = "vim +/^$/ -c ':set tw=72'"
+ set editor = "nano"
+ set editor = "emacs"
+
+ If you don't set your preferred editor in your configuration, mutt-ng
+ first looks whether the environment variable $VISUAL is set, and if so, it
+ takes its value as editor command. Otherwise, it has a look at $EDITOR and
+ takes its value if it is set. If no editor command can be found, mutt-ng
+ simply assumes vi to be the default editor, since it's the most widespread
+ editor in the Unix world and it's pretty safe to assume that it is
+ installed and available.
+
+ When you've finished entering your message, save it and quit your editor.
+ Mutt-ng will then present you with a summary screen, the compose menu. On
+ the top, you see a summary of the most important available key commands.
+ Below that, you see the sender, the recipient(s), Cc and/or Bcc
+ recipient(s), the subject, the reply-to address, and optionally
+ information where the sent email will be stored and whether it should be
+ digitally signed and/or encrypted.
+
+ Below that, you see a list of "attachments". The mail you've just entered
+ before is also an attachment, but due to its special type (it's plain
+ text), it will be displayed as the normal message on the receiver's side.
+
+ At this point, you can add more attachments, pressing a, you can edit the
+ recipient addresses, pressing t for the "To:" field, c for the "Cc:"
+ field, and b for the "Bcc: field. You can also edit the subject the
+ subject by simply pressing s or the email message that you've entered
+ before by pressing e. You will then again return to the editor. You can
+ even edit the sender, by pressing <esc>f, but this shall only be used with
+ caution.
+
+ Alternatively, you can configure mutt-ng in a way that most of the above
+ settings can be edited using the editor. Therefore, you only need to add
+ the following to your configuration:
+
+ set edit_headers
+
+ Once you have finished editing the body of your mail message, you are
+ returned to the compose menu. The following options are available:
+
+ a attach-file attach a file
+ A attach-message attach message(s) to the message
+ ESC k attach-key attach a PGP public key
+ d edit-description edit description on attachment
+ D detach-file detach a file
+ t edit-to edit the To field
+ ESC f edit-from edit the From field
+ r edit-reply-to edit the Reply-To field
+ c edit-cc edit the Cc field
+ b edit-bcc edit the Bcc field
+ y send-message send the message
+ s edit-subject edit the Subject
+ S smime-menu select S/MIME options
+ f edit-fcc specify an ``Fcc'' mailbox
+ p pgp-menu select PGP options
+ P postpone-message postpone this message until later
+ q quit quit (abort) sending the message
+ w write-fcc write the message to a folder
+ i ispell check spelling (if available on your system)
+ ^F forget-passphrase wipe passphrase(s) from memory
+
+ Note: The attach-message function will prompt you for a folder to attach
+ messages from. You can now tag messages in that folder and 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.
+
+ 6.2. Replying
+
+ 6.2.1. Simple Replies
+
+ When you want to reply to an email message, select it in the index menu
+ and then press r. Mutt-ng's behaviour is then similar to the behaviour
+ when you compose a message: first, you will be asked for the recipient,
+ then for the subject, and then, mutt-ng will start the editor with the
+ quote attribution and the quoted message. This can e.g. look like the
+ example below.
+
+ On Mon, Mar 07, 2005 at 05:02:12PM +0100, Michael Svensson wrote:
+ > Bill, can you please send last month's progress report to Mr.
+ > Morgan? We also urgently need the cost estimation for the new
+ > production server that we want to set up before our customer's
+ > project will go live.
+
+
+ You can start editing the email message. It is strongly recommended to put
+ your answer below the quoted text and to only quote what is really
+ necessary and that you refer to. Putting your answer on top of the quoted
+ message, is, although very widespread, very often not considered to be a
+ polite way to answer emails.
+
+ The quote attribution is configurable, by default it is set to
+
+ set attribution = "On %d, %n wrote:"
+
+
+ It can also be set to something more compact, e.g.
+
+ set attribution = "attribution="* %n <%a> [%(%y-%m-%d %H:%M)]:"
+
+
+ The example above results in the following attribution:
+
+ * Michael Svensson <svensson@foobar.com> [05-03-06 17:02]:
+ > Bill, can you please send last month's progress report to Mr.
+ > Morgan? We also urgently need the cost estimation for the new
+ > production server that we want to set up before our customer's
+ > project will go live.
+
+
+ Generally, try to keep your attribution short yet information-rich. It is
+ not the right place for witty quotes, long "attribution" novels or
+ anything like that: the right place for such things is - if at all - the
+ email signature at the very bottom of the message.
+
+ When you're done with writing your message, save and quit the editor. As
+ before, you will return to the compose menu, which is used in the same way
+ as before.
+
+ 6.2.2. Group Replies
+
+ In the situation where a group of people uses email as a discussion, most
+ of the emails will have one or more recipients, and probably several "Cc:"
+ recipients. The group reply functionality ensures that when you press g
+ instead of r to do a reply, each and every recipient that is contained in
+ the original message will receive a copy of the message, either as normal
+ recipient or as "Cc:" recipient.
+
+ 6.2.3. List Replies
+
+ When you use mailing lists, it's generally better to send your reply to a
+ message only to the list instead of the list and the original author. To
+ make this easy to use, mutt-ng features list replies.
+
+ To do a list reply, simply press L. If the email contains a
+ Mail-Followup-To: header, its value will be used as reply address.
+ Otherwise, mutt-ng searches through all mail addresses in the original
+ message and tries to match them a list of regular expressions which can be
+ specified using the lists command. If any of the regular expression
+ matches, a mailing list address has been found, and it will be used as
+ reply address.
+
+ lists linuxevent@luga\.at vuln-dev@ mutt-ng-users@
+
+
+ Nowadays, most mailing list software like GNU Mailman adds a
+ Mail-Followup-To: header to their emails anyway, so setting lists is
+ hardly ever necessary in practice.
+
+ 6.3. Editing the message header
+
+ When editing the header of your outgoing message, there are a couple of
+ special features available.
+
+ If you specify Fcc: filename Mutt-ng will pick up filename just as if you
+ had used the edit-fcc function in the compose menu.
+
+ You can also attach files to your message by specifying Attach: filename [
+ description ] where filename is the file to attach and description is an
+ optional string to use as the description of the attached file.
+
+ When replying to messages, if you remove the In-Reply-To: field from the
+ header field, Mutt-ng will not generate a References: field, which allows
+ you to create a new message thread.
+
+ Also see edit-headers.
+
+ 6.4. Using Mutt-ng with PGP
+
+ If you want to use PGP, you can specify
+
+ Pgp: [ E | S | S<id> ]
+
+ ``E'' encrypts, ``S'' signs and ``S<id>'' signs with the given key,
+ setting pgp-sign-as permanently.
+
+ If you have told mutt to PGP encrypt a message, it will guide you through
+ a key selection process when you try to send the message. Mutt-ng will not
+ ask you any questions about keys which have a certified user ID matching
+ one of the message recipients' mail addresses. However, there may be
+ situations in which there are several keys, weakly certified user ID
+ fields, or where no matching keys can be found.
+
+ In these cases, you are dropped into a menu with a list of keys from which
+ you can select one. When you quit this menu, or mutt can't find any
+ matching keys, you are prompted for a user ID. You can, as usually, abort
+ this prompt using ^G. When you do so, mutt will return to the compose
+ screen.
+
+ 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 e
+ indicates that this key can be used for encryption.
+
+ The second character indicates the key's signing capabilities. Once again,
+ a ``-'' implies ``not for signing'', ``.'' implies that the key is marked
+ as an encryption key in one of the user-ids, and ``s'' denotes a key which
+ can be used for signing.
+
+ Finally, the validity field (%t) indicates how well-certified a user-id
+ is. A question mark (?) indicates undefined validity, a minus character
+ (-) marks an untrusted association, a space character means a partially
+ trusted association, and a plus character (+) indicates complete validity.
+
+ 6.5. Sending anonymous messages via mixmaster
+
+ You may also have configured mutt to co-operate with Mixmaster, an
+ anonymous remailer. Mixmaster permits you to send your messages
+ anonymously using a chain of remailers. Mixmaster support in mutt is for
+ mixmaster version 2.04 (beta 45 appears to be the latest) and 2.03. It
+ does not support earlier versions or the later so-called version 3 betas,
+ of which the latest appears to be called 2.9b23.
+
+ To use it, you'll have to obey certain restrictions. Most important, you
+ cannot use the Cc and Bcc headers. To tell Mutt-ng to use mixmaster, you
+ have to select a remailer chain, using the mix function on the compose
+ menu.
+
+ 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.
+
+7. Forwarding and Bouncing Mail
+
+ Often, it is necessary to forward mails to other people. Therefore,
+ mutt-ng supports forwarding messages in two different ways.
+
+ The first one is regular forwarding, as you probably know it from other
+ mail clients. You simply press f, enter the recipient email address, the
+ subject of the forwarded email, and then you can edit the message to be
+ forwarded in the editor. The forwarded message is separated from the rest
+ of the message via the two following markers:
+
+ ----- Forwarded message from Lucas User <luser@example.com> -----
+
+ From: Lucas User <luser@example.com>
+ Date: Thu, 02 Dec 2004 03:08:34 +0100
+ To: Michael Random <mrandom@example.com>
+ Subject: Re: blackmail
+
+ Pay me EUR 50,000.- cash or your favorite stuffed animal will die
+ a horrible death.
+
+
+ ----- End forwarded message -----
+
+ When you're done with editing the mail, save and quit the editor, and you
+ will return to the compose menu, the same menu you also encounter when
+ composing or replying to mails.
+
+ The second mode of forwarding emails with mutt-ng is the so-called
+ bouncing: when you bounce an email to another address, it will be sent in
+ practically the same format you send it (except for headers that are
+ created during transporting the message). To bounce a message, press b and
+ enter the recipient email address. By default, you are then asked whether
+ you really want to bounce the message to the specified recipient. If you
+ answer with yes, the message will then be bounced.
+
+ To the recipient, the bounced email will look as if he got it like a
+ regular email where he was Bcc: recipient. The only possibility to find
+ out whether it was a bounced email is to carefully study the email headers
+ and to find out which host really sent the email.
+
+8. Postponing Mail
+
+ At times it is desirable to delay sending a message that you have already
+ begun to compose. When the postpone-message function is used in the
+ compose menu, the body of your message and attachments are stored in the
+ mailbox specified by the postponed variable. This means that you can
+ recall the message even if you exit Mutt-ng and then restart it at a later
+ time.
+
+ Once a message is postponed, there are several ways to resume it. From the
+ command line you can use the ``-p'' option, or if you compose a new
+ message from the index or pager you will be prompted if postponed messages
+ exist. If multiple messages are currently postponed, the postponed menu
+ will pop up and you can select which message you would like to resume.
+
+ Note: If you postpone a reply to a message, the reply setting of the
+ message is only updated when you actually finish the message and send it.
+ Also, you must be in the same folder with the message you replied to for
+ the status of the message to be updated.
+
+ See also the postpone quad-option.
+
+Chapter 3. Configuration
+
+ Table of Contents
+
+ 1. Locations of Configuration Files
+
+ 2. Basic Syntax of Initialization Files
+
+ 3. Expansion within variables
+
+ 3.1. Commands' Output
+
+ 3.2. Environment Variables
+
+ 3.3. Configuration Variables
+
+ 3.4. Self-Defined Variables
+
+ 3.5. Pre-Defined Variables
+
+ 3.6. Type Conversions
+
+ 4. Defining/Using aliases
+
+ 5. Changing the default key bindings
+
+ 6. Defining aliases for character sets
+
+ 7. Setting variables based upon mailbox
+
+ 8. Keyboard macros
+
+ 9. Using color and mono video attributes
+
+ 10. Ignoring (weeding) unwanted message headers
+
+ 11. Alternative addresses
+
+ 12. Format = Flowed
+
+ 12.1. Introduction
+
+ 12.2. Receiving: Display Setup
+
+ 12.3. Sending
+
+ 12.4. Additional Notes
+
+ 13. Mailing lists
+
+ 14. Using Multiple spool mailboxes
+
+ 15. Defining mailboxes which receive mail
+
+ 16. User defined headers
+
+ 17. Defining the order of headers when viewing messages
+
+ 18. Specify default save filename
+
+ 19. Specify default Fcc: mailbox when composing
+
+ 20. Specify default save filename and default Fcc: mailbox at once
+
+ 21. Change settings based upon message recipients
+
+ 22. Change settings before formatting a message
+
+ 23. Choosing the cryptographic key of the recipient
+
+ 24. Adding key sequences to the keyboard buffer
+
+ 25. Executing functions
+
+ 26. Message Scoring
+
+ 27. Spam detection
+
+ 28. Setting variables
+
+ 29. Reading initialization commands from another file
+
+ 30. Removing hooks
+
+ 31. Sharing Setups
+
+ 31.1. Character Sets
+
+ 31.2. Modularization
+
+ 31.3. Conditional parts
+
+ 32. Obsolete Variables
+
+1. Locations of Configuration Files
+
+ While the default configuration (or ``preferences'') make Mutt-ng usable
+ right out of the box, it is often desirable to tailor Mutt-ng to suit your
+ own tastes. When Mutt-ng is first invoked, it will attempt to read the
+ ``system'' configuration file (defaults set by your local system
+ administrator), unless the ``-n'' commandline option is specified. This
+ file is typically /usr/local/share/muttng/Muttngrc or /etc/Muttngrc,
+ Mutt-ng users will find this file in /usr/local/share/muttng/Muttrc or
+ /etc/Muttngrc. Mutt will next look for a file named .muttrc in your home
+ directory, Mutt-ng will look for .muttngrc. If this file does not exist
+ and your home directory has a subdirectory named .mutt, mutt try to load a
+ file named .muttng/muttngrc.
+
+ .muttrc (or .muttngrc for Mutt-ng) is the file where you will usually
+ place your commands to configure Mutt-ng.
+
+2. Basic Syntax of Initialization Files
+
+ 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-ng user' ; ignore x-
+
+ 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,
+
+ 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 not 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.
+
+ Please note that, unlike the various shells, mutt-ng interprets a ``\'' at
+ the end of a line also in comments. This allows you to disable a command
+ split over multiple lines with only one ``#''.
+
+ # folder-hook . \
+ set realname="Michael \"MuttDude\" Elkins"
+
+ 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!
+
+ Abstract example:
+
+ line1\
+ line2a # line2b\
+ line3\
+ line4
+ line5
+
+ 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 commands understood by mutt are explained in the next paragraphs. For
+ a complete list, see the commands.
+
+3. Expansion within variables
+
+ Besides just assign static content to variables, there's plenty of ways of
+ adding external and more or less dynamic content.
+
+ 3.1. Commands' Output
+
+ It is possible to substitute the output of a Unix command in an
+ initialization file. This is accomplished by enclosing the command in
+ backquotes (``) as in, for example:
+
+ 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.
+
+ 3.2. Environment Variables
+
+ UNIX environments can be accessed like the way it is done in shells like
+ sh and bash: Prepend the name of the environment by a ``$'' sign. For
+ example,
+
+ set record=+sent_on_$HOSTNAME
+
+ sets the record variable to the string +sent_on_ and appends the value of
+ the evironment variable $HOSTNAME.
+
+ Note: There will be no warning if an environment variable is not defined.
+ The result will of the expansion will then be empty.
+
+ 3.3. Configuration Variables
+
+ As for environment variables, the values of all configuration variables as
+ string can be used in the same way, too. For example,
+
+ set imap_home_namespace = $folder
+
+ would set the value of imap-home-namespace to the value to which folder is
+ currently set to.
+
+ Note: There're no logical links established in such cases so that the the
+ value for imap-home-namespace won't change even if folder gets changed.
+
+ Note: There will be no warning if a configuration variable is not defined
+ or is empty. The result will of the expansion will then be empty.
+
+ 3.4. Self-Defined Variables
+
+ Mutt-ng flexibly allows users to define their own variables. To avoid
+ conflicts with the standard set and to prevent misleading error messages,
+ there's a reserved namespace for them: all user-defined variables must be
+ prefixed with user_ and can be used just like any ordinary configuration
+ or environment variable.
+
+ For example, to view the manual, users can either define two macros like
+ the following
+
+ macro generic <F1> "!less -r /path/to/manual" "Show manual"
+ macro pager <F1> "!less -r /path/to/manual" "Show manual"
+
+ for generic, pager and index. The alternative is to define a custom
+ variable like so:
+
+ set user_manualcmd = "!less -r /path/to_manual"
+ macro generic <F1> "$user_manualcmd<enter>" "Show manual"
+ macro pager <F1> "$user_manualcmd<enter>" "Show manual"
+ macro index <F1> "$user_manualcmd<enter>" "Show manual"
+
+ to re-use the command sequence as in:
+
+ macro index <F2> "$user_manualcmd | grep '\^[ ]\\+~. '" "Show Patterns"
+
+ Using this feature, arbitrary sequences can be defined once and recalled
+ and reused where necessary. More advanced scenarios could include to save
+ a variable's value at the beginning of macro sequence and restore it at
+ end.
+
+ When the variable is first defined, the first value it gets assigned is
+ also the initial value to which it can be reset using the reset command.
+
+ The complete removal is done via the unset keyword.
+
+ After the following sequence:
+
+ set user_foo = 42
+ set user_foo = 666
+
+ the variable $user_foo has a current value of 666 and an initial of 42.
+ The query
+
+ set ?user_foo
+
+ will show 666. After doing the reset via
+
+ reset user_foo
+
+ a following query will give 42 as the result. After unsetting it via
+
+ unset user_foo
+
+ any query or operation (except the noted expansion within other
+ statements) will lead to an error message.
+
+ 3.5. Pre-Defined Variables
+
+ In order to allow users to share one setup over a number of different
+ machines without having to change its contents, there's a number of
+ pre-defined variables. These are prefixed with muttng_ and are read-only,
+ i.e. they cannot be set, unset or reset. The reference chapter lists all
+ available variables.
+
+ Please consult the local copy of your manual for their values as they may
+ differ from different manual sources. Where the manual is installed in can
+ be queried (already using such a variable) by running:
+
+ muttng -Q muttng_docdir
+
+ To extend the example for viewing the manual via self-defined variables,
+ it can be made more readable and more portable by changing the real path
+ in:
+
+ set user_manualcmd = '!less -r /path/to_manual'
+
+ to:
+
+ set user_manualcmd = "!less -r $muttng_docdir/manual.txt"
+
+ which works everywhere if a manual is installed.
+
+ Please note that by the type of quoting, muttng determines when to expand
+ these values: when it finds double quotes, the value will be expanded
+ during reading the setup files but when it finds single quotes, it'll
+ expand it at runtime as needed.
+
+ For example, the statement
+
+ folder-hook . "set user_current_folder = $muttng_folder_name"
+
+ will be already be translated to the following when reading the startup
+ files:
+
+ folder-hook . "set user_current_folder = some_folder"
+
+ with some_folder being the name of the first folder muttng opens. On the
+ contrary,
+
+ folder-hook . 'set user_current_folder = $muttng_folder_name'
+
+ will be executed at runtime because of the single quotes so that
+ user_current_folder will always have the value of the currently opened
+ folder.
+
+ A more practical example is:
+
+ folder-hook . 'source ~/.mutt/score-$muttng_folder_name'
+
+ which can be used to source files containing score commands depending on
+ the folder the user enters.
+
+ 3.6. Type Conversions
+
+ A note about variable's types during conversion: internally values are
+ stored in internal types but for any dump/query or set operation they're
+ converted to and from string. That means that there's no need to worry
+ about types when referencing any variable. As an example, the following
+ can be used without harm (besides makeing muttng very likely behave
+ strange):
+
+ set read_inc = 100
+ set folder = $read_inc
+ set read_inc = $folder
+ set user_magic_number = 42
+ set folder = $user_magic_number
+
+4. Defining/Using aliases
+
+ Usage: alias key address [ , address, ... ]
+
+ It's usually very cumbersome to remember or type out the address of
+ someone you are communicating with. Mutt-ng allows you to create
+ ``aliases'' which map a short string to a full address.
+
+ Note: if you want to create an alias for a group (by specifying more than
+ one address), you must separate the addresses with a comma (``,'').
+
+ To remove an alias or aliases (``*'' means all aliases):
+
+ unalias [ * | key ... ]
+
+ alias muttdude me@cs.hmc.edu (Michael Elkins)
+ alias theguys manny, moe, jack
+
+ Unlike other mailers, Mutt-ng doesn't require aliases to be defined in a
+ special file. The alias command can appear anywhere in a configuration
+ file, as long as this file is source. Consequently, you can have multiple
+ alias files, or you can have all aliases defined in your muttrc.
+
+ On the other hand, the create-alias function can use only one file, the
+ one pointed to by the alias-file variable (which is ˜/.muttrc by
+ default). This file is not special either, in the sense that Mutt-ng will
+ happily append aliases to any file, but in order for the new aliases to
+ take effect you need to explicitly source this file too.
+
+ For example:
+
+ source /usr/local/share/Mutt-ng.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 To: or Cc: 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
+ select-entry key (default: RET), and use the exit key (default: q) to
+ return to the address prompt.
+
+5. Changing the default key bindings
+
+ Usage: bind map key function
+
+ This command allows you to change the default key bindings (operation
+ invoked when pressing a key).
+
+ map 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:
+
+ 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-ng will look for a binding to use in
+ this menu. This allows you to bind a key to a certain function in
+ multiple menus instead of having multiple bind statements to
+ accomplish the same task.
+
+ alias
+
+ The alias menu is the list of your personal aliases as defined in
+ your muttrc. It is the mapping from a short alias name to the full
+ email address(es) of the recipient(s).
+
+ attach
+
+ The attachment menu is used to access the attachments on received
+ messages.
+
+ browser
+
+ The browser is used for both browsing the local directory
+ structure, and for listing all of your incoming mailboxes.
+
+ editor
+
+ The editor is the line-based editor the user enters text data.
+
+ index
+
+ The index is the list of messages contained in a mailbox.
+
+ compose
+
+ The compose menu is the screen used when sending a new message.
+
+ pager
+
+ The pager is the mode used to display message/attachment data, and
+ help listings.
+
+ pgp
+
+ The pgp menu is used to select the OpenPGP keys used for
+ encrypting outgoing messages.
+
+ postpone
+
+ The postpone menu is similar to the index menu, except is used
+ when recalling a message the user was composing, but saved until
+ later.
+
+ key is the key (or key sequence) you wish to bind. To specify a control
+ character, use the sequence \Cx, where x is the letter of the control
+ character (for example, to specify control-A use ``\Ca''). Note that the
+ case of x as well as \C is ignored, so that \CA, \Ca, \cA and \ca are all
+ equivalent. An alternative form is to specify the key as a three digit
+ octal number prefixed with a ``\'' (for example \177 is equivalent to
+ \c?).
+
+ In addition, key may consist of:
+
+ \t tab
+ <tab> tab
+ <backtab> backtab / shift-tab
+ \r carriage return
+ \n newline
+ \e escape
+ <esc> escape
+ <up> up arrow
+ <down> down arrow
+ <left> left arrow
+ <right> right arrow
+ <pageup> Page Up
+ <pagedown> Page Down
+ <backspace> Backspace
+ <delete> Delete
+ <insert> Insert
+ <enter> Enter
+ <return> Return
+ <home> Home
+ <end> End
+ <space> Space bar
+ <f1> function key 1
+ <f10> function key 10
+
+ key does not need to be enclosed in quotes unless it contains a space (``
+ '').
+
+ function specifies which action to take when key is pressed. For a
+ complete list of functions, see the functions. The special function noop
+ unbinds the specified key sequence.
+
+6. Defining aliases for character sets
+
+ Usage: charset-hook alias charset Usage: iconv-hook charset local-charset
+
+ 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.
+
+7. Setting variables based upon mailbox
+
+ Usage: folder-hook [!]regexp command
+
+ It is often desirable to change settings based on which mailbox you are
+ reading. The folder-hook command provides a method by which you can
+ execute any configuration command. regexp is a regular expression
+ specifying in which mailboxes to execute command before loading. If a
+ mailbox matches multiple folder-hook's, they are executed in the order
+ given in the muttrc.
+
+ Note: if you use the ``!'' shortcut for spoolfile at the beginning of the
+ pattern, you must place it inside of double or single quotes in order to
+ distinguish it from the logical not operator for the expression.
+
+ Note that the settings are not 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:
+
+ folder-hook mutt set sort=threads
+
+ However, the sorting method is not restored to its previous value when
+ reading a different mailbox. To specify a default command, use the pattern
+ ``.'':
+
+ folder-hook . set sort=date-sent
+
+8. Keyboard macros
+
+ Usage: macro menu key sequence [ description ]
+
+ Macros are useful when you would like a single key to perform a series of
+ actions. When you press key in menu menu, Mutt-ng will behave as if you
+ had typed sequence. So if you have a common sequence of commands you type,
+ you can create a macro to execute those commands with a single key.
+
+ menu is the maps which the macro will be bound. Multiple maps may be
+ specified by separating multiple menu arguments by commas. Whitespace may
+ not be used in between the menu arguments and the commas separating them.
+
+ key and sequence are expanded by the same rules as the bind. There are
+ some additions however. The first is that control characters in sequence
+ can also be specified as ^x. In order to get a caret (`^'') you need to
+ use ^^. Secondly, to specify a certain key such as up or to invoke a
+ function directly, you can use the format <key name> and <function name>.
+ For a listing of key names see the section on bind. Functions are listed
+ in the functions.
+
+ 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 Muttngrc).
+
+ Optionally you can specify a descriptive text after sequence, which is
+ shown in the help screens.
+
+ Note: Macro definitions (if any) listed in the help screen(s), are
+ silently truncated at the screen width, and are not wrapped.
+
+9. Using color and mono video attributes
+
+ Usage: color object foreground background [ regexp ] Usage: color index
+ foreground background pattern Usage: uncolor index pattern [ pattern ... ]
+
+ If your terminal supports color, you can spice up Mutt-ng by creating your
+ own color scheme. To define the color of an object (type of information),
+ you must specify both a foreground color and a background color (it is not
+ possible to only specify one or the other).
+
+ object can be one of:
+
+ o attachment
+
+ o body (match regexp in the body of messages)
+
+ o bold (highlighting bold patterns in the body of messages)
+
+ o error (error messages printed by Mutt-ng)
+
+ o header (match regexp in the message header)
+
+ o hdrdefault (default color of the message header in the pager)
+
+ o index (match pattern in the message index)
+
+ o indicator (arrow or bar used to indicate the current item in a menu)
+
+ o markers (the ``+'' markers at the beginning of wrapped lines in the
+ pager)
+
+ o message (informational messages)
+
+ o normal
+
+ o quoted (text matching quote-regexp in the body of a message)
+
+ o quoted1, quoted2, ..., quotedN (higher levels of quoting)
+
+ o search (highlighting of words in the pager)
+
+ o signature
+
+ o status (mode lines used to display info about the mailbox or message)
+
+ o tilde (the ``˜'' used to pad blank lines in the pager)
+
+ o tree (thread tree drawn in the message index and attachment menu)
+
+ o underline (highlighting underlined patterns in the body of messages)
+
+ foreground and background can be one of the following:
+
+ o white
+
+ o black
+
+ o green
+
+ o magenta
+
+ o blue
+
+ o cyan
+
+ o yellow
+
+ o red
+
+ o default
+
+ o colorx
+
+ foreground can optionally be prefixed with the keyword bright to make the
+ foreground color boldfaced (e.g., brightred).
+
+ If your terminal supports it, the special keyword default can be used as a
+ transparent color. The value brightdefault is also valid. If Mutt-ng is
+ linked against the S-Lang library, you also need to set the COLORFGBG
+ environment variable to the default colors of your terminal for this to
+ work; for example (for Bourne-like shells):
+
+ set COLORFGBG="green;black"
+ export COLORFGBG
+
+ Note: The S-Lang library requires you to use the lightgray and brown
+ keywords instead of white and yellow when setting this variable.
+
+ Note: The uncolor command can be applied to the index object only. It
+ removes entries from the list. You must specify the same pattern specified
+ in the color command for it to be removed. The pattern ``*'' is a special
+ token which means to clear the color index list of all entries.
+
+ Mutt-ng also recognizes the keywords color0, color1, …, colorN-1 (N
+ being the number of colors supported by your terminal). This is useful
+ when you remap the colors for your display (for example by changing the
+ color associated with color2 for your xterm), since color names may then
+ lose their normal meaning.
+
+ If your terminal does not support color, it is still possible change the
+ video attributes through the use of the ``mono'' command:
+
+ Usage: mono <object> <attribute> [ regexp ] Usage: mono index attribute
+ pattern Usage: unmono index pattern [ pattern ... ]
+
+ where attribute is one of the following:
+
+ o none
+
+ o bold
+
+ o underline
+
+ o reverse
+
+ o standout
+
+10. Ignoring (weeding) unwanted message headers
+
+ Usage: [un]ignore pattern [ pattern ... ]
+
+ 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.
+
+ 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.
+
+ To remove a previously added token from the list, use the ``unignore''
+ command. The ``unignore'' command will make Mutt-ng display headers with
+ the given pattern. For example, if you do ``ignore x-'' it is possible to
+ ``unignore x-mailer''.
+
+ ``unignore *'' will remove all tokens from the ignore list.
+
+ For example:
+
+ # 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:
+
+11. Alternative addresses
+
+ Usage: [un]alternates regexp [ regexp ... ]
+
+ 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.)
+
+ 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.
+
+ 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.
+
+ To remove a regular expression from the alternates list, use the
+ unalternates command with exactly the same regexp. Likewise, if the regexp
+ for a alternates command matches an entry on the unalternates list, that
+ unalternates entry will be removed. If the regexp for unalternates is
+ ``*'', all entries on alternates will be removed.
+
+12. Format = Flowed
+
+ 12.1. Introduction
+
+ Mutt-ng contains support for so-called format=flowed messages. In the
+ beginning of email, each message had a fixed line width, and it was enough
+ for displaying them on fixed-size terminals. But times changed, and
+ nowadays hardly anybody still uses fixed-size terminals: more people
+ nowaydays use graphical user interfaces, with dynamically resizable
+ windows. This led to the demand of a new email format that makes it
+ possible for the email client to make the email look nice in a resizable
+ window without breaking quoting levels and creating an incompatible email
+ format that can also be displayed nicely on old fixed-size terminals.
+
+ For introductory information on format=flowed messages, see
+ <http://www.joeclark.org/ffaq.html>.
+
+ 12.2. Receiving: Display Setup
+
+ When you receive emails that are marked as format=flowed messages, and is
+ formatted correctly, mutt-ng will try to reformat the message to optimally
+ fit on your terminal. If you want a fixed margin on the right side of your
+ terminal, you can set the following:
+
+ set wrapmargin = 10
+
+
+ The code above makes the line break 10 columns before the right side of
+ the terminal.
+
+ If your terminal is so wide that the lines are embarrassingly long, you
+ can also set a maximum line length:
+
+ set max_line_length = 120
+
+
+ The example above will give you lines not longer than 120 characters.
+
+ When you view at format=flowed messages, you will often see the quoting
+ hierarchy like in the following example:
+
+ >Bill, can you please send last month's progress report to Mr.
+ >Morgan? We also urgently need the cost estimation for the new
+ >production server that we want to set up before our customer's
+ >project will go live.
+
+
+ This obviously doesn't look very nice, and it makes it very hard to
+ differentiate between text and quoting character. The solution is to
+ configure mutt-ng to "stuff" the quoting:
+
+ set stuff_quoted
+
+
+ This will lead to a nicer result that is easier to read:
+
+ > Bill, can you please send last month's progress report to Mr.
+ > Morgan? We also urgently need the cost estimation for the new
+ > production server that we want to set up before our customer's
+ > project will go live.
+
+
+ 12.3. Sending
+
+ If you want mutt-ng to send emails with format=flowed set, you need to
+ explicitly set it:
+
+ set text_flowed
+
+
+ Additionally, you have to use an editor which supports writing
+ format=flowed-conforming emails. For vim, this is done by adding w to the
+ formatoptions (see :h formatoptions and :h fo-table) when writing emails.
+
+ Also note that format=flowed knows about ``space-stuffing'', that is, when
+ sending messages, some kinds of lines have to be indented with a single
+ space on the sending side. On the receiving side, the first space (if any)
+ is removed. As a consequence and in addition to the above simple setting,
+ please keep this in mind when making manual formattings within the editor.
+ Also note that mutt-ng currently violates the standard (RfC 3676) as it
+ does not space-stuff lines starting with:
+
+ o > This is not the quote character but a right angle used for other
+ reasons
+
+ o From with a trailing space.
+
+ o just a space for formatting reasons
+
+ Please make sure that you manually prepend a space to each of them.
+
+ 12.4. Additional Notes
+
+ For completeness, the delete-space variable provides the mechanism to
+ generate a DelSp=yes parameter on outgoing messages. According to the
+ standard, clients receiving a format=flowed messages should delete the
+ last space of a flowed line but still interpret the line as flowed.
+ Because flowed lines usually contain only one space at the end, this
+ parameter would make the receiving client concatenate the last word of the
+ previous with the first of the current line without a space. This makes
+ ordinary text unreadable and is intended for languages rarely using
+ spaces. So please use this setting only if you're sure what you're doing.
+
+13. Mailing lists
+
+ Usage: [un]lists regexp [ regexp ... ] Usage: [un]subscribe regexp [
+ regexp ... ]
+
+ Mutt-ng has a few nice features for using-lists. In order to take
+ advantage of them, you must specify which addresses belong to mailing
+ lists, and which mailing lists you are subscribed to. Once you have done
+ this, the list-reply function will work for all known lists. Additionally,
+ when you send a message to a subscribed list, mutt will add a
+ Mail-Followup-To header to tell other users' mail user agents not to send
+ copies of replies to your personal address. Note that the Mail-Followup-To
+ header is a non-standard extension which is not supported by all mail user
+ agents. Adding it is not bullet-proof against receiving personal CCs of
+ list messages. Also note that the generation of the Mail-Followup-To
+ header is controlled by the followup-to configuration variable.
+
+ More precisely, Mutt-ng maintains lists of patterns for the addresses of
+ known and subscribed mailing lists. Every subscribed mailing list is
+ known. To mark a mailing list as known, use the ``lists'' command. To mark
+ it as subscribed, use ``subscribe''.
+
+ 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.
+
+ Specify as much of the address as you need to to remove ambiguity. For
+ example, if you've subscribed to the Mutt-ng mailing list, you will
+ receive mail addressed to mutt-users@mutt.org. So, to tell Mutt-ng that
+ this is a mailing list, you could add ``lists mutt-users'' to your
+ initialization file. To tell mutt that you are subscribed to it, add
+ ``subscribe mutt-users'' to your initialization file instead. If you also
+ happen to get mail from someone whose address is mutt-users@example.com,
+ you could use ``lists mutt-users@mutt\\.org'' or ``subscribe
+ mutt-users@mutt\\.org'' to match only mail from the actual list.
+
+ The ``unlists'' command is used to remove a token from the list of known
+ and subscribed mailing-lists. Use ``unlists *'' to remove all tokens.
+
+ To remove a mailing list from the list of subscribed mailing lists, but
+ keep it on the list of known mailing lists, use ``unsubscribe''.
+
+14. Using Multiple spool mailboxes
+
+ Usage: mbox-hook [!]pattern mailbox
+
+ This command is used to move read messages from a specified mailbox to a
+ different mailbox automatically when you quit or change folders. pattern
+ is a regular expression specifying the mailbox to treat as a ``spool''
+ mailbox and mailbox specifies where mail should be saved when read.
+
+ Unlike some of the other hook commands, only the first matching pattern is
+ used (it is not possible to save read mail in more than a single mailbox).
+
+15. Defining mailboxes which receive mail
+
+ Usage: [un]mailboxes [!]filename [ filename ... ]
+
+ 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.
+
+ When changing folders, pressing space will cycle through folders with new
+ mail.
+
+ Pressing TAB in the directory browser will bring up a menu showing the
+ files specified by the mailboxes command, and indicate which contain new
+ messages. Mutt-ng will automatically enter this mode when invoked from the
+ command line with the -y option.
+
+ The ``unmailboxes'' command is used to remove a token from the list of
+ folders which receive mail. Use ``unmailboxes *'' to remove all tokens.
+
+ Note: new mail is detected by comparing the last modification time to the
+ last access time. Utilities like biff or frm or any other program which
+ accesses the mailbox might cause Mutt-ng to never detect new mail for that
+ mailbox if they do not properly reset the access time. Backup tools are
+ another common reason for updated access times.
+
+ Note: the filenames in the mailboxes command are resolved when the command
+ is executed, so if these names contain shortcuts (such as ``='' and
+ ``!''), any variable definition that affect these characters (like folder
+ and spoolfile) should be executed before the mailboxes command.
+
+16. User defined headers
+
+ Usage: my_hdr string unmy_hdr field [ field ... ]
+
+ The ``my_hdr'' command allows you to create your own header fields which
+ will be added to every message you send.
+
+ For example, if you would like to add an ``Organization:'' header field to
+ all of your outgoing messages, you can put the command
+
+ my_hdr Organization: A Really Big Company, Anytown, USA
+
+ in your .muttrc.
+
+ Note: space characters are not allowed between the keyword and the colon
+ (``:''). The standard for electronic mail (RFC822) says that space is
+ illegal there, so Mutt-ng enforces the rule.
+
+ If you would like to add a header field to a single message, you should
+ either set the edit-headers variable, or use the edit-headers function
+ (default: ``E'') in the send-menu so that you can edit the header of your
+ message along with the body.
+
+ 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:
+
+ unmy_hdr to cc
+
+17. Defining the order of headers when viewing messages
+
+ Usage: hdr_order header1 header2 header3
+
+ With this command, you can specify an order in which mutt will attempt to
+ present headers to you when viewing messages.
+
+ ``unhdr_order *'' will clear all previous headers from the order list,
+ thus removing the header order effects set by the system-wide startup
+ file.
+
+ hdr_order From Date: From: To: Cc: Subject:
+
+18. Specify default save filename
+
+ Usage: save-hook [!]pattern filename
+
+ This command is used to override the default filename used when saving
+ messages. filename will be used as the default filename if the message is
+ From: an address matching regexp or if you are the author and the message
+ is addressed to: something matching regexp.
+
+ See pattern-hook for information on the exact format of pattern.
+
+ Examples:
+
+ save-hook me@(turing\\.)?cs\\.hmc\\.edu$ +elkins
+ save-hook aol\\.com$ +spam
+
+ Also see the fcc-save-hook command.
+
+19. Specify default Fcc: mailbox when composing
+
+ Usage: fcc-hook [!]pattern mailbox
+
+ This command is used to save outgoing mail in a mailbox other than record.
+ Mutt-ng searches the initial list of message recipients for the first
+ matching regexp and uses mailbox as the default Fcc: mailbox. If no match
+ is found the message will be saved to record mailbox.
+
+ See pattern-hook for information on the exact format of pattern.
+
+ Example: fcc-hook [@.]aol\\.com$ +spammers
+
+ 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.
+
+20. Specify default save filename and default Fcc: mailbox at once
+
+ Usage: fcc-save-hook [!]pattern mailbox
+
+ This command is a shortcut, equivalent to doing both a fcc-hook and a
+ save-hook with its arguments.
+
+21. Change settings based upon message recipients
+
+ Usage: reply-hook [!]pattern command Usage: send-hook [!]pattern command
+ Usage: send2-hook [!]pattern command
+
+ These commands can be used to execute arbitrary configuration commands
+ based upon recipients of the message. pattern is a regular expression
+ matching the desired address. command is executed when regexp matches
+ recipients of the message.
+
+ reply-hook is matched against the message you are replying to, instead of
+ the message you are sending. send-hook is matched against all messages,
+ both new and replies. Note: reply-hooks are matched before the send-hook,
+ regardless of the order specified in the users's configuration file.
+
+ 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.
+
+ 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).
+
+ See pattern-hook for information on the exact format of pattern.
+
+ Example: send-hook mutt "set mime_forward signature=''"
+
+ 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.
+
+ Note: the send-hook's are only executed ONCE after getting the initial
+ list of recipients. Adding a recipient after replying or editing the
+ message will NOT cause any send-hook to be executed. Also note that my_hdr
+ commands which modify recipient headers, or the message's subject, don't
+ have any effect on the current message when executed from a send-hook.
+
+22. Change settings before formatting a message
+
+ Usage: message-hook [!]pattern command
+
+ This command can be used to execute arbitrary configuration commands
+ before viewing or formatting a message based upon information about the
+ message. command is executed if the pattern matches the message to be
+ displayed. When multiple matches occur, commands are executed in the order
+ they are specified in the muttrc.
+
+ See pattern-hook for information on the exact format of pattern.
+
+ Example:
+
+ message-hook ~A 'set pager=builtin'
+ message-hook '~f freshmeat-news' 'set pager="less \"+/^ subject: .*\""'
+
+23. Choosing the cryptographic key of the recipient
+
+ Usage: crypt-hook pattern keyid
+
+ When encrypting messages with PGP or OpenSSL, you may want to associate a
+ certain key with a given e-mail address automatically, either because the
+ recipient's public key can't be deduced from the destination address, or
+ because, for some reasons, you need to override the key Mutt-ng 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.
+
+24. Adding key sequences to the keyboard buffer
+
+ Usage: push string
+
+ 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.
+
+25. Executing functions
+
+ Usage: exec function [ function ... ]
+
+ This command can be used to execute any function. Functions are listed in
+ the functions. ``exec function'' is equivalent to ``push <function>''.
+
+26. Message Scoring
+
+ Usage: score pattern value Usage: unscore pattern [ pattern ... ]
+
+ In situations where you have to cope with a lot of emails, e.g. when you
+ read many different mailing lists, and take part in discussions, it is
+ always useful to have the important messages marked and the annoying
+ messages or the ones that you aren't interested in deleted. For this
+ purpose, mutt-ng features a mechanism called ``scoring''.
+
+ When you use scoring, every message has a base score of 0. You can then
+ use the score command to define patterns and a positive or negative value
+ associated with it. When a pattern matches a message, the message's score
+ will be raised or lowered by the amount of the value associated with the
+ pattern.
+
+ score "~f nion@muttng\.org" 50
+ score "~f @sco\.com" -100
+
+ If the pattern matches, it is also possible to set the score value of the
+ current message to a certain value and then stop evaluation:
+
+ score "~f santaclaus@northpole\.int" =666
+
+ What is important to note is that negative score values will be rounded up
+ to 0.
+
+ To make scoring actually useful, the score must be applied in some way.
+ That's what the score thresholds are for. Currently, there are three score
+ thresholds:
+
+ o flag threshold: when a message has a score value equal or higher than
+ the flag threshold, it will be flagged.
+
+ o read threshold: when a message has a score value equal or lower than
+ the read threshold, it will be marked as read.
+
+ o delete threshold: when a message has a score value equal or lower than
+ the delete threshold, it will be marked as deleted.
+
+ These three thresholds can be set via the variables score-threshold-flag,
+ score-threshold-read, score-threshold-delete and. By default,
+ score-threshold-read and score-threshold-delete are set to -1, which means
+ that in the default threshold configuration no message will ever get
+ marked as read or deleted.
+
+ Scoring gets especially interesting when combined with the color command
+ and the ˜n pattern:
+
+ color index black yellow "~n 10-"
+ color index red yellow "~n 100-"
+
+ The rules above mark all messages with a score between 10 and 99 with
+ black and yellow, and messages with a score greater or equal 100 with red
+ and yellow. This might be unusual to you if you're used to e.g. slrn's
+ scoring mechanism, but it is more flexible, as it visually marks different
+ scores.
+
+27. Spam detection
+
+ Usage: spam pattern format Usage: nospam pattern
+
+ Mutt-ng has generalized support for external spam-scoring filters. By
+ defining your spam patterns with the spam and nospam commands, you can
+ limit, search, and sort your mail based on its spam attributes, as
+ determined by the external filter. You also can display the spam
+ attributes in your index display using the %H selector in the index-format
+ variable. (Tip: try %?H?[%H] ? to display spam tags only when they are
+ defined for a given message.)
+
+ Your first step is to define your external filter's spam patterns using
+ the spam command. pattern should be a regular expression that matches a
+ header in a mail message. If any message in the mailbox matches this
+ regular expression, it will receive a ``spam tag'' or ``spam attribute''
+ (unless it also matches a nospam pattern -- see below.) The appearance of
+ this attribute is entirely up to you, and is governed by the format
+ parameter. format can be any static text, but it also can include
+ back-references from the pattern expression. (A regular expression
+ ``back-reference'' refers to a sub-expression contained within
+ parentheses.) %1 is replaced with the first back-reference in the regex,
+ %2 with the second, etc.
+
+ If you're using multiple spam filters, a message can have more than one
+ spam-related header. You can define spam patterns for each filter you use.
+ If a message matches two or more of these patterns, and the
+ $spam_separator variable is set to a string, then the message's spam tag
+ will consist of all the format strings joined together, with the value of
+ $spam_separator separating them.
+
+ For example, suppose I use DCC, SpamAssassin, and PureMessage. I might
+ define these spam settings:
+
+ spam "X-DCC-.*-Metrics:.*(....)=many" "90+/DCC-%1"
+ spam "X-Spam-Status: Yes" "90+/SA"
+ spam "X-PerlMX-Spam: .*Probability=([0-9]+)%" "%1/PM"
+ set spam_separator=", "
+
+ If I then received a message that DCC registered with ``many'' hits under
+ the ``Fuz2'' checksum, and that PureMessage registered with a 97%
+ probability of being spam, that message's spam tag would 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
+ supersedes the previous one. Instead of getting joined format strings,
+ you'll get only the last one to match.
+
+ The spam tag is what will be displayed in the index when you use %H in the
+ $index_format variable. It's also the string that the ˜H pattern-matching
+ expression matches against for search and limit functions. And it's what
+ sorting by spam attribute will use as a sort key.
+
+ That's a pretty complicated example, and most people's actual environments
+ will have only one spam filter. The simpler your configuration, the more
+ effective mutt can be, especially when it comes to sorting.
+
+ Generally, when you sort by spam tag, mutt will sort lexically -- that is,
+ by ordering strings alphnumerically. However, if a spam tag begins with a
+ number, mutt will sort numerically first, and lexically only when two
+ numbers are equal in value. (This is like UNIX's sort -n.) A message with
+ no spam attributes at all -- that is, one that didn't match any of your
+ spam patterns -- is sorted at lowest priority. Numbers are sorted next,
+ beginning with 0 and ranging upward. Finally, non-numeric strings are
+ sorted, with ``a'' taking 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 pattern given to nospam is exactly the same as the pattern on an
+ existing spam list entry, the effect will be to remove the entry from the
+ spam list, instead of adding an exception. Likewise, if the pattern for a
+ spam command matches an entry on the nospam list, that nospam entry will
+ be removed. If the pattern for nospam is ``*'', all entries on both lists
+ will be removed. This might be the default action if you use spam and
+ nospam in conjunction with a folder-hook.
+
+ You can have as many spam or nospam commands as you like. You can even do
+ your own primitive spam detection within mutt -- for example, if you
+ consider all mail from MAILER-DAEMON to be spam, you can use a spam
+ command like this:
+
+ spam "^From: .*MAILER-DAEMON" "999"
+
+28. Setting variables
+
+ Usage: set [no|inv]variable[=value] [ variable ... ] Usage: toggle
+ variable [variable ... ] Usage: unset variable [variable ... ] Usage:
+ reset variable [variable ... ]
+
+ This command is used to set (and unset) variables. There are four basic
+ types of variables: boolean, number, string and quadoption. boolean
+ variables can be set (true) or unset (false). number variables can be
+ assigned a positive integer value.
+
+ string variables consist of any number of printable characters. strings
+ must be enclosed in quotes if they contain spaces or tabs. You may also
+ use the ``C'' escape sequences \n and \t for newline and tab,
+ respectively.
+
+ quadoption variables are used to control whether or not to be prompted for
+ certain actions, or to specify a default action. A value of yes will cause
+ the action to be carried out automatically as if you had answered yes to
+ the question. Similarly, a value of no will cause the the action to be
+ carried out as if you had answered ``no.'' A value of ask-yes will cause a
+ prompt with a default answer of ``yes'' and ask-no will provide a default
+ answer of ``no.''
+
+ Prefixing a variable with ``no'' will unset it. Example: set noaskbcc.
+
+ For boolean variables, you may optionally prefix the variable name with
+ inv to toggle the value (on or off). This is useful when writing macros.
+ Example: set invsmart_wrap.
+
+ 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 index 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.
+
+29. Reading initialization commands from another file
+
+ Usage: source filename [ filename ... ]
+
+ 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 filename is considered
+ to be an executable program from which to read input (eg. source
+ ˜/bin/myscript|).
+
+30. Removing hooks
+
+ Usage: unhook [ * | hook-type ]
+
+ 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.
+
+31. Sharing Setups
+
+ 31.1. Character Sets
+
+ As users may run mutt-ng on different systems, the configuration must be
+ maintained because it's likely that people want to use the setup
+ everywhere they use mutt-ng. And mutt-ng tries to help where it can.
+
+ To not produce conflicts with different character sets, mutt-ng allows
+ users to specify in which character set their configuration files are
+ encoded. Please note that while reading the configuration files, this is
+ only respected after the corresponding declaration appears. It's advised
+ to put the following at the very beginning of a users muttngrc:
+
+ set config_charset = "..."
+
+ and replacing the dots with the actual character set. To avoid problems
+ while maintaining the setup, vim user's may want to use modelines as show
+ in:
+
+ # vim:fileencoding=...:
+
+ while, again, replacing the dots with the appropriate name. This tells vim
+ as which character set to read and save the file.
+
+ 31.2. Modularization
+
+ ``Modularization'' means to divide the setup into several files while
+ sorting the options or commands by topic. Especially for longer setups
+ (e.g. with many hooks), this helps maintaining it and solving trouble.
+
+ When using separation, setups may be, as a whole or in fractions, shared
+ over different systems.
+
+ 31.3. Conditional parts
+
+ When using a configuration on different systems, the user may not always
+ have influence on how mutt-ng is installed and which features it includes.
+
+ To solve this, mutt-ng contain a feature based on the ``ifdef'' patch
+ written for mutt. Its basic syntax is:
+
+ ifdef <item> <command>
+ ifndef <item> <command>
+
+ ...whereby <item> can be one of:
+
+ o a function name
+
+ o a variable name
+
+ o a menu name
+
+ o a feature name
+
+ All available functions, variables and menus are documented elsewhere in
+ this manual but ``features'' is specific to these two commands. To test
+ for one, prefix one of the following keywords with feature_:
+
+ ncurses, slang, iconv, idn, dotlock, standalone, pop, nntp, imap, ssl,
+ gnutls, sasl, sasl2, libesmtp, compressed, color, classic_pgp,
+ classic_smime, gpgme, header_cache
+
+ As an example, one can use the following in ˜/.muttngrc:
+
+ ifdef feature_imap 'source ~/.mutt-ng/setup-imap'
+ ifdef feature_pop 'source ~/.mutt-ng/setup-pop'
+ ifdef feature_nntp 'source ~/.mutt-ng/setup-nntp'
+
+ ...to only source ˜/.mutt-ng/setup-imap if IMAP support is built in, only
+ source ˜/.mutt-ng/setup-pop if POP support is built in and only source
+ ˜/.mutt-ng/setup-nntp if NNTP support is built in.
+
+ An example for testing for variable names can be used if users use
+ different revisions of mutt-ng whereby the older one may not have a
+ certain variable. To test for the availability of imap-mail-check, use:
+
+ ifdef imap_mail_check 'set imap_mail_check = 300'
+
+ Provided for completeness is the test for menu names. To set
+ pager-index-lines only if the pager menu is available, use:
+
+ ifdef pager 'set pager_index_lines = 10'
+
+ For completeness, too, the opposite of ifdef is provided: ifndef which
+ only executes the command if the test fails. For example, the following
+ two examples are equivalent:
+
+ ifdef feature_ncurses 'source ~/.mutt-ng/setup-ncurses'
+ ifndef feature_ncurses 'source ~/.mutt-ng/setup-slang'
+
+ ...and...
+
+ ifdef feature_slang 'source ~/.mutt-ng/setup-slang'
+ ifndef feature_slang 'source ~/.mutt-ng/setup-ncurses'
+
+32. Obsolete Variables
+
+ In the process of ensuring and creating more consistency, many variables
+ have been renamed and some of the old names were already removed. Please
+ see sect-obsolete for a complete list.
+
+Chapter 4. Advanced Usage
+
+ Table of Contents
+
+ 1. Regular Expressions
+
+ 2. Patterns
+
+ 2.1. Complex Patterns
+
+ 2.2. Patterns and Dates
+
+ 3. Format Strings
+
+ 3.1. Introduction
+
+ 3.2. Conditional Expansion
+
+ 3.3. Modifications and Padding
+
+ 4. Using Tags
+
+ 5. Using Hooks
+
+ 5.1. Message Matching in Hooks
+
+ 6. Using the sidebar
+
+ 7. External Address Queries
+
+ 8. Mailbox Formats
+
+ 9. Mailbox Shortcuts
+
+ 10. Handling Mailing Lists
+
+ 11. Editing threads
+
+ 11.1. Linking threads
+
+ 11.2. Breaking threads
+
+ 12. Delivery Status Notification (DSN) Support
+
+ 13. POP3 Support (OPTIONAL)
+
+ 14. IMAP Support (OPTIONAL)
+
+ 14.1. The Folder Browser
+
+ 14.2. Authentication
+
+ 15. NNTP Support (OPTIONAL)
+
+ 15.1. Again: Scoring
+
+ 16. SMTP Support (OPTIONAL)
+
+ 17. Managing multiple IMAP/POP/NNTP accounts (OPTIONAL)
+
+ 18. Start a WWW Browser on URLs (EXTERNAL)
+
+ 19. Compressed folders Support (OPTIONAL)
+
+ 19.1. Open a compressed mailbox for reading
+
+ 19.2. Write a compressed mailbox
+
+ 19.3. Append a message to a compressed mailbox
+
+ 19.4. Encrypted folders
+
+1. Regular Expressions
+
+ All string patterns in Mutt-ng including those in more complex patterns
+ must be specified using regular expressions (regexp) in the ``POSIX
+ extended'' syntax (which is more or less the syntax used by egrep and GNU
+ awk). For your convenience, we have included below a brief description of
+ this syntax.
+
+ 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 muttrc-syntax 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.
+
+ 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.
+
+ A list of characters enclosed by ``['' and ``]'' matches any single
+ character in that list; if the first character of the list is a caret
+ ``^'' then it matches any character not in the list. For example, the
+ regular expression [0123456789] matches any single digit. A range of ASCII
+ characters may be specified by giving the first and last characters,
+ separated by a hyphen ``-''. Most metacharacters lose their special
+ meaning inside lists. To include a literal ``]'' place it first in the
+ list. Similarly, to include a literal ``^'' place it anywhere but first.
+ Finally, to include a literal hyphen ``-'' place it last.
+
+ 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:
+
+ [:alnum:]
+
+ Alphanumeric characters.
+
+ [:alpha:]
+
+ Alphabetic characters.
+
+ [:blank:]
+
+ Space or tab characters.
+
+ [:cntrl:]
+
+ Control characters.
+
+ [:digit:]
+
+ Numeric characters.
+
+ [:graph:]
+
+ Characters that are both printable and visible. (A space is
+ printable, but not visible, while an ``a'' is both.)
+
+ [:lower:]
+
+ Lower-case alphabetic characters.
+
+ [:print:]
+
+ Printable characters (characters that are not control characters.)
+
+ [:punct:]
+
+ Punctuation characters (characters that are not letter, digits,
+ control characters, or space characters).
+
+ [:space:]
+
+ Space characters (such as space, tab and formfeed, to name a few).
+
+ [:upper:]
+
+ Upper-case alphabetic characters.
+
+ [:xdigit:]
+
+ Characters that are hexadecimal digits.
+
+ A character class is only valid in a regular expression inside the
+ brackets of a character list. Note that the brackets in these class names
+ are part of the symbolic names, and must be included in addition to the
+ brackets delimiting the bracket list. For example, [[:digit:]] is
+ equivalent to [0-9].
+
+ 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:
+
+ Collating Symbols
+
+ A collating symbol is a multi-character collating element enclosed
+ in ``[.'' and ``.]''. For example, if ``ch'' is a collating
+ element, then [[.ch.]] is a regexp that matches this collating
+ element, while [ch] is a regexp that matches either ``c'' or
+ ``h''.
+
+ Equivalence Classes
+
+ An equivalence class is a locale-specific name for a list of
+ characters that are equivalent. The name is enclosed in ``[='' and
+ ``=]''. For example, the name ``e'' might be used to represent all
+ of ``è'' ``é'' and ``e''. In this case, [[=e=]] is a regexp that
+ matches any of ``è'', ``é'' and ``e''.
+
+ 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.
+
+ {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
+ 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.
+
+ Note: If you compile Mutt-ng with the GNU rx 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.
+
+ \\B
+
+ 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.
+
+ \\w
+
+ Matches any word-constituent character (letter, digit, or
+ underscore).
+
+ \\W
+
+ 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.
+
+2. Patterns
+
+ Mutt-ng's pattern language provides a simple yet effective way to set up
+ rules to match messages, e.g. for operations like tagging and scoring. A
+ pattern consists of one or more sub-pattern, which can be logically
+ grouped, ORed, and negated. For a complete listing of these patterns,
+ please refer to table patterns in the Reference chapter.
+
+ It must be noted that in this table, EXPR, USER, ID and SUBJECT are
+ regular expressions. For ranges, the forms <[MAX], >>[MIN], [MIN]- and
+ -[MAX] are also possible.
+
+ 2.1. Complex Patterns
+
+ It is possible to combine several sub-patterns to a more complex pattern.
+ The most simple possibility is to logically AND several patterns by
+ stringing them together:
+
+ ~s 'SPAM' ~U
+
+ The pattern above matches all messages that contain ``SPAM'' in the
+ subject and are unread.
+
+ To logical OR patterns, simply use the | operator. This one especially
+ useful when using local groups:
+
+ ~f ("nion@muttng\.org"|"ak@muttng\.org"|"pdmef@muttng\.org")
+ (~b mutt-ng|~s Mutt-ng)
+ !~x '@synflood\.at'
+
+ The first pattern matches all messages that were sent by one of the
+ mutt-ng maintainers, while the seconds pattern matches all messages that
+ contain ``mutt-ng'' in the message body or ``Mutt-ng'' in the subject. The
+ third pattern matches all messages that do not contain ``@synflood\.at''
+ in the References: header, i.e. messages that are not an (indirect) reply
+ to one of my messages. A pattern can be logicall negated using the !
+ operator.
+
+ 2.2. Patterns and Dates
+
+ When using dates in patterns, the dates must be specified in a special
+ format, i.e. DD/MM/YYYY. If you don't specify month or year, they default
+ to the current month or year. When using date ranges, and you specify only
+ the minimum or the maximum, the specified date will be excluded, e.g.
+ 01/06/2005- matches against all messages after Juni 1st, 2005.
+
+ It is also possible to use so-called ``error margins'' when specifying
+ date ranges. You simply specify a date, and then the error margin. This
+ margin needs to contain the information whether it goes ``forth'' or
+ ``back'' in time, by using + and -. Then follows a number and a unit, i.e.
+ y for years, m for months, w for weeks and d for days. If you use the
+ special * sign, it means that the error margin goes to both ``directions''
+ in time.
+
+ ~d 01/01/2005+1y
+ ~d 18/10/2004-2w
+ ~d 28/12/2004*1d
+
+ The first pattern matches all dates between January 1st, 2005 and January
+ 1st 2006. The second pattern matches all dates between October 18th, 2004
+ and October 4th 2004 (2 weeks before 18/10/2004), while the third pattern
+ matches all dates 1 day around December 28th, 2004 (i.e. Dec 27th, 28th
+ and 29th).
+
+ Relative dates are also very important, as they make it possible to
+ specify date ranges between a fixed number of units and the current date.
+ How this works can be seen in the following example:
+
+ ~d >2w # messages older than two weeks
+ ~d <3d # messages newer than 3 days
+ ~d =1m # messages that are exactly one month old
+
+3. Format Strings
+
+ 3.1. Introduction
+
+ The so called Format Strings offer great flexibility when configuring
+ mutt-ng. In short, they describe what items to print out how in menus and
+ status messages.
+
+ Basically, they work as this: for different menus and bars, there's a
+ variable specifying the layout. For every item available, there is a so
+ called expando.
+
+ For example, when running mutt-ng on different machines or different
+ versions for testing purposes, it may be interesting to have the following
+ information always printed on screen when one is in the index:
+
+ o the current hostname
+
+ o the current mutt-ng version number
+
+ The setting for the status bar of the index is controlled via the
+ status-format variable. For the hostname and version string, there's an
+ expando for $status_format: %h expands to the hostname and %v to the
+ version string. When just configuring:
+
+ set status_format = "%v on %h: ..."
+
+ mutt-ng will replace the sequence %v with the version string and %h with
+ the host's name. When you are, for example, running mutt-ng version 1.5.9i
+ on host mailhost, you'll see the following when you're in the index:
+
+ Mutt-ng 1.5.9i on mailhost: ...
+
+ In the index, there're more useful information one could want to see:
+
+ o which mailbox is open
+
+ o how man new, flagged or postponed messages
+
+ o ...
+
+ To include the mailbox' name is as easy as:
+
+ set status_format = "%v on %h: %B: ...
+
+ When the currently opened mailbox is Inbox, this will be expanded to:
+
+ Mutt-ng 1.5.9i on mailhost: Inbox: ...
+
+ For the number of certain types of messages, one more feature of the
+ format strings is extremely useful. If there aren't messages of a certain
+ type, it may not be desired to print just that there aren't any but
+ instead only print something if there are any.
+
+ 3.2. Conditional Expansion
+
+ To only print the number of messages if there are new messages in the
+ current mailbox, further extend $status_format to:
+
+ set status_format = "%v on %h: %B %?n?%n new? ...
+
+ This feature is called nonzero-printing and works as this: some expandos
+ may be optionally printed nonzero, i.e. a portion of the format string is
+ only evaluated if the value of the expando is different from zero. The
+ basic syntax is:
+
+ %?<item>?<string if nonzero>?
+
+ which tells mutt-ng to only look at <string if nonzero> if the value of
+ the %<item%gt; expando is different from zero. In our example, we used n
+ as the expando to check for and %n new as the optional nonzero string.
+
+ But this is not all: this feature only offers one alternative: ``print
+ something if not zero.'' Mutt-ng does, as you might guess, also provide a
+ logically complete version: ``if zero, print something and else print
+ something else.'' This is achieved by the following syntax for those
+ expandos which may be printed nonzero:
+
+ %?<item>?<string if nonzero>&<string if zero>?
+
+ Using this we can make mutt-ng to do the following:
+
+ o make it print ``n new messages'' whereby n is the count but only if
+ there new ones
+
+ o and make it print ``no new messages'' if there aren't any
+
+ The corresponding configuration is:
+
+ set status_format = "%v on %h: %B: %?n?%n new messages&no new messages? ...
+
+ This doubles the use of the ``new messages'' string because it'll get
+ always printed. Thus, it can be shortened to:
+
+ set status_format = "%v on %h: %B: %?n?%n&no? new messages ...
+
+ As you might see from this rather simple example, one can create very
+ complex but fancy status messages. Please see the reference chapter for
+ expandos and those which may be printed nonzero.
+
+ 3.3. Modifications and Padding
+
+ Besides the information given so far, there're even more features of
+ format strings:
+
+ o When specifying %_<item> instead of just %<item>, mutt-ng will convert
+ all characters in the expansion of <item> to lowercase.
+
+ o When specifying %:<item> instead of just %<item>, mutt-ng will convert
+ all dots in the expansion of <item> to underscores (_).
+
+ Also, there's a feature called Padding supplied by the following two
+ expandos: %|X and %>X.
+
+ %|X
+
+ When this occurs, mutt-ng will fill the rest of the line with the
+ character X. In our example, filling the rest of the line with
+ dashes is done by setting:
+
+ set status_format = "%v on %h: %B: %?n?%n&no? new messages %|-"
+
+ %>X
+
+ Since the previous expando stops at the end of line, there must be
+ a way to fill the gap between two items via the %>X expando: it
+ puts as many characters X in between two items so that the rest of
+ the line will be right-justified. For example, to not put the
+ version string and hostname of our example on the left but on the
+ right and fill the gap with spaces, one might use (note the space
+ after %>):
+
+ set status_format = "%B: %?n?%n&no? new messages %> (%v on %h)"
+
+4. Using Tags
+
+ Sometimes it is desirable to perform an operation on a group of messages
+ all at once rather than one at a time. An example might be to save
+ messages to a mailing list to a separate folder, or to delete all messages
+ with a given subject. To tag all messages matching a pattern, use the
+ tag-pattern function, which is bound to ``shift-T'' by default. Or you can
+ select individual messages by hand using the ``tag-message'' function,
+ which is bound to ``t'' by default. See patterns for Mutt-ng's pattern
+ matching syntax.
+
+ Once you have tagged the desired messages, you can use the ``tag-prefix''
+ operator, which is the ``;'' (semicolon) key by default. When the
+ ``tag-prefix'' operator is used, the next operation will be applied to all
+ tagged messages if that operation can be used in that manner. If the
+ auto-tag variable is set, the next operation applies to the tagged
+ messages automatically, without requiring the ``tag-prefix''.
+
+ In macro or push commands, you can use the ``tag-prefix-cond'' operator.
+ If there are no tagged messages, mutt will "eat" the rest of the macro to
+ abort it's execution. Mutt-ng will stop "eating" the macro when it
+ encounters the ``end-cond'' operator; after this operator the rest of the
+ macro will be executed as normal.
+
+5. Using Hooks
+
+ A hook is a concept borrowed from the EMACS editor which allows you to
+ execute arbitrary commands before performing some operation. For example,
+ you may wish to tailor your configuration based upon which mailbox you are
+ reading, or to whom you are sending mail. In the Mutt-ng world, a hook
+ consists of a regexp or patterns along with a configuration
+ option/command. See
+
+ o folder-hook
+
+ o send-hook
+
+ o message-hook
+
+ o save-hook
+
+ o mbox-hook
+
+ o fcc-hook
+
+ o fcc-save-hook
+
+ for specific details on each type of hook available.
+
+ Note: if a hook changes configuration settings, these changes remain
+ effective until the end of the current mutt session. As this is generally
+ not desired, a default hook needs to be added before all other hooks to
+ restore configuration defaults. Here is an example with send-hook and the
+ my_hdr directive:
+
+ send-hook . 'unmy_hdr From:'
+ send-hook ~C'^b@b\.b$' my_hdr from: c@c.c
+
+ 5.1. Message Matching in Hooks
+
+ Hooks that act upon messages (send-hook, save-hook, fcc-hook,
+ message-hook) are evaluated in a slightly different manner. For the other
+ types of hooks, a regexp is sufficient. But in dealing with messages a
+ finer grain of control is needed for matching since for different purposes
+ you want to match different criteria.
+
+ Mutt-ng allows the use of the patterns language for matching messages in
+ hook commands. This works in exactly the same way as it would when
+ limiting or searching 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.).
+
+ For example, if you wanted to set your return address based upon sending
+ mail to a specific address, you could do something like:
+
+ send-hook '~t ^me@cs\.hmc\.edu$' 'my_hdr From: Mutt-ng User <user@host>'
+
+ which would execute the given command when sending mail to me@cs.hmc.edu.
+
+ However, it is not required that you write the pattern to match using the
+ full searching language. You can still specify a simple regular expression
+ like the other hooks, in which case Mutt-ng will translate your pattern
+ into the full language, using the translation specified by the
+ default-hook variable. The pattern is translated at the time the hook is
+ declared, so the value of default-hook that is in effect at that time will
+ be used.
+
+6. Using the sidebar
+
+ The sidebar, a feature specific to Mutt-ng, allows you to use a mailbox
+ listing which looks very similar to the ones you probably know from GUI
+ mail clients. The sidebar lists all specified mailboxes, shows the number
+ in each and highlights the ones with new email Use the following
+ configuration commands:
+
+ set sidebar_visible="yes"
+ set sidebar_width=25
+
+ If you want to specify the mailboxes you can do so with:
+
+ set mbox='=INBOX'
+ mailboxes INBOX \
+ MBOX1 \
+ MBOX2 \
+ ...
+
+ You can also specify the colors for mailboxes with new mails by using:
+
+ color sidebar_new red black
+ color sidebar white black
+
+ The available functions are:
+
+ 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
+
+ Reasonable key bindings look e.g. like this:
+
+ 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
+
+ macro index B ':toggle sidebar_visible^M'
+ macro pager B ':toggle sidebar_visible^M'
+
+ 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'.
+
+7. External Address Queries
+
+ Mutt-ng supports connecting to external directory databases such as LDAP,
+ ph/qi, bbdb, or NIS through a wrapper script which connects to mutt using
+ a simple interface. Using the query-command variable, you specify the
+ wrapper command to use. For example:
+
+ set query_command = "mutt_ldap_query.pl '%s'"
+
+ 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:
+
+ 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.
+
+8. Mailbox Formats
+
+ Mutt-ng supports reading and writing of four different mailbox formats:
+ mbox, MMDF, MH and Maildir. The mailbox type is autodetected, so there is
+ no need to use a flag for different mailbox types. When creating new
+ mailboxes, Mutt-ng uses the default specified with the mbox-type variable.
+
+ mbox. This is the most widely used mailbox format for UNIX. All messages
+ are stored in a single file. Each message has a line of the form:
+
+ From me@cs.hmc.edu Fri, 11 Apr 1997 11:44:56 PST
+
+ to denote the start of a new message (this is often referred to as the
+ ``From_'' line).
+
+ MMDF. This is a variant of the mbox format. Each message is surrounded by
+ lines containing ``^A^A^A^A'' (four control-A's).
+
+ MH. A radical departure from mbox and MMDF, a mailbox consists of a
+ directory and each message is stored in a separate file. The filename
+ indicates the message number (however, this is may not correspond to the
+ message number Mutt-ng displays). Deleted messages are renamed with a
+ comma (,) prepended to the filename. Note: Mutt detects this type of
+ mailbox by looking for either .mh_sequences or .xmhcache (needed to
+ distinguish normal directories from MH mailboxes).
+
+ Maildir. The newest of the mailbox formats, used by the Qmail MTA (a
+ replacement for sendmail). Similar to MH, except that it adds three
+ subdirectories of the mailbox: tmp, new and cur. Filenames for the
+ messages are chosen in such a way they are unique, even when two programs
+ are writing the mailbox over NFS, which means that no file locking is
+ needed.
+
+9. Mailbox Shortcuts
+
+ There are a number of built in shortcuts which refer to specific
+ mailboxes. These shortcuts can be used anywhere you are prompted for a
+ file or mailbox path.
+
+ o ! -- refers to your spoolfile (incoming) mailbox
+
+ o > -- refers to your mbox file
+
+ o < -- refers to your record file
+
+ o ^ -- refers to the current mailbox
+
+ o - or !! -- refers to the file you've last visited
+
+ o ˜ -- refers to your home directory
+
+ o = or + -- refers to your folder directory
+
+ o @alias -- refers to the save-hook as determined by the address of the
+ alias
+
+10. Handling Mailing Lists
+
+ Mutt-ng has a few configuration options that make dealing with large
+ amounts of mail easier. The first thing you must do is to let Mutt know
+ what addresses you consider to be mailing lists (technically this does not
+ have to be a mailing list, but that is what it is most often used for),
+ and what lists you are subscribed to. This is accomplished through the use
+ of the lists commands in your muttrc.
+
+ Now that Mutt-ng knows what your mailing lists are, it can do several
+ things, the first of which is the ability to show the name of a list
+ through which you received a message (i.e., of a subscribed list) in the
+ index menu display. This is useful to distinguish between personal and
+ list mail in the same mailbox. In the index-format variable, the escape
+ ``%L'' will return the string ``To <list>'' when ``list'' appears in the
+ ``To'' field, and ``Cc <list>'' when it appears in the ``Cc'' field
+ (otherwise it returns the name of the author).
+
+ Often times the ``To'' and ``Cc'' fields in mailing list messages tend to
+ get quite large. Most people do not bother to remove the author of the
+ message they are reply to from the list, resulting in two or more copies
+ being sent to that person. The ``list-reply'' function, which by default
+ is bound to ``L'' in the index menu and pager, helps reduce the clutter by
+ only replying to the known mailing list addresses instead of all
+ recipients (except as specified by Mail-Followup-To, see below).
+
+ Mutt-ng also supports the Mail-Followup-To header. When you send a message
+ to a list of recipients which includes one or several subscribed mailing
+ lists, and if the followup-to option is set, mutt will generate a
+ Mail-Followup-To header which contains all the recipients to whom you send
+ this message, but not your address. This indicates that group-replies or
+ list-replies (also known as ``followups'') to this message should only be
+ sent to the original recipients of the message, and not separately to you
+ - you'll receive your copy through one of the mailing lists you are
+ subscribed to.
+
+ Conversely, when group-replying or list-replying to a message which has a
+ Mail-Followup-To header, mutt will respect this header if the
+ honor-followup-to configuration variable is set. Using list-reply will in
+ this case also make sure that the reply goes to the mailing list, even if
+ it's not specified in the list of recipients in the Mail-Followup-To.
+
+ Note that, when header editing is enabled, you can create a
+ Mail-Followup-To header manually. Mutt-ng will only auto-generate this
+ header if it doesn't exist when you send the message.
+
+ The other method some mailing list admins use is to generate a
+ ``Reply-To'' field which points back to the mailing list address rather
+ than the author of the message. This can create problems when trying to
+ reply directly to the author in private, since most mail clients will
+ automatically reply to the address given in the ``Reply-To'' field.
+ Mutt-ng uses the reply-to variable to help decide which address to use. If
+ set to ask-yes or ask-no, you will be prompted as to whether or not you
+ would like to use the address given in the ``Reply-To'' field, or reply
+ directly to the address given in the ``From'' field. When set to yes, the
+ ``Reply-To'' field will be used when present.
+
+ The ``X-Label:'' header field can be used to further identify mailing
+ lists or list subject matter (or just to annotate messages individually).
+ The index-format variable's ``%y'' and ``%Y'' escapes can be used to
+ expand ``X-Label:'' fields in the index, and Mutt-ng's pattern-matcher can
+ match regular expressions to ``X-Label:'' fields with the ``˜y''
+ selector. ``X-Label:'' is not a standard message header field, but it can
+ easily be inserted by procmail and other mail filtering agents.
+
+ Lastly, Mutt-ng has the ability to sort the mailbox into threads. A thread
+ is a group of messages which all relate to the same subject. This is
+ usually organized into a tree-like structure where a message and all of
+ its replies are represented graphically. If you've ever used a threaded
+ news client, this is the same concept. It makes dealing with large volume
+ mailing lists easier because you can easily delete uninteresting threads
+ and quickly find topics of value.
+
+11. Editing threads
+
+ Mutt-ng has the ability to dynamically restructure threads that are broken
+ either by misconfigured software or bad behavior from some correspondents.
+ This allows to clean your mailboxes formats) from these annoyances which
+ make it hard to follow a discussion.
+
+ 11.1. Linking threads
+
+ Some mailers tend to "forget" to correctly set the "In-Reply-To:" and
+ "References:" headers when replying to a message. This results in broken
+ discussions because Mutt-ng has not enough information to guess the
+ correct threading. You can fix this by tagging the reply, then moving to
+ the parent message and using the ``link-threads'' function (bound to & by
+ default). The reply will then be connected to this "parent" message.
+
+ You can also connect multiple children at once, tagging them and using the
+ tag-prefix command (';') or the auto_tag option.
+
+ 11.2. Breaking threads
+
+ On mailing lists, some people are in the bad habit of starting a new
+ discussion by hitting "reply" to any message from the list and changing
+ the subject to a totally unrelated one. You can fix such threads by using
+ the ``break-thread'' function (bound by default to #), which will turn the
+ subthread starting from the current message into a whole different thread.
+
+12. Delivery Status Notification (DSN) Support
+
+ RFC1894 defines a set of MIME content types for relaying information about
+ the status of electronic mail messages. These can be thought of as
+ ``return receipts.''
+
+ Users can make use of it in one of the following two ways:
+
+ o Berkeley sendmail 8.8.x currently has some command line options in
+ which the mail client can make requests as to what type of status
+ messages should be returned.
+
+ o The SMTP support via libESMTP supports it, too.
+
+ To support this, there are two variables:
+
+ o dsn-notify is used to request receipts for different results (such as
+ failed message, message delivered, etc.).
+
+ o dsn-return requests how much of your message should be returned with
+ the receipt (headers or full message).
+
+ Please see the reference chapter for possible values.
+
+13. POP3 Support (OPTIONAL)
+
+ If Mutt-ng was compiled with POP3 support (by running the configure script
+ with the --enable-pop flag), it has the ability to work with mailboxes
+ located on a remote POP3 server and fetch mail for local browsing.
+
+ You can access the remote POP3 mailbox by selecting the folder
+ pop://popserver/.
+
+ You can select an alternative port by specifying it with the server, i.e.:
+ pop://popserver:port/.
+
+ You can also specify different username for each folder, i.e.:
+ pop://username@popserver[:port]/.
+
+ Polling for new mail is more expensive over POP3 than locally. For this
+ reason the frequency at which Mutt-ng will check for mail remotely can be
+ controlled by the pop-mail-check variable, which defaults to every 60
+ seconds.
+
+ If Mutt-ng was compiled with SSL support (by running the configure script
+ with the --with-ssl flag), connections to POP3 servers can be encrypted.
+ This naturally requires that the server supports SSL encrypted
+ connections. To access a folder with POP3/SSL, you should use pops:
+ prefix, ie: pops://[username@]popserver[:port]/.
+
+ Another way to access your POP3 mail is the fetch-mail function (default:
+ G). It allows to connect to pop-host, fetch all your new mail and place it
+ in the local spoolfile. After this point, Mutt-ng runs exactly as if the
+ mail had always been local.
+
+ Note: If you only need to fetch all messages to local mailbox you should
+ consider using a specialized program, such as fetchmail
+
+14. IMAP Support (OPTIONAL)
+
+ If Mutt-ng was compiled with IMAP support (by running the configure script
+ with the --enable-imap flag), it has the ability to work with folders
+ located on a remote IMAP server.
+
+ 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, i.e.:
+ imap://imapserver:port/INBOX.
+
+ You can also specify different username for each folder, i.e.:
+ imap://username@imapserver[:port]/INBOX.
+
+ If Mutt-ng was compiled with SSL support (by running the configure script
+ with the --with-ssl flag), connections to IMAP servers can be encrypted.
+ This naturally requires that the server supports SSL encrypted
+ connections. To access a folder with IMAP/SSL, you should use
+ imaps://[username@]imapserver[:port]/path/to/folder as your folder path.
+
+ Pine-compatible notation is also supported, i.e.
+ {[username@]imapserver[:port][/ssl]}path/to/folder
+
+ Note that not all servers use / as the hierarchy separator. Mutt-ng 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
+ toggle-subscribed 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 imap-mail-check and timeout variables.
+
+ 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.
+
+ 14.1. The Folder Browser
+
+ 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 Instead of file permissions, mutt displays the string "IMAP", possibly
+ followed by the symbol "+", indicating that the entry contains both
+ messages and subfolders. On Cyrus-like servers folders will often
+ contain both messages and subfolders.
+
+ 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).
+
+ 14.2. Authentication
+
+ Mutt-ng supports four authentication methods with IMAP servers: SASL,
+ GSSAPI, CRAM-MD5, and LOGIN (there is a patch by Grant Edwards to add NTLM
+ authentication for you poor exchange users out there, but it has yet to be
+ integrated into the main tree). There is also support for the
+ pseudo-protocol ANONYMOUS, which allows you to log in to a public IMAP
+ server without having an account. To use ANONYMOUS, simply make your
+ username blank or "anonymous".
+
+ 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 --with-sasl
+ flag.
+
+ Mutt-ng will try whichever methods are compiled in and available on the
+ server, in the following order: SASL, ANONYMOUS, GSSAPI, CRAM-MD5, LOGIN.
+
+ 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 (i.e. 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).
+
+15. NNTP Support (OPTIONAL)
+
+ If compiled with ``--enable-nntp'' option, Mutt-ng can read news from a
+ newsserver via NNTP. You can open a newsgroup with the
+ ``change-newsgroup'' function from the index/pager which is by default
+ bound to i.
+
+ The Default newsserver can be obtained from the $NNTPSERVER environment
+ variable. Like other news readers, info about subscribed newsgroups is
+ saved in a file as specified by the nntp-newsrc variable. Article headers
+ are cached and can be loaded from a file when a newsgroup is entered
+ instead loading from newsserver; currently, this caching mechanism still
+ is different from the header caching for maildir/IMAP.
+
+ 15.1. Again: Scoring
+
+ Especially for Usenet, people often ask for advanced filtering and scoring
+ functionality. Of course, mutt-ng has scoring and allows a killfile, too.
+ How to use a killfile has been discussed in score-command.
+
+ What has not been discusses in detail is mutt-ng's built-in realname
+ filter. For may newsreaders including those for ``advanced users'' like
+ slrn or tin, there are frequent request for such functionality. The
+ solutions offered often are complicated regular expressions.
+
+ In mutt-ng this is as easy as
+
+ score ~* =42
+
+
+ This tells mutt-ng to apply a score of 42 to all messages whose sender
+ specified a valid realname and a valid email address. Using
+
+ score !~* =42
+
+
+ on the contrary applies a score of 42 to all messages not matching those
+ criteria which are very strict:
+
+ o Email addresses must be valid according to RFC 2822, see
+ <ftp://ftp.rfc-editor.org/in-notes/rfc2822.txt>
+
+ o the name must consist of at least 2 fields whereby a field must not
+ end in a dot. This means that ``Joe User'' and ``Joe A. User'' are
+ valid while ``J. User'' and ``J. A. User'' aren't.
+
+ o it's assumed that users are interested in reading their own mail and
+ mail from people who they have defined an alias for so that those 2
+ groups of messages are excluded from the strict rules.
+
+16. SMTP Support (OPTIONAL)
+
+ Mutt-ng can be built using a library called ``libESMTP'' which provides
+ SMTP functionality. When configure was called with --with-libesmtp or the
+ output muttng -v contains +USE_LIBESMTP, this will be or is the case
+ already. The SMTP support includes support for Delivery Status
+ Notification (see dsn section) as well as handling the 8BITMIME flag
+ controlled via use-8bitmime.
+
+ To enable sending mail directly via SMTP without an MTA such as Postfix or
+ SSMTP and the like, simply set the smtp-host variable pointing to your
+ SMTP server.
+
+ Authentication mechanisms are available via the smtp-user and smtp-pass
+ variables.
+
+ Transport Encryption via the StartTLS command is also available. For this
+ to work, first of all Mutt-ng must be built with SSL or GNUTLS. Secondly,
+ the smtp-use-tls variable must be either set to ``enabled'' or
+ ``required.'' In both cases, StartTLS will be used if the server supports
+ it: for the second case, the connection will fail if it doesn't while
+ switching back to unencrypted communication for the first one.
+
+ Some mail providers require user's to set a particular envelope sender,
+ i.e. they allow for only one value which may not be what the user wants to
+ send as the From: header. In this case, the variable smtp-envelope may be
+ used to set the envelope different from the From: header.
+
+17. Managing multiple IMAP/POP/NNTP accounts (OPTIONAL)
+
+ 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"'
+
+18. Start a WWW Browser on URLs (EXTERNAL)
+
+ If a message contains URLs (unified resource locator = address in the WWW
+ space like http://www.mutt.org/), it is efficient to get a menu with all
+ the URLs and start a WWW browser on one of them. This functionality is
+ provided by the external urlview program which can be retrieved at
+ ftp://ftp.mutt.org/mutt/contrib/ and the configuration commands:
+
+ macro index \cb |urlview\n
+ macro pager \cb |urlview\n
+
+19. Compressed folders Support (OPTIONAL)
+
+ If Mutt-ng was compiled with compressed folders support (by running the
+ configure script with the --enable-compressed flag), Mutt can open folders
+ stored in an arbitrary format, provided that the user has a script to
+ convert from/to this format to one of the accepted.
+
+ The most common use is to open compressed archived folders e.g. with gzip.
+
+ 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.
+
+ 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.
+
+ For example:
+
+ open-hook \\.gz$ "gzip -cd %f > %t"
+ close-hook \\.gz$ "gzip -c %t > %f"
+ append-hook \\.gz$ "gzip -c %t >> %f"
+
+ 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.
+
+ Note that Mutt-ng will only try to use hooks if the file is not in one of
+ the accepted formats. In particular, if the file is empty, mutt supposes
+ it is not compressed. This is important because it allows the use of
+ programs that do not have well defined extensions. Just use "." as a
+ regexp. But this may be surprising if your compressing script produces
+ empty files. In this situation, unset save-empty, so that the compressed
+ file will be removed if you delete all of the messages.
+
+ 19.1. Open a compressed mailbox for reading
+
+ Usage: open-hook regexp "command"
+
+ The command is the command that can be used for opening the folders whose
+ names match regexp.
+
+ The command string is the printf-like format string, and it should accept
+ two parameters: %f, which is replaced with the (compressed) folder name,
+ and %t which is replaced with the name of the temporary folder to which to
+ write.
+
+ %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.
+
+ The command should not remove the original compressed file. The command
+ should return non-zero exit status if it fails, so mutt knows something's
+ wrong.
+
+ Example:
+
+ open-hook \\.gz$ "gzip -cd %f > %t"
+
+ If the command is empty, this operation is disabled for this file type.
+
+ 19.2. Write a compressed mailbox
+
+ Usage: close-hook regexp "command"
+
+ This is used to close the folder that was open with the open-hook command
+ after some changes were made to it.
+
+ The command string is the command that can be used for closing the folders
+ whose names match regexp. It has the same format as in the open-hook
+ command. Temporary folder in this case is the folder previously produced
+ by the <open-hook command.
+
+ The command should not remove the decompressed file. The command should
+ return non-zero exit status if it fails, so mutt knows something's wrong.
+
+ Example:
+
+ close-hook \\.gz$ "gzip -c %t > %f"
+
+ If the command is empty, this operation is disabled for this file type,
+ and the file can only be open in the readonly mode.
+
+ close-hook is not called when you exit from the folder if the folder was
+ not changed.
+
+ 19.3. Append a message to a compressed mailbox
+
+ Usage: append-hook regexp "command"
+
+ This command is used for saving to an existing compressed folder. The
+ command is the command that can be used for appending to the folders whose
+ names match regexp. It has the same format as in the open-hook command.
+ The temporary folder in this case contains the messages that are being
+ appended.
+
+ The command should not remove the decompressed file. The command should
+ return non-zero exit status if it fails, so mutt knows something's wrong.
+
+ Example:
+
+ append-hook \\.gz$ "gzip -c %t >> %f"
+
+ 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).
+
+ 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.
+
+ If the command is empty, this operation is disabled for this file type. In
+ this case, the folder will be open and closed again (using open-hook and
+ close-hookrespectively) each time you will add to it.
+
+ 19.4. Encrypted folders
+
+ 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:
+
+ open-hook \\.pgp$ "pgp -f < %f > %t"
+ close-hook \\.pgp$ "pgp -fe YourPgpUserIdOrKeyId < %t > %f"
+
+ Please note, that PGP does not support appending to an encrypted folder,
+ so there is no append-hook defined.
+
+ Note: 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.
+
+Chapter 5. Mutt-ng's MIME Support
+
+ Table of Contents
+
+ 1. Using MIME in Mutt
+
+ 1.1. Viewing MIME messages in the pager
+
+ 1.2. The Attachment Menu
+
+ 1.3. The Compose Menu
+
+ 2. MIME Type configuration with mime.types
+
+ 3. MIME Viewer configuration with mailcap
+
+ 3.1. The Basics of the mailcap file
+
+ 3.2. Secure use of mailcap
+
+ 3.3. Advanced mailcap Usage
+
+ 3.4. Example mailcap files
+
+ 4. MIME Autoview
+
+ 5. MIME Multipart/Alternative
+
+ 6. MIME Lookup
+
+ Quite a bit of effort has been made to make Mutt-ng the premier text-mode
+ MIME MUA. Every effort has been made to provide the functionality that the
+ discerning MIME user requires, and the conformance to the standards
+ wherever possible. When configuring Mutt-ng for MIME, there are two extra
+ types of configuration files which Mutt-ng uses. One is the mime.types
+ file, which contains the mapping of file extensions to IANA MIME types.
+ The other is the mailcap file, which specifies the external commands to
+ use for handling specific MIME types.
+
+1. Using MIME in Mutt
+
+ There are three areas/menus in Mutt-ng which deal with MIME, they are the
+ pager (while viewing a message), the attachment menu and the compose menu.
+
+ 1.1. Viewing MIME messages in the pager
+
+ When you select a message from the index and view it in the pager, Mutt
+ decodes the message to a text representation. Mutt-ng internally supports
+ a number of MIME types, including text/plain, text/enriched,
+ message/rfc822, and message/news. In addition, the export controlled
+ version of Mutt-ng recognizes a variety of PGP MIME types, including
+ PGP/MIME and application/pgp.
+
+ Mutt-ng will denote attachments with a couple lines describing them. These
+ lines are of the form:
+
+ [-- Attachment #1: Description --]
+ [-- Type: text/plain, Encoding: 7bit, Size: 10000 --]
+
+ Where the Description is the description or filename given for the
+ attachment, and the Encoding is one of
+ 7bit/8bit/quoted-printable/base64/binary.
+
+ If Mutt-ng cannot deal with a MIME type, it will display a message like:
+
+ [-- image/gif is unsupported (use 'v' to view this part) --]
+
+ 1.2. The Attachment Menu
+
+ The default binding for view-attachments is `v', which displays the
+ attachment menu for a message. The attachment menu displays a list of the
+ attachments in a message. From the attachment menu, you can save, print,
+ pipe, delete, and view attachments. You can apply these operations to a
+ group of attachments at once, by tagging the attachments and by using the
+ ``tag-prefix'' operator. You can also reply to the current message from
+ this menu, and only the current attachment (or the attachments tagged)
+ will be quoted in your reply. You can view attachments as text, or view
+ them using the mailcap viewer definition.
+
+ Finally, you can apply the usual message-related functions (like
+ resend-message, and the reply and forward functions) to attachments of
+ type message/rfc822.
+
+ See the help on the attachment menu for more information.
+
+ 1.3. The Compose Menu
+
+ 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 <no description>
+ 2 [applica/x-gunzip, base64, 422K] ~/src/mutt-0.85.tar.gz <no description>
+
+ The '-' denotes that Mutt-ng will delete the file after sending (or
+ postponing, or canceling) the message. It can be toggled with the
+ toggle-unlink command (default: u). The next field is the MIME
+ content-type, and can be changed with the edit-type command (default: ^T).
+ The next field is the encoding for the attachment, which allows a binary
+ message to be encoded for transmission on 7bit links. It can be changed
+ with the edit-encoding command (default: ^E). The next field is the size
+ of the attachment, rounded to kilobytes or megabytes. The next field is
+ the filename, which can be changed with the rename-file command (default:
+ R). The final field is the description of the attachment, and can be
+ changed with the edit-description command (default: d).
+
+2. MIME Type configuration with mime.types
+
+ When you add an attachment to your mail message, Mutt-ng searches your
+ personal mime.types file at ${HOME}/.mime.types, and then the system
+ mime.types file at /usr/local/share/mutt/mime.types or /etc/mime.types
+
+ 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-ng distribution, and should
+ contain most of the MIME types you are likely to use.
+
+ If Mutt-ng can not determine the mime type by the extension of the file
+ you attach, it will look at the file. If the file is free of binary
+ information, Mutt-ng will assume that the file is plain text, and mark it
+ as text/plain. If the file contains binary information, then Mutt-ng will
+ mark it as application/octet-stream. You can change the MIME type that
+ Mutt-ng assigns to an attachment by using the edit-type command from the
+ compose menu (default: ^T). The MIME type is actually a major mime type
+ followed by the sub-type, separated by a '/'. 6 major types: application,
+ text, image, video, audio, and model have been approved after various
+ internet discussions. Mutt-ng recognises all of these if the appropriate
+ entry is found in the mime.types file. It also recognises other major mime
+ types, such as the chemical type that is widely used in the molecular
+ modelling community to pass molecular data in various forms to various
+ molecular viewers. Non-recognised mime types should only be used if the
+ recipient of the message is likely to be expecting such attachments.
+
+3. MIME Viewer configuration with mailcap
+
+ Mutt-ng supports RFC 1524 MIME Configuration, in particular the Unix
+ specific format specified in Appendix A of RFC 1524. This file format is
+ commonly referred to as the mailcap format. Many MIME compliant programs
+ utilize the mailcap format, allowing you to specify handling for all MIME
+ types in one place for all programs. Programs known to use this format
+ include Netscape, XMosaic, lynx and metamail.
+
+ In order to handle various MIME types that Mutt-ng can not handle
+ internally, Mutt-ng parses a series of external configuration files to
+ find an external handler. The default search string for these files is a
+ colon delimited list set to
+
+ ${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.
+
+ 3.1. The Basics of the mailcap file
+
+ 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
+ behavior by using %s as a parameter to your view command. This will cause
+ Mutt-ng to save the body of the MIME message to a temporary file, and then
+ call the view command with the %s replaced by the name of the temporary
+ file. In both cases, Mutt-ng will turn over the terminal to the view
+ program until the program quits, at which time Mutt will remove the
+ temporary file if it exists.
+
+ 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. Note: Some older versions of lynx contain a bug where
+ they will check the mailcap file for a viewer for text/html. They will
+ find the line which calls lynx, and run it. This causes lynx to
+ continuously spawn itself to view the object.
+
+ 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.
+
+ 3.2. Secure use of mailcap
+
+ The interpretation of shell meta-characters embedded in MIME parameters
+ can lead to security problems in general. Mutt-ng tries to quote
+ parameters in expansion of %s syntaxes properly, and avoids risky
+ characters by substituting them, see the mailcap-sanitize variable.
+
+ 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:
+
+ Keep the %-expandos away from shell quoting. Don't quote them with single
+ or double quotes. Mutt-ng does this for you, the right way, as should any
+ other program which interprets mailcap. Don't put them into backtick
+ expansions. Be highly careful with eval statements, and avoid them if
+ possible at all. Trying to fix broken behaviour with quotes introduces new
+ leaks - there is no alternative to correct quoting in the first place.
+
+ 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
+
+ 3.3. Advanced mailcap Usage
+
+ 3.3.1. Optional Fields
+
+ In addition to the required content-type and view command fields, you can
+ add semi-colon ';' separated fields to set flags and other options.
+ Mutt-ng recognizes the following optional fields:
+
+ copiousoutput
+
+ This flag tells Mutt-ng that the command passes possibly large
+ amounts of text on stdout. This causes Mutt-ng to invoke a pager
+ (either the internal pager or the external pager defined by the
+ pager variable) on the output of the view command. Without this
+ flag, Mutt-ng assumes that the command is interactive. One could
+ use this to replace the pipe to more in the lynx -dump example in
+ the Basic section:
+
+ text/html; lynx -dump %s ; copiousoutput
+
+ This will cause lynx to format the text/html output as text/plain
+ and Mutt-ng will use your standard pager to display the results.
+
+ needsterminal
+
+ Mutt-ng uses this flag when viewing attachments with auto-view, in
+ order to decide whether it should honor the setting of the
+ wait-key variable or not. When an attachment is viewed using an
+ interactive program, and the corresponding mailcap entry has a
+ needsterminal flag, Mutt-ng will use wait-key and the exit 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.
+
+ compose=<command>
+
+ This flag specifies the command to use to create a new attachment
+ of a specific MIME type. Mutt-ng supports this from the compose
+ menu.
+
+ composetyped=<command>
+
+ This flag specifies the command to use to create a new attachment
+ of a specific MIME type. This command differs from the compose
+ command in that mutt will expect standard MIME headers on the
+ data. This can be used to specify parameters, filename,
+ description, etc. for a new attachment. Mutt-ng supports this from
+ the compose menu.
+
+ print=<command>
+
+ This flag specifies the command to use to print a specific MIME
+ type. Mutt-ng supports this from the attachment and compose menus.
+
+ edit=<command>
+
+ This flag specifies the command to use to edit a specific MIME
+ type. Mutt-ng supports this from the compose menu, and also uses
+ it to compose new attachments. Mutt-ng will default to the defined
+ editor for text attachments.
+
+ nametemplate=<template>
+
+ 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
+
+ test=<command>
+
+ 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-ng uses this entry. If
+ the command returns non-zero, then the test failed, and Mutt-ng
+ continues searching for the right entry. Note: the content-type
+ must match before Mutt-ng performs the test. For example:
+
+ text/html; netscape -remote 'openURL(%s)' ; test=RunningX
+ text/html; lynx %s
+
+ In this example, Mutt-ng 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-ng will call netscape to
+ display the text/html object. If RunningX doesn't return 0, then
+ Mutt-ng will go on to the next entry and use lynx to display the
+ text/html object.
+
+ 3.3.2. Search Order
+
+ When searching for an entry in the mailcap file, Mutt-ng 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-ng will search for an entry with the print command:
+
+ image/*; xv %s
+ image/gif; ; print= anytopnm %s | pnmtops | lpr; \
+ nametemplate=%s.gif
+
+ Mutt-ng will skip the image/* entry and use the image/gif entry with the
+ print command.
+
+ In addition, you can use this with auto-view 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 auto-view, Mutt-ng 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 program
+ returns non-zero, Mutt-ng will use the second entry for interactive
+ viewing.
+
+ 3.3.3. Command Expansion
+
+ 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-ng. The keywords Mutt-ng expands are:
+
+ %s
+
+ 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-ng to not pass the body of the
+ message to the view/print/edit program on stdin.
+
+ %t
+
+ Mutt-ng 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.
+
+ %{<parameter>}
+
+ Mutt-ng 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-ng will expand %{charset} to iso-8859-1. The default
+ metamail mailcap file uses this feature to test the charset to
+ spawn an xterm using the right charset to view the message.
+
+ \%
+
+ This will be replaced by a %
+
+ Mutt-ng does not currently support the %F and %n keywords specified in RFC
+ 1524. The main purpose of these parameters is for multipart messages,
+ which is handled internally by Mutt-ng.
+
+ 3.4. Example mailcap files
+
+ This mailcap file is fairly simple and standard:
+
+ >
+ # I'm always running X :)
+ video/*; xanim %s > /dev/null
+ image/*; xv %s > /dev/null
+
+ # I'm always running netscape (if my computer had more memory, maybe)
+ text/html; netscape -remote 'openURL(%s)'
+
+ 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
+
+ # Send html to a running netscape by remote
+ text/html; netscape -remote 'openURL(%s)'; test=RunningNetscape
+
+ # If I'm not running netscape but I am running X, start netscape on the
+ # object
+ text/html; netscape %s; test=RunningX
+
+ # Else use lynx to view it as text
+ text/html; lynx %s
+
+ # This version would convert the text/html to text/plain
+ text/html; lynx -dump %s; copiousoutput
+
+ # I use enscript to print text in two columns to a page
+ text/*; more %s; print=enscript -2Gr %s
+
+ # Netscape adds a flag to tell itself to view jpegs internally
+ image/jpeg;xv %s; x-mozilla-flags=internal
+
+ # 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
+
+ # 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
+
+4. MIME Autoview
+
+ In addition to explicitly telling Mutt-ng to view an attachment with the
+ MIME viewer defined in the mailcap file, Mutt-ng has support for
+ automatically viewing MIME attachments while in the pager.
+
+ 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.
+
+ You then use the auto_view muttrc command to list the content-types that
+ you wish to view automatically.
+
+ For instance, if you set auto_view to:
+
+ auto_view text/html application/x-gunzip application/postscript image/gif application/x-tar-gz
+
+ Mutt-ng could use the following mailcap entries to automatically view
+ attachments of these types.
+
+ 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
+
+ ``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.
+
+5. MIME Multipart/Alternative
+
+ Mutt-ng 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 MIME types
+ in order, including support for implicit and explicit wildcards, for
+ example:
+
+ alternative_order text/enriched text/plain text application/postscript image/*
+
+ Next, mutt will check if any of the types have a defined auto-view, and
+ use that. Failing that, Mutt-ng will look for any text type. As a last
+ attempt, mutt will look for any type it knows how to handle.
+
+ To remove a MIME type from the alternative_order list, use the
+ unalternative_order command.
+
+6. MIME Lookup
+
+ Mutt-ng'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:
+
+ mime_lookup application/octet-stream application/X-Lotus-Manuscript
+
+ 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.
+
+Chapter 6. Security Considerations
+
+ Table of Contents
+
+ 1. Passwords
+
+ 2. Temporary Files
+
+ 3. Information Leaks
+
+ 3.1. Message-ID: headers
+
+ 3.2. mailto:-style links
+
+ 4. External applications
+
+ 4.1. mailcap
+
+ 4.2. Other
+
+ First of all, mutt-ng contains no security holes included by intention but
+ may contain unknown security holes. As a consequence, please run mutt-ng
+ only with as few permissions as possible.
+
+ Please do not run mutt-ng as the super user.
+
+ When configuring mutt-ng, there're some points to note about secure
+ setups.
+
+ In practice, mutt-ng can be easily made as vulnerable as even the most
+ insecure mail user agents (in their default configuration) just by
+ changing mutt-ng's configuration files: it then can execute arbitrary
+ programs and scripts attached to messages, send out private data on its
+ own, etc. Although this is not believed to the common type of setup,
+ please read this chapter carefully.
+
+1. Passwords
+
+ Although mutt-ng can be told the various passwords for accounts, please
+ never store passwords in configuration files. Besides the fact that the
+ system's operator can always read them, you could forget to replace the
+ actual password with asterisks when reporting a bug or asking for help
+ via, for example, a mailing list so that your mail including your password
+ could be archived by internet search engines, etc. Please never store
+ passwords on disk.
+
+2. Temporary Files
+
+ Mutt-ng uses many temporary files for viewing messages, verifying digital
+ signatures, etc. The umask variable can be used to change the default
+ permissions of these files. Please only change it if you really know what
+ you are doing. Also, a different location for these files may be desired
+ which can be changed via the tmpdir variable.
+
+3. Information Leaks
+
+ 3.1. Message-ID: headers
+
+ In the default configuration, mutt-ng will leak some information to the
+ outside world when sending messages: the generation of Message-ID: headers
+ includes a step counter which is increased (and rotated) with every
+ message sent. If you'd like to hide this information probably telling
+ others how many mail you sent in which time, you at least need to remove
+ the %P expando from the default setting of the msgid-format variable.
+ Please make sure that you really know how local parts of these Message-ID:
+ headers are composed.
+
+ 3.2. mailto:-style links
+
+ As mutt-ng be can be set up to be the mail client to handle mailto: style
+ links in websites, there're security considerations, too. To keep the old
+ behavior by default, mutt-ng will be strict in interpreting them which
+ means that arbitrary header fields can be embedded in these links which
+ could override existing header fields or attach arbitrary files. This may
+ be problematic if the edit-headers variable is unset, i.e. the user
+ doesn't want to see header fields while editing the message.
+
+ For example, following a link like
+
+ mailto:joe@host?Attach=~/.gnupg/secring.gpg
+
+ will send out the user's private gnupg keyring to joe@host if the user
+ doesn't follow the information on screen carefully enough.
+
+ When unsetting the strict-mailto variable, mutt-ng will
+
+ o be less strict when interpreting these links by prepending a X-Mailto-
+ string to all header fields embedded in such a link and
+
+ o turn on the edit-headers variable by force to let the user see all the
+ headers (because they still may leak information.)
+
+4. External applications
+
+ Mutt-ng in many places has to rely on external applications or for
+ convenience supports mechanisms involving external applications.
+
+ 4.1. mailcap
+
+ One of these is the mailcap mechanism as defined by RfC 1524. Mutt-ng can
+ be set up to automatically execute any given utility as listed in one of
+ the mailcap files (see the mailcap-path variable for details.)
+
+ These utilities may have a variety of security vulnerabilities, including
+ overwriting of arbitrary files, information leaks or other exploitable
+ bugs. These vulnerabilities may go unnoticed by the user, especially when
+ they are called automatically (and without interactive prompting) from the
+ mailcap file(s). When using mutt-ng's autoview mechanism in combination
+ with mailcap files, please be sure to...
+
+ o manually select trustworth applications with a reasonable calling
+ sequence
+
+ o periodically check the contents of mailcap files, especially after
+ software installations or upgrades
+
+ o keep the software packages referenced in the mailcap file up to date
+
+ o leave the mailcap-sanitize variable in its default state to restrict
+ mailcap expandos to a safe set of characters
+
+ 4.2. Other
+
+ Besides the mailcap mechanism, mutt-ng uses a number of other external
+ utilities for operation.
+
+ The same security considerations apply for these as for tools involved via
+ mailcap (for example, mutt-ng is vulnerable to Denial of Service Attacks
+ with compressed folders support if the uncompressed mailbox is too large
+ for the disk it is saved to.)
+
+ As already noted, most of these problems are not built in but caused by
+ wrong configuration, so please check your configuration.
+
+Chapter 7. Reference
+
+ Table of Contents
+
+ 1. Command line options
+
+ 2. Patterns
+
+ 3. Configuration Commands
+
+ 4. Configuration variables
+
+ 5. Functions
+
+ 5.1. generic
+
+ 5.2. index
+
+ 5.3. pager
+
+ 5.4. alias
+
+ 5.5. query
+
+ 5.6. attach
+
+ 5.7. compose
+
+ 5.8. postpone
+
+ 5.9. browser
+
+ 5.10. pgp
+
+ 5.11. editor
+
+1. Command line options
+
+ Running mutt with no arguments will make Mutt-ng attempt to read your
+ spool mailbox. However, it is possible to read other mailboxes and to send
+ messages from the command line as well.
+
+ -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 initialization 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 Muttngrc
+ -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)
+ -t dump the value of all variables to stdout
+ -T dump the value of all changed variables to stdout
+ -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
+
+ To read messages in a mailbox
+
+ mutt [ -nz ] [ -F muttrc ] [ -m type ] [ -f mailbox ]
+
+ To compose a new message
+
+ mutt [ -n ] [ -F muttrc ] [ -a file ] [ -c address ] [ -i filename ] [ -s
+ subject ] address [ address ... ]
+
+ Mutt-ng also supports a ``batch'' mode to send prepared messages. Simply
+ redirect input from the file you wish to send. For example,
+
+ mutt -s "data set for run #2" professor@bigschool.edu < ˜/run2.dat
+
+ 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''.
+
+2. Patterns
+
+ ~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 *)
+ ~M multipart messages
+ ~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
+ ~w EXPR messages which contain EXPR in the `Newsgroups' field
+ (if compiled with NNTP support)
+ ~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 regexp. Special attention has to be
+ made when using regular expressions inside of patterns. Specifically,
+ Mutt-ng'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 (\\).
+
+ *) The forms <[MAX], >[MIN], [MIN]- and -[MAX] are allowed, too.
+
+3. Configuration Commands
+
+ The following are the commands understood by mutt.
+
+ o account-hook pattern command
+
+ o alias key address [ , address, ... ]
+
+ o alias [ * | key ... ]
+
+ o alternates regexp [ regexp ... ]
+
+ o alternates [ * | regexp ... ]
+
+ o alternative-order mimetype [ mimetype ... ]
+
+ o alternative-order mimetype [ mimetype ... ]
+
+ o append-hook regexp command
+
+ o auto-view mimetype [ mimetype ... ]
+
+ o auto-view mimetype [ mimetype ... ]
+
+ o bind map key function
+
+ o charset-hook alias charset
+
+ o close-hook regexp command
+
+ o color object foreground background [ regexp ]
+
+ o color index pattern [ pattern ... ]
+
+ o exec function [ function ... ]
+
+ o fcc-hook pattern mailbox
+
+ o fcc-save-hook pattern mailbox
+
+ o folder-hook pattern command
+
+ o hdr-order header [ header ... ]
+
+ o hdr-order header [ header ... ]
+
+ o charset-hook charset local-charset
+
+ o ignore pattern [ pattern ... ]
+
+ o ignore pattern [ pattern ... ]
+
+ o lists regexp [ regexp ... ]
+
+ o lists regexp [ regexp ... ]
+
+ o macro menu key sequence [ description ]
+
+ o mailboxes filename [ filename ... ]
+
+ o mbox-hook pattern mailbox
+
+ o message-hook pattern command
+
+ o mime-lookup mimetype [ mimetype ... ]
+
+ o mime-lookup mimetype [ mimetype ... ]
+
+ o color object attribute [ regexp ]
+
+ o color index pattern [ pattern ... ]
+
+ o my-hdr string
+
+ o my-hdr field [ field ... ]
+
+ o open-hook regexp command
+
+ o crypt-hook pattern key-id
+
+ o push string
+
+ o set variable [variable ... ]
+
+ o save-hook regexp filename
+
+ o score-command pattern value
+
+ o score-command pattern [ pattern ... ]
+
+ o send-hook regexp command
+
+ o reply-hook regexp command
+
+ o set [no|inv]variable[=value] [ variable ... ]
+
+ o set variable [variable ... ]
+
+ o source filename
+
+ o spam pattern format
+
+ o spam pattern
+
+ o lists regexp [ regexp ... ]
+
+ o lists regexp [ regexp ... ]
+
+ o set variable [variable ... ]
+
+ o unhook hook-type
+
+4. Configuration variables
+
+ The following list contains all variables which, in the process of
+ providing more consistency, have been renamed and are partially even
+ removed already. The left column contains the old synonym variables, the
+ right column the full/new name:
+
+ edit_hdrs edit_headers
+ forw_decode forward_decode
+ forw_format forward_format
+ forw_quote forward_quote
+ hdr_format index_format
+ indent_str indent_string
+ mime_fwd mime_forward
+ msg_format message_format
+ pgp_autosign crypt_autosign
+ pgp_autoencrypt crypt_autoencrypt
+ pgp_replyencrypt crypt_replyencrypt
+ pgp_replysign crypt_replysign
+ pgp_replysignencrypted crypt_replysignencrypted
+ pgp_verify_sig crypt_verify_sig
+ pgp_create_traditional pgp_autoinline
+ pgp_auto_traditional pgp_replyinline
+ forw_decrypt forward_decrypt
+ smime_sign_as smime_default_key
+ post_indent_str post_indent_string
+ print_cmd print_command
+ shorten_hierarchy sidebar_shorten_hierarchy
+ ask_followup_to nntp_ask_followup_to
+ ask_x_comment_to nntp_ask_x_comment_to
+ catchup_newsgroup nntp_catchup
+ followup_to_poster nntp_followup_to_poster
+ group_index_format nntp_group_index_format
+ inews nntp_inews
+ mime_subject nntp_mime_subject
+ news_cache_dir nntp_cache_dir
+ news_server nntp_host
+ newsrc nntp_newsrc
+ nntp_poll nntp_mail_check
+ pop_checkinterval pop_mail_check
+ post_moderated nntp_post_moderated
+ save_unsubscribed nntp_save_unsubscribed
+ show_new_news nntp_show_new_news
+ show_only_unread nntp_show_only_unread
+ x_comment_to nntp_x_comment_to
+ smtp_auth_username smtp_user
+ smtp_auth_password smtp_pass
+
+ The contrib subdirectory contains a script named update-config.pl which
+ eases migration.
+
+ A complete list of current variables follows.
+
+1. abort_noattach
+
+ Type: quadoption
+
+ Default: no
+
+ This variable specifies whether to abort sending if no attachment was made
+ but the content references them, i.e. the content matches the regular
+ expression given in $attach_remind_regexp. If a match was found and this
+ variable is set to yes, message sending will be aborted but the mail will
+ be send nevertheless if set to no.
+
+ This variable and $attach_remind_regexp are intended to remind the user to
+ attach files if the message's text references them.
+
+ See also the $attach_remind_regexp variable.
+
+2. abort_nosubject
+
+ Type: quadoption
+
+ Default: ask-yes
+
+ If set to yes, when composing messages and no subject is given at the
+ subject prompt, composition will be aborted. If set to no, composing
+ messages with no subject given at the subject prompt will never be
+ aborted.
+
+3. abort_unmodified
+
+ Type: quadoption
+
+ Default: yes
+
+ If set to yes, composition will automatically abort after editing the
+ message body if no changes are made to the file (this check only happens
+ after the first edit of the file). When set to no, composition will never
+ be aborted.
+
+4. agent_string
+
+ Type: boolean
+
+ Default: yes
+
+ When set, Mutt-ng will add a ``User-Agent:'' header to outgoing messages,
+ indicating which version of Mutt-ng was used for composing them.
+
+5. alias_file
+
+ Type: path
+
+ Default: "˜/.muttngrc"
+
+ The default file in which to save aliases created by the ``create-alias''
+ function.
+
+ Note: Mutt-ng will not automatically source this file; you must explicitly
+ use the `` source'' command for it to be executed.
+
+6. alias_format
+
+ Type: string
+
+ Default: "%4n %2f %t %-10a %r"
+
+ Specifies the format of the data displayed for the ``alias'' menu. The
+ following printf(3)-style sequences are available:
+
+ %a
+
+ alias name
+
+ %f
+
+ flags - currently, a "d" for an alias marked for deletion
+
+ %n
+
+ index number
+
+ %r
+
+ address which alias expands to
+
+ %t
+
+ character which indicates if the alias is tagged for inclusion
+
+7. allow_8bit
+
+ Type: boolean
+
+ Default: yes
+
+ Controls whether 8-bit data is converted to 7-bit using either
+ quoted-printable or base64 encoding when sending mail.
+
+8. allow_ansi
+
+ Type: boolean
+
+ Default: no
+
+ 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.
+
+9. arrow_cursor
+
+ Type: boolean
+
+ Default: no
+
+ 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.
+
+10. ascii_chars
+
+ Type: boolean
+
+ Default: no
+
+ If set, Mutt-ng will use plain ASCII characters when displaying thread and
+ attachment trees, instead of the default ACS characters.
+
+11. askbcc
+
+ Type: boolean
+
+ Default: no
+
+ If set, Mutt-ng will prompt you for blind-carbon-copy (Bcc) recipients
+ before editing an outgoing message.
+
+12. askcc
+
+ Type: boolean
+
+ Default: no
+
+ If set, Mutt-ng will prompt you for carbon-copy (Cc) recipients before
+ editing the body of an outgoing message.
+
+13. assumed_charset
+
+ Type: string
+
+ Default: "us-ascii"
+
+ 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.
+
+ For example, Japanese users might prefer this:
+
+ set assumed_charset="iso-2022-jp:euc-jp:shift_jis:utf-8"
+
+ However, only the first content is valid for the message body. This
+ variable is valid only if $strict_mime is unset.
+
+14. attach_format
+
+ Type: string
+
+ Default: "%u%D%I %t%4n %T%.40d%> [%.7m/%.10M, %.6e%?C?, %C?, %s] "
+
+ This variable describes the format of the ``attachment'' menu. The
+ following printf(3)-style sequences are understood:
+
+ %C
+
+ charset
+
+ %c
+
+ requires charset conversion (n or c)
+
+ %D
+
+ deleted flag
+
+ %d
+
+ description
+
+ %e
+
+ MIME Content-Transfer-Encoding: header field
+
+ %f
+
+ filename
+
+ %I
+
+ MIME Content-Disposition: header field (I=inline, A=attachment)
+
+ %m
+
+ major MIME type
+
+ %M
+
+ MIME subtype
+
+ %n
+
+ attachment number
+
+ %s
+
+ size
+
+ %t
+
+ tagged flag
+
+ %T
+
+ graphic tree characters
+
+ %u
+
+ unlink (=to delete) flag
+
+ %>X
+
+ right justify the rest of the string and pad with character "X"
+
+ %|X
+
+ pad to the end of the line with character "X"
+
+15. attach_remind_regexp
+
+ Type: regular expression
+
+ Default: "attach"
+
+ If this variable is non-empty, muttng will scan a message's contents
+ before sending for this regular expression. If it is found, it will ask
+ for what to do depending on the setting of $abort_noattach.
+
+ This variable and $abort_noattach are intended to remind the user to
+ attach files if the message's text references them.
+
+16. attach_sep
+
+ Type: string
+
+ Default: "\n"
+
+ The separator to add between attachments when operating (saving, printing,
+ piping, etc) on a list of tagged attachments.
+
+17. attach_split
+
+ Type: boolean
+
+ Default: yes
+
+ 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.
+
+18. attribution
+
+ Type: string
+
+ Default: "On %d, %n wrote:"
+
+ This is the string that will precede a message which has been included in
+ a reply. For a full listing of defined printf(3)-like sequences see the
+ section on ``$index_format''.
+
+19. auto_tag
+
+ Type: boolean
+
+ Default: no
+
+ When set, functions in the index 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.
+
+20. autoedit
+
+ Type: boolean
+
+ Default: no
+
+ 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.
+
+ Also see ``$fast_reply''.
+
+21. beep
+
+ Type: boolean
+
+ Default: yes
+
+ When this variable is set, Mutt-ng will beep when an error occurs.
+
+22. beep_new
+
+ Type: boolean
+
+ Default: no
+
+ 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.
+
+23. bounce
+
+ Type: quadoption
+
+ Default: ask-yes
+
+ Controls whether you will be asked to confirm bouncing messages. If set to
+ yes you don't get asked if you want to bounce a message. Setting this
+ variable to no is not generally useful, and thus not recommended, because
+ you are unable to bounce messages.
+
+24. bounce_delivered
+
+ Type: boolean
+
+ Default: yes
+
+ When this variable is set, Mutt-ng will include Delivered-To: header
+ fields when bouncing messages. Postfix users may wish to unset this
+ variable.
+
+25. braille_friendly
+
+ Type: boolean
+
+ Default: no
+
+ When this variable is set, mutt will place the cursor at the beginning of
+ the current line in menus, even when the arrow_cursor variable is unset,
+ making it easier for blind persons using Braille displays to follow these
+ menus. The option is disabled by default because many visual terminals
+ don't permit making the cursor invisible.
+
+26. certificate_file
+
+ Type: path
+
+ Default: "˜/.mutt_certificates"
+
+ Availability: SSL or GNUTLS
+
+ 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.
+
+ 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.
+
+ Example: set certificate_file=˜/.muttng/certificates
+
+27. charset
+
+ Type: string
+
+ Default: ""
+
+ Character set your terminal uses to display and enter textual data.
+
+28. check_new
+
+ Type: boolean
+
+ Default: yes
+
+ Note: this option only affects maildir and MH style mailboxes.
+
+ When set, 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 it's unset, no check for new mail
+ is performed while the mailbox is open.
+
+29. collapse_unread
+
+ Type: boolean
+
+ Default: yes
+
+ When unset, Mutt-ng will not collapse a thread if it contains any unread
+ messages.
+
+30. compose_format
+
+ Type: string
+
+ Default: "-- Mutt-ng: Compose [Approx. msg size: %l Atts: %a]%>-"
+
+ Controls the format of the status line displayed in the ``compose'' menu.
+ This string is similar to ``$status_format'', but has its own set of
+ printf(3)-like sequences:
+
+ %a
+
+ total number of attachments
+
+ %h
+
+ local hostname
+
+ %l
+
+ approximate size (in bytes) of the current message
+
+ %v
+
+ Mutt-ng version string
+
+ See the text describing the ``$status_format'' option for more information
+ on how to set ``$compose_format''.
+
+31. config_charset
+
+ Type: string
+
+ Default: ""
+
+ When defined, Mutt-ng will recode commands in rc files from this encoding.
+
+32. confirmappend
+
+ Type: boolean
+
+ Default: yes
+
+ When set, Mutt-ng will prompt for confirmation when appending messages to
+ an existing mailbox.
+
+33. confirmcreate
+
+ Type: boolean
+
+ Default: yes
+
+ When set, Mutt-ng will prompt for confirmation when saving messages to a
+ mailbox which does not yet exist before creating it.
+
+34. connect_timeout
+
+ Type: number
+
+ Default: 30
+
+ 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.
+
+35. content_type
+
+ Type: string
+
+ Default: "text/plain"
+
+ Sets the default Content-Type: header field for the body of newly composed
+ messages.
+
+36. copy
+
+ Type: quadoption
+
+ Default: yes
+
+ 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''.
+
+37. crypt_autoencrypt
+
+ Type: boolean
+
+ Default: no
+
+ Setting this variable will cause Mutt-ng to always attempt to PGP encrypt
+ outgoing messages. This is probably only useful in connection to the
+ send-hook command. It can be overridden by use of the pgp-menu, 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 smime-menu.
+ (Crypto only)
+
+38. crypt_autopgp
+
+ Type: boolean
+
+ Default: yes
+
+ 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''.
+
+39. crypt_autosign
+
+ Type: boolean
+
+ Default: no
+
+ Setting this variable will cause Mutt-ng to always attempt to
+ cryptographically sign outgoing messages. This can be overridden by use of
+ the pgp-menu, 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
+ smime-menu. (Crypto only)
+
+40. crypt_autosmime
+
+ Type: boolean
+
+ Default: yes
+
+ 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''.
+
+41. crypt_replyencrypt
+
+ Type: boolean
+
+ Default: yes
+
+ If set, automatically PGP or OpenSSL encrypt replies to messages which are
+ encrypted. (Crypto only)
+
+42. crypt_replysign
+
+ Type: boolean
+
+ Default: no
+
+ If set, automatically PGP or OpenSSL sign replies to messages which are
+ signed.
+
+ Note: this does not work on messages that are encrypted and signed!
+ (Crypto only)
+
+43. crypt_replysignencrypted
+
+ Type: boolean
+
+ Default: no
+
+ 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)
+
+44. crypt_timestamp
+
+ Type: boolean
+
+ Default: yes
+
+ 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)
+
+45. crypt_use_gpgme
+
+ Type: boolean
+
+ Default: no
+
+ 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: You need to use this option in your .muttngrc configuration file as
+ it won't have any effect when used interactively.
+
+46. crypt_verify_sig
+
+ Type: quadoption
+
+ Default: yes
+
+ 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)
+
+47. date_format
+
+ Type: string
+
+ Default: "!%a, %b %d, %Y at %I:%M:%S%p %Z"
+
+ This variable controls the format of the date printed by the ``%d''
+ sequence in ``$index_format''. This is passed to strftime(3) to process
+ the date.
+
+ 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).
+
+48. debug_level
+
+ Type: number
+
+ Default: 0
+
+ Availability: debug
+
+ This variable specifies the current debug level and may be used to
+ increase or decrease the verbosity level during runtime. It overrides the
+ level given with the -d command line option.
+
+ Currently, this number must be >= 0 and <= 5 and muttng must be started
+ with -d to enable debugging at all; enabling at runtime is not possible.
+
+49. default_hook
+
+ Type: string
+
+ Default: "˜f %s !˜P | (˜P ˜C %s)"
+
+ 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.
+
+50. delete
+
+ Type: quadoption
+
+ Default: ask-yes
+
+ Controls whether or not messages are really deleted when closing or
+ synchronizing a mailbox. If set to yes, messages marked for deleting will
+ automatically be purged without prompting. If set to no, messages marked
+ for deletion will be kept in the mailbox.
+
+51. delete_space
+
+ Type: boolean
+
+ Default: no
+
+ When sending messages with format=flowed by setting the $text_flowed
+ variable, this variable specifies whether to also set the DelSp parameter
+ to yes. If this is unset, no additional parameter will be send as a value
+ of no already is the default behavior.
+
+ Note: this variable only has an effect on outgoing messages (if
+ $text_flowed is set) but not on incomming.
+
+52. delete_untag
+
+ Type: boolean
+
+ Default: yes
+
+ If this option is set, 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.
+
+53. digest_collapse
+
+ Type: boolean
+
+ Default: yes
+
+ If this option is set, 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.
+
+54. display_filter
+
+ Type: path
+
+ Default: ""
+
+ 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.
+
+55. dotlock_program
+
+ Type: path
+
+ Default: "$muttng_bindir/muttng_dotlock"
+
+ Availability: Standalone and Dotlock
+
+ Contains the path of the muttng_dotlock(1) binary to be used by Mutt-ng.
+
+56. dsn_notify
+
+ Type: string
+
+ Default: ""
+
+ Note: you should not enable this unless you are using Sendmail 8.8.x or
+ greater or in connection with the SMTP support via libESMTP.
+
+ 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: never, to never request notification, failure, to request
+ notification on transmission failure, delay, to be notified of message
+ delays, success, to be notified of successful transmission.
+
+ Example: set dsn_notify="failure,delay"
+
+57. dsn_return
+
+ Type: string
+
+ Default: ""
+
+ Note: you should not enable this unless you are using Sendmail 8.8.x or
+ greater or in connection with the SMTP support via libESMTP.
+
+ This variable controls how much of your message is returned in DSN
+ messages. It may be set to either hdrs to return just the message header,
+ or full to return the full message.
+
+ Example: set dsn_return=hdrs
+
+58. duplicate_threads
+
+ Type: boolean
+
+ Default: yes
+
+ This variable controls whether Mutt-ng, when sorting by threads, threads
+ messages with the same Message-Id: header field 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.
+
+59. edit_headers
+
+ Type: boolean
+
+ Default: no
+
+ This option allows you to edit the header of your outgoing messages along
+ with the body of your message.
+
+ Which empty header fields to show is controlled by the $editor_headers
+ option.
+
+60. editor
+
+ Type: path
+
+ Default: ""
+
+ 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.
+
+61. editor_headers
+
+ Type: string
+
+ Default: "From: To: Cc: Bcc: Subject: Reply-To: Newsgroups: Followup-To:
+ X-Comment-To:"
+
+ If $edit_headers is set, this space-separated list specifies which
+ non-empty header fields to edit in addition to user-defined headers.
+
+ Note: if $edit_headers had to be turned on by force because $strict_mailto
+ is unset, this option has no effect.
+
+62. encode_from
+
+ Type: boolean
+
+ Default: no
+
+ When set, Mutt-ng will quoted-printable encode messages when they contain
+ the string ``From '' (note the trailing space) in the beginning of a line.
+ Useful to avoid the tampering certain mail delivery and transport agents
+ tend to do with messages.
+
+ Note: as mutt-ng currently violates RfC3676 defining format=flowed, it's
+ <em/strongly/ advised to set this option although discouraged by the
+ standard. Alternatively, you must take care of space-stuffing <tt/From /
+ lines (with a trailing space) yourself.
+
+63. entropy_file
+
+ Type: path
+
+ Default: ""
+
+ Availability: SSL
+
+ The file which includes random data that is used to initialize SSL library
+ functions.
+
+64. envelope_from
+
+ Type: boolean
+
+ Default: no
+
+ When set, Mutt-ng will try to derive the message's envelope sender from
+ the ``From:'' header field. Note that this information is passed to the
+ 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.
+
+65. escape
+
+ Type: string
+
+ Default: "˜"
+
+ Escape character to use for functions in the builtin editor.
+
+66. fast_reply
+
+ Type: boolean
+
+ Default: no
+
+ 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.
+
+ Note: this variable has no effect when the ``$autoedit'' variable is set.
+
+67. fcc_attach
+
+ Type: boolean
+
+ Default: yes
+
+ This variable controls whether or not attachments on outgoing messages are
+ saved along with the main body of your message.
+
+68. fcc_clear
+
+ Type: boolean
+
+ Default: no
+
+ When this variable is set, FCCs will be stored unencrypted and unsigned,
+ even when the actual message is encrypted and/or signed. (PGP only)
+
+69. file_charset
+
+ Type: string
+
+ Default: ""
+
+ 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:
+
+ set file_charset="iso-2022-jp:euc-jp:shift_jis:utf-8"
+
+ Note: ``iso-2022-*'' must be put at the head of the value as shown above
+ if included.
+
+70. folder
+
+ Type: path
+
+ Default: "˜/Mail"
+
+ 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 before you use ``+'' or ``='' for any
+ other variables since expansion takes place during the ``set'' command.
+
+71. folder_format
+
+ Type: string
+
+ Default: "%2C %t %N %F %2l %-8.8u %-8.8g %8s %d %f"
+
+ 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(3)-like sequences:
+
+ %C
+
+ current file number
+
+ %d
+
+ date/time folder was last modified
+
+ %f
+
+ filename
+
+ %F
+
+ file permissions
+
+ %g
+
+ group name (or numeric gid, if missing)
+
+ %l
+
+ number of hard links
+
+ %N
+
+ N if folder has new mail, blank otherwise
+
+ %s
+
+ size in bytes
+
+ %t
+
+ * if the file is tagged, blank otherwise
+
+ %u
+
+ owner name (or numeric uid, if missing)
+
+ %>X
+
+ right justify the rest of the string and pad with character "X"
+
+ %|X
+
+ pad to the end of the line with character "X"
+
+72. followup_to
+
+ Type: boolean
+
+ Default: yes
+
+ Controls whether or not the Mail-Followup-To: header field is generated
+ when sending mail. When set, Mutt-ng will generate this field when you are
+ replying to a known mailing list, specified with the ``subscribe'' or
+ ``lists'' commands or detected by common mailing list headers.
+
+ This field has two purposes. First, preventing you from receiving
+ duplicate copies of replies to messages which you send to mailing lists.
+ 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.
+
+73. force_buffy_check
+
+ Type: boolean
+
+ Default: no
+
+ When set, it causes Mutt-ng to check for new mail when the buffy-list
+ command is invoked. When unset, buffy_list will just list all mailboxes
+ which are already known to have new mail.
+
+ Also see the following variables: ``$timeout'', ``$mail_check'' and
+ ``$imap_mail_check''.
+
+74. force_name
+
+ Type: boolean
+
+ Default: no
+
+ 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.
+
+ Also see the ``$record'' variable.
+
+75. forward_decode
+
+ Type: boolean
+
+ Default: yes
+
+ 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 unset, otherwise
+ ``$mime_forward_decode'' is used instead.
+
+76. forward_decrypt
+
+ Type: boolean
+
+ Default: yes
+
+ 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 set and ``$mime_forward_decode'' is
+ unset. (PGP only)
+
+77. forward_edit
+
+ Type: quadoption
+
+ Default: yes
+
+ 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.
+
+78. forward_format
+
+ Type: string
+
+ Default: "[%a: %s]"
+
+ This variable controls the default subject when forwarding a message. It
+ uses the same format sequences as the ``$index_format'' variable.
+
+79. forward_quote
+
+ Type: boolean
+
+ Default: no
+
+ When set forwarded messages included in the main body of the message (when
+ ``$mime_forward'' is unset) will be quoted using ``$indent_string''.
+
+80. from
+
+ Type: e-mail address
+
+ Default: ""
+
+ 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.
+
+ E.g. you can use send-hook Mutt-ng-devel@lists.berlios.de 'my_hdr From:
+ Foo Bar <foo@bar.fb>' when replying to the mutt-ng developer's mailing
+ list and Mutt-ng takes this email address.
+
+ Defaults to the contents of the environment variable $EMAIL.
+
+81. gecos_mask
+
+ Type: regular expression
+
+ Default: "^[^,]*"
+
+ 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 do: set gecos_mask=".*".
+
+ 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''.
+
+82. hdrs
+
+ Type: boolean
+
+ Default: yes
+
+ When unset, the header fields normally added by the ``my_hdr'' command are
+ not created. This variable must be unset before composing a new message or
+ replying in order to take effect. If set, the user defined header fields
+ are added to every new message.
+
+83. header
+
+ Type: boolean
+
+ Default: no
+
+ When set, this variable causes Mutt-ng to include the header of the
+ message you are replying to into the edit buffer. The ``$weed'' setting
+ applies.
+
+84. header_cache
+
+ Type: path
+
+ Default: ""
+
+ Availability: Header Cache
+
+ The $header_cache variable points to the header cache database.
+
+ If $header_cache points to a directory it will contain a header cache
+ database per folder. If $header_cache points to a file that file will be a
+ single global header cache. By default it is unset so no header caching
+ will be used.
+
+85. header_cache_compress
+
+ Type: boolean
+
+ Default: no
+
+ If enabled the header cache will be compressed. So only one fifth of the
+ usual diskspace is used, but the uncompression can result in a slower open
+ of the cached folder.
+
+86. help
+
+ Type: boolean
+
+ Default: yes
+
+ When set, help lines describing the bindings for the major functions
+ provided by each menu are displayed on the first line of the screen.
+
+ Note: The binding will not be displayed correctly if the function is bound
+ to a sequence rather than a single keystroke. Also, the help line may not
+ be updated if a binding is changed while Mutt-ng is running. Since this
+ variable is primarily aimed at new users, neither of these should present
+ a major problem.
+
+87. hidden_host
+
+ Type: boolean
+
+ Default: no
+
+ When set, Mutt-ng will skip the host name part of ``$hostname'' variable
+ when adding the domain part to addresses. This variable does not affect
+ the generation of Message-ID: header fields, and it will not lead to the
+ cut-off of first-level domains.
+
+88. hide_limited
+
+ Type: boolean
+
+ Default: no
+
+ When set, Mutt-ng will not show the presence of messages that are hidden
+ by limiting, in the thread tree.
+
+89. hide_missing
+
+ Type: boolean
+
+ Default: yes
+
+ When set, Mutt-ng will not show the presence of missing messages in the
+ thread tree.
+
+90. hide_thread_subject
+
+ Type: boolean
+
+ Default: yes
+
+ When set, Mutt-ng will not show the subject of messages in the thread tree
+ that have the same subject as their parent or closest previously displayed
+ sibling.
+
+91. hide_top_limited
+
+ Type: boolean
+
+ Default: no
+
+ When set, Mutt-ng will not show the presence of messages that are hidden
+ by limiting, at the top of threads in the thread tree. Note that when
+ $hide_missing is set, this option will have no effect.
+
+92. hide_top_missing
+
+ Type: boolean
+
+ Default: yes
+
+ When set, Mutt-ng will not show the presence of missing messages at the
+ top of threads in the thread tree. Note that when $hide_limited is set,
+ this option will have no effect.
+
+93. history
+
+ Type: number
+
+ Default: 10
+
+ This variable controls the size (in number of strings remembered) of the
+ string history buffer. The buffer is cleared each time the variable is
+ changed.
+
+94. honor_followup_to
+
+ Type: quadoption
+
+ Default: yes
+
+ This variable controls whether or not a Mail-Followup-To: header field is
+ honored when group-replying to a message.
+
+95. hostname
+
+ Type: string
+
+ Default: ""
+
+ Specifies the hostname to use after the ``@'' in local e-mail addresses
+ and during generation of Message-Id: headers.
+
+ Please be sure to really know what you are doing when changing this
+ variable to configure a custom domain part of Message-IDs.
+
+96. ignore_list_reply_to
+
+ Type: boolean
+
+ Default: no
+
+ Affects the behaviour of the reply function when replying to messages from
+ mailing lists. When set, if the ``Reply-To:'' header field is set to the
+ same value as the ``To:'' header field, Mutt-ng assumes that the
+ ``Reply-To:'' header field was set by the mailing list to automate
+ responses to the list, and will ignore this field. To direct a response to
+ the mailing list when this option is set, use the list-reply function;
+ group-reply will reply to both the sender and the list.
+
+97. imap_authenticators
+
+ Type: string
+
+ Default: ""
+
+ Availability: IMAP
+
+ This is a colon-delimited list of authentication methods Mutt-ng may
+ attempt to use to log in to an IMAP server, in the order Mutt-ng should
+ try them. Authentication methods are either ``login'' or the right side of
+ an IMAP ``AUTH='' capability string, e.g. ``digest-md5'', ``gssapi'' or
+ ``cram-md5''. This parameter is case-insensitive.
+
+ If this parameter is unset (the default) Mutt-ng will try all available
+ methods, in order from most-secure to least-secure.
+
+ Example: set imap_authenticators="gssapi:cram-md5:login"
+
+ Note: Mutt-ng will only fall back to other authentication methods if the
+ previous methods are unavailable. If a method is available but
+ authentication fails, Mutt-ng will not connect to the IMAP server.
+
+98. imap_check_subscribed
+
+ Type: boolean
+
+ Default: no
+
+ When set, mutt will fetch the set of subscribed folders from your server
+ on connection, and add them to the set of mailboxes it polls for new mail.
+ See also the ``mailboxes'' command.
+
+99. imap_delim_chars
+
+ Type: string
+
+ Default: "/."
+
+ Availability: IMAP
+
+ This contains the list of characters which you would like to treat as
+ folder separators for displaying IMAP paths. In particular it helps in
+ using the '=' shortcut for your $folder variable.
+
+100. imap_headers
+
+ Type: string
+
+ Default: ""
+
+ Availability: IMAP
+
+ Mutt-ng requests these header fields in addition to the default headers
+ (``DATE FROM SUBJECT TO CC MESSAGE-ID REFERENCES CONTENT-TYPE
+ CONTENT-DESCRIPTION IN-REPLY-TO REPLY-TO LINES X-LABEL'') from IMAP
+ servers before displaying the ``index'' menu. You may want to add more
+ headers for spam detection.
+
+ Note: This is a space separated list.
+
+101. imap_home_namespace
+
+ Type: string
+
+ Default: ""
+
+ Availability: IMAP
+
+ You normally want to see your personal folders alongside your INBOX in the
+ IMAP browser. If you see something else, you may set this variable to the
+ IMAP path to your folders.
+
+102. imap_keepalive
+
+ Type: number
+
+ Default: 900
+
+ Availability: IMAP
+
+ This variable specifies the maximum amount of time in seconds that Mutt-ng
+ will wait before polling open IMAP connections, to prevent the server from
+ closing them before Mutt-ng has finished with them.
+
+ The default is well within the RFC-specified minimum amount of time (30
+ minutes) before a server is allowed to do this, but in practice the RFC
+ does get violated every now and then.
+
+ Reduce this number if you find yourself getting disconnected from your
+ IMAP server due to inactivity.
+
+103. imap_list_subscribed
+
+ Type: boolean
+
+ Default: no
+
+ Availability: IMAP
+
+ This variable configures whether IMAP folder browsing will look for only
+ subscribed folders or all folders. This can be toggled in the IMAP browser
+ with the toggle-subscribed function.
+
+104. imap_login
+
+ Type: string
+
+ Default: ""
+
+ Availability: IMAP
+
+ Your login name on the IMAP server.
+
+ This variable defaults to the value of ``$imap_user.''
+
+105. imap_mail_check
+
+ Type: number
+
+ Default: 300
+
+ This variable configures how often (in seconds) Mutt-ng should look for
+ new mail in IMAP folders. This is split from the ``mail_check'' variable
+ to generate less traffic and get more accurate information for local
+ folders.
+
+106. imap_pass
+
+ Type: string
+
+ Default: ""
+
+ Availability: IMAP
+
+ Specifies the password for your IMAP account. If unset, Mutt-ng will
+ prompt you for your password when you invoke the fetch-mail function.
+
+ Warning: you should only use this option when you are on a fairly secure
+ machine, because the superuser can read your configuration even if you are
+ the only one who can read the file.
+
+107. imap_passive
+
+ Type: boolean
+
+ Default: yes
+
+ Availability: IMAP
+
+ When set, Mutt-ng will not open new IMAP connections to check for new
+ mail. Mutt-ng will only check for new mail over existing IMAP connections.
+ This is useful if you don't want to be prompted to user/password pairs on
+ Mutt-ng invocation, or if opening the connection is slow.
+
+108. imap_peek
+
+ Type: boolean
+
+ Default: yes
+
+ Availability: IMAP
+
+ If set, Mutt-ng will avoid implicitly marking your mail as read whenever
+ you fetch a message from the server. This is generally a good thing, but
+ can make closing an IMAP folder somewhat slower. This option exists to
+ appease speed freaks.
+
+109. imap_reconnect
+
+ Type: quadoption
+
+ Default: ask-yes
+
+ Availability: IMAP
+
+ Controls whether or not Mutt-ng will try to reconnect to IMAP server when
+ the connection is lost.
+
+110. imap_servernoise