X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=doc%2Fmanual.sgml.head;fp=doc%2Fmanual.sgml.head;h=0000000000000000000000000000000000000000;hp=c121d1bec729eb09a8b08a1f453c40c7d184fcda;hb=f7f52358a72c7bc02e201dd03bd7f75869681a52;hpb=7e48409c3d6fb969706114b3c0962ffa0e112d37 diff --git a/doc/manual.sgml.head b/doc/manual.sgml.head deleted file mode 100644 index c121d1b..0000000 --- a/doc/manual.sgml.head +++ /dev/null @@ -1,10098 +0,0 @@ - - - - - - - The Mutt Next Generation E-Mail Client - - AndreasKrennmair - ak@synflood.at - - - MichaelElkins - me@cs.hmc.edu - - version devel-r473 - - - 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!'' - - - - - - Introduction - - - 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. - - - - - - - - - - Mutt-ng Home Page - - - http://www.muttng.org - - - - - - - - - - Mailing Lists - - - - - - - - mutt-ng-users@lists.berlios.de: This is - where the mutt-ng user support happens. - - - - - - mutt-ng-devel@lists.berlios.de: The - development mailing list for mutt-ng - - - - - - - - - - - - - - - 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/ - - - - - - - - - - IRC - - - Visit channel #muttng on irc.freenode.net - (www.freenode.net) to chat with other people - interested in Mutt-ng. - - - - - - 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. - - - - - - 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. - - - - - - - - - Getting Started - - - Basic Concepts - - - Screens and Menus - - - mutt-ng offers different screens of which every has its special - purpose: - - - - - - - - - The index displays the contents of the - currently opened - mailbox. - - - - - - - The pager is responsible for displaying - messages, that - is, the header, the body and all attached parts. - - - - - - - The file browser offers operations on and - displays - information of all folders mutt-ng should watch for mail. - - - - - - - The sidebar offers a permanent view of - which mailboxes - contain how many total, new and/or flagged mails. - - - - - - - The help screen lists for all currently - available - commands how to invoke them as well as a short description. - - - - - - - The compose menu is a comfortable - interface take last - actions before sending mail: change subjects, attach files, - remove - attachements, etc. - - - - - - - The attachement menu gives a summary and - the tree - structure of the attachements of the current message. - - - - - - - The alias menu lists all or a fraction of - the aliases - a user has defined. - - - - - - - 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. - - - - - - - - - - - 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. - - - - - - - - - - - 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. - - - - - - - - - - - Interaction - - - Mutt-ng has two basic concepts of user interaction: - - - - - - - - - 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. - - - - - - - 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. - - - - - - - - - - - - - - - - - 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. - - - - - - - - - - - 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. - - - - - - - - - - - - - - - - - - - Screens and Menus - - - 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. - - - - - - - - - - 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. - - - - - - - - - - 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. - - - - - - - - - - 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. - - - - - - - - - - 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). - - - - - - - - - - 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. - - - - - - - - - - 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. - - - - - - - - - - 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. - - - - - - - - - - Key Menu - - - FIXME - - - - - - - - - - - - - - - - - Moving Around in Menus - - - Information is presented in menus, very similar to ELM. Here is a - tableshowing the common keys used to navigate menus in Mutt-ng. - - - - - - Default Menu Movement Keys - - - - Key - Function - Description - - - - - j or Down - next-entry - move to the next entry - - - k or Up - previous-entry - move to the previous entry - - - z or PageDn - page-down - go to the next page - - - Z or PageUp - page-up - go to the previous page - - - = or Home - first-entry - jump to the first entry - - - * or End - last-entry - jump to the last entry - - - q - quit - exit the current menu - - - ? - help - list all key bindings for the current menu - - - -
- - -
- - - - - -
- - - - 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. - - - - - - Built-In Editor Functions - - - - Key - Function - Description - - - - - ^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 - - - - - - -
- - - - Reading Mail - The Index and Pager - - - Similar to many other mail clients, there are two modes in which mail - isread in Mutt-ng. The first is the index of messages in the mailbox, - which is - called the ``index'' in Mutt-ng. The second mode is the display of the - message contents. This is called the ``pager.'' - - - - The next few sections describe the functions provided in each of these - modes. - - - - The Message Index - - - - - Default Index Menu Bindings - - - - Key - Function - Description - - - - c change to a different mailbox - ESC c change to a folder in read-only mode - C copy the current message to another mailbox - ESC C decode a message and copy it to a folder - ESC s decode a message and save it to a folder - D delete messages matching a pattern - d delete the current message - F mark as important - l show messages matching a pattern - N mark message as new - o change the current sort method - O reverse sort the mailbox - q save changes and exit - s save-message - T tag messages matching a pattern - t toggle the tag on a message - ESC t toggle tag on entire message thread - U undelete messages matching a pattern - u undelete-message - v view-attachments - x abort changes and exit - <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 - - -
- -
- - - 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 - - - - - - set-flag (default: w) - - - - - - 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 - - - - - - - - - - -
- - - 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. - - - - - - Default Pager Menu Bindings - - - - Key - Function - Description - - - - <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 - forbold and underline. These sequences are a series of either the - letter, - backspace (ˆH), the letter again for bold or the letter, - backspace, - ``_'' for denoting underline. Mutt-ng will attempt to display - these - in bold and underline respectively if your terminal supports them. If - not, you can use the bold and underline color - objects to specify a color or mono attribute for them. - - - - Additionally, the internal pager supports the ANSI escape - sequences for character attributes. Mutt-ng translates them - into the correct color and character settings. The sequences - Mutt-ng supports are: ESC [ Ps;Ps;Ps;...;Ps - m (see table below for possible values for - Ps). - - - - - - ANSI Escape Sequences - - - - Value - Attribute - - - - 0 All Attributes Off - 1 Bold on - 4 Underline on - 5 Blink on - 7 Reverse video on - 3x Foreground color is x (see table below) - 4x Background color is x (see table below) - - -
- - - - ANSI Colors - - - - Number - Color - - - - 0 black - 1 red - 2 green - 3 yellow - 4 blue - 5 magenta - 6 cyan - 7 white - - -
- - -
- - - Mutt-ng uses these attributes for handling text/enriched messages, - and they - can also be used by an external autoview - script for highlighting purposes. Note: If you change the colors for your - display, for example by changing the color associated with color2 for - your xterm, then that color will be used instead of green. - - - -
- - - Threaded Mode - - - When the mailbox is sorted by - threads - - ,there are - a few additional functions available in the index and - pager - - modes. - - - - - - Default Thread Function Bindings - - - - Key - Function - Description - - - - ^D delete-thread delete all messages in the current thread - ^U undelete-thread undelete all messages in the current thread - ^N next-thread jump to the start of the next thread - ^P previous-thread jump to the start of the previous thread - ^R read-thread mark the current thread as read - ESC d delete-subthread delete all messages in the current subthread - ESC u undelete-subthread undelete all messages in the current subthread - ESC n next-subthread jump to the start of the next subthread - ESC p previous-subthread jump to the start of the previous subthread - ESC r read-subthread mark the current subthread as read - ESC t tag-thread toggle the tag on the current thread - ESC v collapse-thread toggle collapse for the current thread - ESC V collapse-all toggle collapse for all threads - P parent-message jump to parent message in thread - - -
- - -
- - - Note: Collapsing a thread displays - only the first message - in the thread and hides the others. This is useful when threads - contain so many messages that you can only see a handful of threads - onthe screen. See %M in - index-format - - . - For example, you could use - "%?M?(#%03M)&(%4l)?" in - index-format - - to optionally - display the number of hidden messages if the thread is collapsed. - - - - See also: strict-threads. - - - -
- - - 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 - displayof the quoted material in the message. It is particularly - useful when - are interested in just the response and there is a large amount of - quoted text in the way. - - - - 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. - - - - - - - - - - -
- - - Sending Mail - - - The following bindings are available in the index - for sending - messages. - - - - - - Default Mail Composition Bindings - - - - Key - Function - Description - - - - m compose compose a new message - r reply reply to sender - g group-reply reply to all recipients - L list-reply reply to mailing list address - f forward forward message - b bounce bounce (remail) message - ESC k mail-key mail a PGP public key to someone - - -
- -
- - - Bouncing a message sends the message as is to the recipient you - specify. Forwarding a message allows you to add comments or - modify the message you are forwarding. These items are discussed - in greater detail in the next chapter - forwarding-mail - - . - - - - 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: - - - - - - Default Compose Menu Bindings - - - - Key - Function - Description - - - - a attach-file attach a file - A attach-message attach message(s) to the message - ESC k attach-key attach a PGP public key - d edit-description edit description on attachment - D detach-file detach a file - t edit-to edit the To field - ESC f edit-from edit the From field - r edit-reply-to edit the Reply-To field - c edit-cc edit the Cc field - b edit-bcc edit the Bcc field - y send-message send the message - s edit-subject edit the Subject - S smime-menu select S/MIME options - f edit-fcc specify an ``Fcc'' mailbox - p pgp-menu select PGP options - P postpone-message postpone this message until later - q quit quit (abort) sending the message - w write-fcc write the message to a folder - i ispell check spelling (if available on your system) - ^F forget-passphrase wipe passphrase(s) from memory - - -
- -
- - - Note: The attach-message function - will prompt you for a folder to - attach messages from. You can now tag messages in that folder and - theywill be attached to the message you are sending. Note that - certainoperations like composing a new mail, replying, forwarding, - etc. are - not permitted when you are in that folder. The %r in - status-format - - will change to - a 'A' to indicate that you are in attach-message mode. - - - - - - - -
- - - Replying - - - 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. - - - - - - - - - - - Group Replies - - - In the situation where a group of people uses email as a - discussion, most of the emails will have one or more recipients, - and probably several "Cc:" recipients. The group reply - functionalityensures that when you press g - instead of r to do a reply, - each and every recipient that is contained in the original message - will receive a copy of the message, either as normal recipient or - as "Cc:" recipient. - - - - - - - - - - - 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. - - - - - - - - - - - - - - - - - - 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. - - - - - - - - - - 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: - - - - PGP Key Menu Flags - - - - Flag - Description - - - - R The key has been revoked and can't be used. - X The key is expired and can't be used. - d You have marked the key as disabled. - c There are unknown critical self-signature packets. - - -
- -
- - - The capabilities field (%c) expands to a two-character - sequencerepresenting a key's capabilities. The first character gives - the key's encryption capabilities: A minus sign ( - - - - )means - that the key cannot be used for encryption. A dot ( - . - - )means that - it's marked as a signature key in one of the user IDs, but may - also be used for encryption. The letter e indicates that - this key can be used for encryption. - - - - The second character indicates the key's signing capabilities. Once - again, a ``-'' implies ``not for - signing'', ``.'' implies - that the key is marked as an encryption key in one of the user-ids, - and - ``s'' denotes a key which can be - used for signing. - - - - Finally, the validity field (%t) indicates how well-certified - a user-id - is. A question mark (?) indicates - undefined validity, a minus - character (-) marks an untrusted - association, a space character - means a partially trusted association, and a plus character ( - + - - ) - indicates complete validity. - - - - - - -
- - - 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. - - - - - - - - - - - - -
- - - 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. - - - - - - - - - - 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. - - - - - - - - - - - - -
- - - Configuration - - - 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. - - - - - - - - - - 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. - - - - - - - - - - Expansion within variables - - - Besides just assign static content to variables, there's plenty of - ways of adding external and more or less dynamic content. - - - - 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. - - - - - - 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. - - - - - - 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. - - - - - - 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. - - - - - - 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. - - - - - - 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 - - - - - - - - - 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 - muttprompts for addresses, such as the To: or - Cc: - - prompt. You can - also enter aliases in your editor at the appropriate headers if you - have the - edit-headers variable set. - - - - 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. - - - - - - - - - - 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 - isallowed). 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: - - - - - - Alternative Key Names - - - - Sequence - Description - - - - \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. - - - - - - -
- - - 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. - - - - - - - - - - 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 - methodbased 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 - - - - - - - - - - - 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 - singlekey. - - - - menu is the maps which - the macro will be bound. - Multiple maps may be specified by separating multiple menu arguments by - commas. Whitespace may not be used in between the menu arguments and - thecommas separating them. - - - - 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 - willwork regardless of the current key bindings, so they are not - dependent on - the user having particular key definitions. This makes them more - robustand portable, and also facilitates defining of macros in files - used by more - than one user (eg. the system Muttngrc). - - - - 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. - - - - - - - - - - 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: - - - - - - - - - attachment - - - - - - body (match regexp in the body of messages) - - - - - - bold (highlighting bold patterns in the body of messages) - - - - - - error (error messages printed by Mutt-ng) - - - - - - header (match regexp in the message header) - - - - - - hdrdefault (default color of the message header in the pager) - - - - - - index (match pattern in the message index) - - - - - - indicator (arrow or bar used to indicate the current item in a - menu) - - - - - - markers (the ``+'' markers at the beginning of wrapped lines in - the pager) - - - - - - message (informational messages) - - - - - - normal - - - - - - quoted (text matching quote-regexp in the body of a message) - - - - - - quoted1, quoted2, ..., quotedN - (higher levels of quoting) - - - - - - search (highlighting of words in the pager) - - - - - - signature - - - - - - status (mode lines used to display info about the mailbox or - message) - - - - - - tilde (the ``˜'' used to pad blank lines in the pager) - - - - - - tree (thread tree drawn in the message index and attachment menu) - - - - - - underline (highlighting underlined patterns in the body of - messages) - - - - - - - - - foreground and background can - be one of the following: - - - - - - - - - white - - - - - - black - - - - - - green - - - - - - magenta - - - - - - blue - - - - - - cyan - - - - - - yellow - - - - - - red - - - - - - default - - - - - - 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: - - - - - - - - - none - - - - - - bold - - - - - - underline - - - - - - reverse - - - - - - standout - - - - - - - - - - - - - - - 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: - - - - - - - - - - - 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. - - - - - - - - - - Format = Flowed - - - 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>. - - - - - - 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. - - - - - - - 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: - - - - - - - - - > This is not the - quote character but a right - angle used for other reasons - - - - - - - From with a trailing space. - - - - - - - just a space for formatting reasons - - - - - - - - - - Please make sure that you manually prepend a space to each of them. - - - - - - 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. - - - - - - - - - - - - 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''. - - - - - - - - - - Using Multiple spool mailboxes - - - Usage: mbox-hook [!]pattern - mailbox - - - - - This command is used to move read messages from a specified mailbox to - adifferent mailbox automatically when you quit or change folders. - pattern is a regular expression specifying the - mailbox to treat as a - ``spool'' mailbox and mailbox specifies where mail - should be saved when - read. - - - - 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). - - - - - - - - - - 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. - - - - - - - - - - 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 - - - - - - - - - - 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: - - - - - - - - - - - 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. - - - - - - - - - - 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. - - - - - - - - - - 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. - - - - - - - - - - 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. - - - - - - - - - - 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:.*\""' - - - - - - - - - - - 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 - wouldnormally use. The crypt-hook command provides a method by which - you can - specify the ID of the public key to be used when encrypting messages to - a certain recipient. - - - - 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. - - - - - - - - - - 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. - - - - - - - - - - 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>''. - - - - - - - - - - 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: - - - - - - - - - flag threshold: when a message has a score value equal or higher - than the flag threshold, it will be flagged. - - - - - - - read threshold: when a message has a score value equal or lower - than the read threshold, it will be marked as read. - - - - - - - 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. - - - - - - - - - - Spam detection - - - Usage: spam pattern - format - - - Usage: nospam pattern - - - - Mutt-ng has generalized support for external spam-scoring filters. - By defining your spam patterns with the spam and - nospam - - commands, you can limit, search, and - sort - - your - mail based on its spam attributes, as determined by the external - filter. You also can display the spam attributes in your index - display using the %H selector in the - index-format - - variable. (Tip: try %?H?[%H] ? - to display spam tags only when they are defined for a given message.) - - - - Your first step is to define your external filter's spam patterns using - the spam command. pattern - should be a regular expression - that matches a header in a mail message. If any message in the mailbox - matches this regular expression, it will receive a ``spam tag'' or - ``spam attribute'' (unless it also matches a nospam - pattern -- see - below.) The appearance of this attribute is entirely up to you, and is - governed by the format parameter. format can be any static - text, but it also can include back-references from the - pattern - - expression. (A regular expression ``back-reference'' refers to a - sub-expression contained within parentheses.) %1 is replaced with - the first back-reference in the regex, %2 - with the second, etc. - - - - If you're using multiple spam filters, a message can have more than - one spam-related header. You can define spam - patterns for each - filter you use. If a message matches two or more of these patterns, and - the $spam_separator variable is set to a string, then the - message's spam tag will consist of all the format - strings joined - together, with the value of $spam_separator separating - them. - - - - For example, suppose I use DCC, SpamAssassin, and PureMessage. I might - define these spam settings: - - -spam "X-DCC-.*-Metrics:.*(....)=many" "90+/DCC-%1" -spam "X-Spam-Status: Yes" "90+/SA" -spam "X-PerlMX-Spam: .*Probability=([0-9]+)%" "%1/PM" -set spam_separator=", " - - - - - If I then received a message that DCC registered with ``many'' hits - under the ``Fuz2'' checksum, and that PureMessage registered with a - 97% probability of being spam, that message's spam tag would - read90+/DCC-Fuz2, 97/PM. (The four characters before - ``=many'' in a - DCC report indicate the checksum used -- in this case, ``Fuz2''.) - - - - If the $spam_separator variable is unset, then each - spam pattern match supersedes the previous one. Instead of getting - joined format strings, you'll get only the last - one to match. - - - - The spam tag is what will be displayed in the index when you use - %H in the - $index_format - - variable. It's also the - string that the ˜H pattern-matching expression - matches against for - search and limit functions. - And it's what sorting by spam - attribute will use as a sort key. - - - - That's a pretty complicated example, and most people's actual - environments will have only one spam filter. The simpler your - configuration, the more effective mutt can be, especially when it comes - to sorting. - - - - Generally, when you sort by spam tag, mutt will sort - lexically - - -- - that is, by ordering strings alphnumerically. However, if a spam tag - begins with a number, mutt will sort numerically first, and lexically - only when two numbers are equal in value. (This is like UNIX's - sort -n.) A message with no spam attributes at all - -- that is, one - that didn't match any of your spam patterns -- is sorted at - lowest priority. Numbers are sorted next, beginning with 0 and ranging - upward. Finally, non-numeric strings are sorted, with ``a'' taking - lowerpriority than ``z''. Clearly, in general, sorting by spam tags is - most - effective when you can coerce your filter to give you a raw number. But - in case you can't, mutt can still do something useful. - - - - The nospam command can be used to write exceptions - to spam - patterns. If a header pattern matches something in a spam command, - but you nonetheless do not want it to receive a spam tag, you can list - amore precise pattern under a nospam command. - - - - If the pattern given to nospam - is exactly the same as the - pattern on an existing spam - list entry, the effect will be to - remove the entry from the spam list, instead of adding an exception. - Likewise, if the pattern for a spam command matches an entry - on the nospam list, that nospam - entry will be removed. If the - pattern for nospam is ``*'', - all entries on both lists - - will be removed. This might be the default action if you use - spam - - and nospam in conjunction with a - folder-hook - - . - - - - You can have as many spam or nospam commands as you like. - You can even do your own primitive spam detection within mutt -- for - example, if you consider all mail from MAILER-DAEMON - to be spam, - you can use a spam command like this: - - - - - -spam "^From: .*MAILER-DAEMON" "999" - - - - - - - - - - - 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. - - - - - - - - - - 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|). - - - - - - - - - - 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. - - - - - - - - - - Sharing Setups - - - 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. - - - - - - - - - - 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. - - - - - - - - - - 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: - - - - - - - - - a function name - - - - - - - a variable name - - - - - - - a menu name - - - - - - - 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' - - - - - - - - - - - - - - - - - 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. - - - - - - - - - - - - -
- - - Advanced Usage - - - 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 ``ˆ'' - andthe 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 - (calledcollating 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. - - - - - - - - - - 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 is - a regular expression. For ranges, the forms - <[MAX], >>[MIN], - [MIN]- and -[MAX] are - also possible. - - - - 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. - - - - - - 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 - - - - - - - - - - - - - Format Strings - - - 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: - - - - - - - - - the current hostname - - - - - - - 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: - - - - - - - - - which mailbox is open - - - - - - - how man new, flagged or postponed messages - - - - - - - ... - - - - - - - - - - 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. - - - - - - - - - - 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: - - - - - - - - - make it print ``n new messages'' whereby - n - - is the - count but only if there new ones - - - - - - - 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. - - - - - - - - - - Modifications and Padding - - - Besides the information given so far, there're even more features of - format strings: - - - - - - - - - When specifying %_<item> - instead of - just %<item>, mutt-ng will - convert all - characters in the expansion of <item> - to - lowercase. - - - - - - - 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)" - - - - - - - - - - - - - - - - - - - - - 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 - asnormal. - - - - - - - - - - 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 - - - - - - folder-hook - - - - - - send-hook - - - - - - message-hook - - - - - - save-hook - - - - - - mbox-hook - - - - - - fcc-hook - - - - - - 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 - - - - - 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 - orsearching the mailbox, except that you are - restricted to those - operators which match information mutt extracts from the header of - the message (i.e. from, to, cc, date, subject, etc.). - - - - 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. - - - - - - - - - - - - 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: - - - Default Sidebar Function Bindings - - - - Key - Function - Description - - - - nonesidebar-scroll-up Scrolls the mailbox list up 1 page - nonesidebar-scroll-down Scrolls the mailbox list down 1 page - nonesidebar-next Highlights the next mailbox - nonesidebar-next-new Highlights the next mailbox with new mail - nonesidebar-previous Highlights the previous mailbox - nonesidebar-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'. - - - - - - -
- - - 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 - thensome other optional information. On error, or if there are no - matching - addresses, return a non-zero exit code and a one line error message. - - - - An example multiple response output: - - -Searching database ... 20 entries ... 3 matching: -me@cs.hmc.edu Michael Elkins mutt dude -blong@fiction.net Brandon Long mutt and more -roessler@guug.de Thomas Roessler mutt pgp - - - - - There are two mechanisms for accessing the query function of mutt. One - is to do a query from the index menu using the query function (default: - Q). - This will prompt for a query, then bring up the query menu which will - list the matching responses. From the query menu, you can select - addresses to create aliases, or to mail. You can tag multiple - addressesto mail, start a new query, or have a new query appended to - the current - responses. - - - - The other mechanism for accessing the query function is for address - completion, similar to the alias completion. In any prompt for address - entry, you can use the complete-query function (default: ˆT) to - run a - query based on the current address you have typed. Like aliases, mutt - will look for what you have typed back to the last space or comma. If - there is a single response for that query, mutt will expand the address - in place. If there are multiple responses, mutt will activate the - querymenu. At the query menu, you can select one or more addresses to - be - added to the prompt. - - - - - - - - - - Mailbox Formats - - - Mutt-ng supports reading and writing of four different mailbox formats: - mbox, MMDF, MH and Maildir. The mailbox type is autodetected, so there - is no need to use a flag for different mailbox types. When creating - newmailboxes, Mutt-ng uses the default specified with the - mbox-type - - variable. - - - - mbox. This is the most widely used - mailbox format for UNIX. All - messages are stored in a single file. Each message has a line of the - form: - - - - - -From me@cs.hmc.edu Fri, 11 Apr 1997 11:44:56 PST - - - - - to denote the start of a new message (this is often referred to as the - ``From_'' line). - - - - MMDF. This is a variant of the - mbox - - format. Each message is - surrounded by lines containing ``ˆAˆAˆAˆA'' (four - control-A's). - - - - MH. A radical departure from - mbox - - and MMDF, a mailbox - consists of a directory and each message is stored in a separate file. - The filename indicates the message number (however, this is may not - correspond to the message number Mutt-ng displays). Deleted messages - arerenamed with a comma (,) prepended to the filename. - Note: - - Mutt - detects this type of mailbox by looking for either - .mh_sequences - - or .xmhcache (needed to distinguish normal - directories from MH - mailboxes). - - - - Maildir. The newest of the mailbox - formats, used by the Qmail MTA (a - replacement for sendmail). Similar to MH, except - that it adds three - subdirectories of the mailbox: tmp, new and - cur - - .Filenames - for the messages are chosen in such a way they are unique, even when - twoprograms are writing the mailbox over NFS, which means that no file - locking - is needed. - - - - - - - - - - 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. - - - - - - - - - ! -- refers to your spoolfile - (incoming) mailbox - - - - - - > -- refers to your mbox file - - - - - - < -- refers to your record file - - - - - - ˆ -- refers to the current mailbox - - - - - - - or !! -- refers to the file you've last visited - - - - - - ˜ -- refers to your home directory - - - - - - = or + -- refers to your folder - directory - - - - - - @alias -- refers to the - save-hook - - as determined by the address of the alias - - - - - - - - - - - - - - - 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 - inthe ``Reply-To'' field, or reply directly to the address given in the - ``From'' field. When set to yes, the ``Reply-To'' - field will be used when - present. - - - - The ``X-Label:'' header field can be used to further identify mailing - lists or list subject matter (or just to annotate messages - individually). The index-format - variable's ``%y'' and - ``%Y'' escapes can be used to expand ``X-Label:'' fields in the - index, and Mutt-ng's pattern-matcher can match regular expressions to - ``X-Label:'' fields with the ``˜y'' selector. ``X-Label:'' is - not a - standard message header field, but it can easily be inserted by - procmailand other mail filtering agents. - - - - Lastly, Mutt-ng has the ability to sort the - mailbox into - threads. A thread is a group of - messages which all relate to the same - subject. This is usually organized into a tree-like structure where a - message and all of its replies are represented graphically. If you've - ever - used a threaded news client, this is the same concept. It makes - dealingwith large volume mailing lists easier because you can easily - delete - uninteresting threads and quickly find topics of value. - - - - - - - - - - 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. - - - - 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. - - - - - - Breaking threads - - - On mailing lists, some people are in the bad habit of starting a new - discussion by hitting "reply" to any message from the list and - changing - the subject to a totally unrelated one. - You can fix such threads by using the ``break-thread'' function - (boundby default to #), which will turn the subthread starting - from the - current message into a whole different thread. - - - - - - - - - - - - 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: - - - - - - - - - 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. - - - - - - The SMTP support via libESMTP supports it, too. - - - - - - - - - To support this, there are two variables: - - - - - - - - - dsn-notify is used - to request receipts for different results (such as failed - message,message delivered, etc.). - - - - - - - dsn-return requests - how much of your message should be returned with the receipt - (headers or full message). - - - - - - - - - - Please see the reference chapter for possible values. - - - - - - - - - - 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 - - - - - - - - - - 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 - convertpaths 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 - tov12.250, the server has been reported to disconnect a client if - another client - selects the same folder. - - - - 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: - - - - - - 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. - - - - - - For the case where an entry can contain both messages and - subfolders, the selection key (bound to enter by default) - will choose to descend into the subfolder view. If you wish to - view - the messages in that folder, you must use view-file instead - (bound to space by default). - - - - - - You can 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). - - - - - - - - - - - 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 - libraryinstalled on your system and compile mutt with the - --with-sasl - - flag. - - - - Mutt-ng will try whichever methods are compiled in and available on - the server, - in the following order: SASL, ANONYMOUS, GSSAPI, CRAM-MD5, LOGIN. - - - - There are a few variables which control authentication: - - - - - - 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}). - - - - - - imap-pass - a - password which you may preset, used by all authentication - methods where - a password is needed. - - - - - - imap-authenticators - - a colon-delimited list of IMAP - authentication methods to try, in the order you wish to try - them. If - specified, this overrides mutt's default (attempt everything, - in the order - listed above). - - - - - - - - - - - - - - - - - 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. - - - - 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: - - - - - - - - - Email addresses must be valid according to RFC 2822, see - <ftp://ftp.rfc-editor.org/in-notes/rfc2822.txt> - - - - - - - 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. - - - - - - - it's assumed that users are interested in reading their - own mail and mail from people who they have defined an alias - forso that those 2 groups of messages are excluded from the - strict - rules. - - - - - - - - - - - - - - - - - - - - - - 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 - ifit 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. - - - - - - 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"' - - - - - - - - - - - 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 - - - - - - - - - - - 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. - - - - 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. - - - - - - 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. - - - - - - 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 - beingappended. - - - - 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-hook - - respectively) each time you will add to it. - - - - - - 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 - usethe 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 - thinkabout the security aspects of this. - - - - - - - - - - - - - - -
- - - Mutt-ng's MIME Support - - - Quite a bit of effort has been made to make Mutt-ng the premier text-mode - MIME MUA. Every effort has been made to provide the functionality that - the discerning MIME user requires, and the conformance to the standards - wherever possible. When configuring Mutt-ng for MIME, there are two - extratypes of configuration files which Mutt-ng uses. One is the - mime.types file, which contains the mapping of file - extensions to - IANA MIME types. The other is the mailcap file, which - specifies - the external commands to use for handling specific MIME types. - - - - 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. - - - - 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) --] - - - - - - - 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 - ofthe attachments in a message. From the attachment menu, you can - save, - print, pipe, delete, and view attachments. You can apply these - operations to a group of attachments at once, by tagging the - attachments - and by using the ``tag-prefix'' operator. You can also reply to the - current message from this menu, and only the current attachment (or - the - attachments tagged) will be quoted in your reply. You can view - attachments as text, or view them using the mailcap viewer - definition. - - - - 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. - - - - - - 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). - - - - - - - - - - - - - MIME Type configuration with <literal>mime.types</literal> - - - - 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. - - - - - - - - - - - MIME Viewer configuration with <literal>mailcap</literal> - - - - 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. - - - - 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 - dividedby 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, - youjust 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. - - - - - - 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 - - - - - - - Advanced mailcap Usage - - - 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 - statusof the program to decide if it will ask you to press - a key after the - external program has exited. In all other situations it - will not prompt - you for a key. - - - - - 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. - - - - - - - - - - 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. - - - - - - 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. - - - - - - - - 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 - - - - - - - - - - - - - MIME Autoview - - - In addition to explicitly telling Mutt-ng to view an attachment with - theMIME 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. - - - - - - - - - - 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 - typesis 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 - willlook for any type it knows how to handle. - - - - To remove a MIME type from the alternative_order list, use the - unalternative_order command. - - - - - - - - - - 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 - todeal 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. - - - - - - - - - - - - - - - - Security Considerations - - - 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. - - - - 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. - - - - - - 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. - - - - - - Information Leaks - - - 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. - - - - - - 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 - - - - - - - - - be less strict when interpreting these links by - prepending a X-Mailto- string to all header - fields - embedded in such a link and - - - - - - - turn on the edit-headers - variable by - force to let the user see all the headers - (because they still may leak information.) - - - - - - - - - - - - - - External applications - - - Mutt-ng in many places has to rely on external applications or - for convenience supports mechanisms involving external - applications. - - - - 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... - - - - - - - - - manually select trustworth applications with a reasonable - calling sequence - - - - - - - periodically check the contents of mailcap files, - especially after software installations or upgrades - - - - - - - keep the software packages referenced in the mailcap file up to - date - - - - - - - leave the mailcap-sanitize variable in its default - state to restrict mailcap expandos to a safe set of characters - - - - - - - - - - - - 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. - - - - - - - - - - Reference - - - 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. - - - - - - Mutt-NG Command Line Options - - - - Option - Description - - - - -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''. - - - - - - -
- - - Patterns - - - - - Patterns - - - - Pattern Modifier - Argument - Description - - - - ~A all messages - ~b EXPR messages which contain EXPR in the message body - ~B EXPR messages which contain EXPR in the whole message - ~c EXPR messages carbon-copied to EXPR - ~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 EXPR messages originating from EXPR - ~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 EXPR 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 EXPR messages having EXPR in the ``Subject'' field. - ~T tagged messages - ~t EXPR messages addressed to EXPR - ~U unread messages - ~u message is addressed to a subscribed mailing list - ~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 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. - - - - - - -
- - - Configuration Commands - - - The following are the commands understood by mutt. - - - - - - - - - - account-hook - - pattern command - - - - - - - alias - - key address [ , - address - - ,... ] - - - - - - - alias - - [ * | key ... ] - - - - - - - alternates - - regexp [ regexp - ... ] - - - - - - - alternates - - [ * | regexp ... ] - - - - - - - alternative-order - - mimetype [ mimetype ... ] - - - - - - - alternative-order - - mimetype [ mimetype ... ] - - - - - - - append-hook - - regexp command - - - - - - - auto-view - - mimetype [ mimetype ... ] - - - - - - - auto-view - - mimetype [ mimetype ... ] - - - - - - - bind - - map key - function - - - - - - - - charset-hook - - alias charset - - - - - - - close-hook - - regexp command - - - - - - - color - - object foreground - background - - [ regexp ] - - - - - - - color - - index pattern [ - pattern - - ... ] - - - - - - - exec - - function [ function ... ] - - - - - - - fcc-hook - - pattern mailbox - - - - - - - fcc-save-hook - - pattern mailbox - - - - - - - folder-hook - - pattern command - - - - - - - hdr-order - - header [ header - ... ] - - - - - - - hdr-order - - header [ header - ... ] - - - - - - - charset-hook - - charset local-charset - - - - - - - ignore - - pattern [ pattern - ... ] - - - - - - - ignore - - pattern [ pattern - ... ] - - - - - - - lists - - regexp [ regexp - ... ] - - - - - - - lists - - regexp [ regexp - ... ] - - - - - - - macro - - menu key - sequence - - [ description ] - - - - - - - mailboxes - - filename [ filename ... ] - - - - - - - mbox-hook - - pattern mailbox - - - - - - - message-hook - - pattern command - - - - - - - mime-lookup - - mimetype [ mimetype ... ] - - - - - - - mime-lookup - - mimetype [ mimetype ... ] - - - - - - - color - - object attribute [ regexp ] - - - - - - - color - - index pattern [ - pattern - - ... ] - - - - - - - my-hdr - - string - - - - - - - my-hdr - - field [ field ... - ] - - - - - - - open-hook - - regexp command - - - - - - - crypt-hook - - pattern key-id - - - - - - - push - - string - - - - - - - set - - variable [variable - ... ] - - - - - - - save-hook - - regexp filename - - - - - - - score-command - - pattern value - - - - - - - score-command - - pattern [ pattern - ... ] - - - - - - - send-hook - - regexp command - - - - - - - reply-hook - - regexp command - - - - - - - set - - [no|inv]variable[= - value - - ] [ variable ... ] - - - - - - - set - - variable [variable - ... ] - - - - - - - source - - filename - - - - - - - spam - - pattern format - - - - - - - spam - - pattern - - - - - - - lists - - regexp [ regexp - ... ] - - - - - - - lists - - regexp [ regexp - ... ] - - - - - - - set - - variable [variable - ... ] - - - - - - - unhook - - hook-type - - - - - - - - - - - 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: - - - - - - - Obsolete Variables - - - - Old Name - New Name - - - - edit_hdrsedit_headers - forw_decodeforward_decode - forw_formatforward_format - forw_quoteforward_quote - hdr_formatindex_format - indent_strindent_string - mime_fwdmime_forward - msg_formatmessage_format - pgp_autosigncrypt_autosign - pgp_autoencryptcrypt_autoencrypt - pgp_replyencryptcrypt_replyencrypt - pgp_replysigncrypt_replysign - pgp_replysignencryptedcrypt_replysignencrypted - pgp_verify_sigcrypt_verify_sig - pgp_create_traditionalpgp_autoinline - pgp_auto_traditionalpgp_replyinline - forw_decryptforward_decrypt - smime_sign_assmime_default_key - post_indent_strpost_indent_string - print_cmdprint_command - shorten_hierarchysidebar_shorten_hierarchy - ask_followup_tonntp_ask_followup_to - ask_x_comment_tonntp_ask_x_comment_to - catchup_newsgroupnntp_catchup - followup_to_posternntp_followup_to_poster - group_index_formatnntp_group_index_format - inewsnntp_inews - mime_subjectnntp_mime_subject - news_cache_dirnntp_cache_dir - news_servernntp_host - newsrcnntp_newsrc - nntp_pollnntp_mail_check - pop_checkintervalpop_mail_check - post_moderatednntp_post_moderated - save_unsubscribednntp_save_unsubscribed - show_new_newsnntp_show_new_news - show_only_unreadnntp_show_only_unread - x_comment_tonntp_x_comment_to - smtp_auth_usernamesmtp_user - smtp_auth_passwordsmtp_pass - user_agentagent_string - - -
- -
- - - The contrib subdirectory contains a script named - update-config.pl which eases migration. - - - - A complete list of current variables follows. -