X-Git-Url: https://git.llucax.com/software/mutt-debian.git/blobdiff_plain/19304f7c526fbe36ba0db2fb80bcaf3bd974d81d..6e837c0f6b60f139c038b25a5005cc923af8674e:/doc/advancedusage.html diff --git a/doc/advancedusage.html b/doc/advancedusage.html index 7b919d9..336aa19 100644 --- a/doc/advancedusage.html +++ b/doc/advancedusage.html @@ -1,27 +1,31 @@ -Chapter 4. Advanced Usage

Chapter 4. Advanced Usage

Table of Contents

1. Regular Expressions
2. Patterns: Searching, Limiting and Tagging
2.1. Pattern Modifier
2.2. Simple Patterns
2.3. Complex Patterns
2.4. Searching by Date
3. Using Tags
4. Using Hooks
4.1. Message Matching in Hooks
5. External Address Queries
6. Mailbox Formats
7. Mailbox Shortcuts
8. Handling Mailing Lists
9. Handling multiple folders
10. Editing threads
10.1. Linking threads
10.2. Breaking threads
11. Delivery Status Notification (DSN) Support
12. Start a WWW Browser on URLs

1. Regular Expressions

+

Chapter 4. Advanced Usage

1. Regular Expressions

All string patterns in Mutt including those in more complex patterns must be specified using regular expressions (regexp) in the “POSIX extended” syntax (which @@ -31,7 +35,7 @@ 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

-Note that “\” +“\” must be quoted if used for a regular expression in an initialization command: “\\”.

@@ -39,7 +43,7 @@ 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

-Note that the regular expression can be enclosed/delimited by either " +The regular expression can be enclosed/delimited by either " or ' which is useful if the regular expression includes a white-space character. See Syntax of Initialization Files for more information on " and ' delimiter processing. To match a @@ -56,8 +60,8 @@ 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] +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 @@ -76,8 +80,8 @@ 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]. +example, [[:digit:]] is equivalent to +[0-9].

Two additional special sequences can appear in character lists. These apply to non-ASCII character sets, which can have single symbols (called @@ -87,15 +91,15 @@ 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 +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 +[[=e=]] is a regexp that matches any of “è”, “é” and “e”.

A regular expression matching a single character may be followed by one @@ -113,52 +117,56 @@ 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 with the GNU rx package, the +If you compile Mutt with the included regular expression engine, the following operators may also be used in regular expressions as described in Table 4.3, “GNU regular expression extensions”.

Table 4.3. GNU regular expression extensions

ExpressionDescription
\\yMatches the empty string at either the beginning or the end of a word
\\BMatches 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
\\wMatches any word-constituent character (letter, digit, or underscore)
\\WMatches any character that is not word-constituent
\\`Matches the empty string at the beginning of a buffer (string)
\\'Matches the empty string at the end of a buffer

Please note however that these operators are not defined by POSIX, so they may or may not be available in stock libraries on various systems. -

2. Patterns: Searching, Limiting and Tagging

+

2. Patterns: Searching, Limiting and Tagging

2.1. Pattern Modifier

Many of Mutt's commands allow you to specify a pattern to match (limit, tag-pattern, delete-pattern, etc.). Table 4.4, “Pattern modifiers” shows several ways to select messages. -

Table 4.4. Pattern modifiers

Pattern modifierDescription
~Aall messages
~b EXPRmessages which contain EXPR in the message body
=b STRINGmessages which contain STRING in the message body. If IMAP is enabled, searches for STRING on the server, rather than downloading each message and searching it locally.
~B EXPRmessages which contain EXPR in the whole message
~c EXPRmessages carbon-copied to EXPR
%c GROUPmessages carbon-copied to any member of GROUP
~C EXPRmessages either to: or cc: EXPR
%C GROUPmessages either to: or cc: to any member of GROUP
~d [MIN]-[MAX]messages with “date-sent” in a Date range
~Ddeleted messages
~e EXPRmessages which contains EXPR in the “Sender” field
%e GROUPmessages which contain a member of GROUP in the “Sender” field
~Eexpired messages
~Fflagged messages
~f EXPRmessages originating from EXPR
%f GROUPmessages originating from any member of GROUP
~gcryptographically signed messages
~Gcryptographically encrypted messages
~h EXPRmessages which contain EXPR in the message header
~H EXPRmessages with a spam attribute matching EXPR
~i EXPRmessages which match EXPR in the “Message-ID” field
~kmessages which contain PGP key material
~L EXPRmessages either originated or received by EXPR
%L GROUPmessage either originated or received by any member of GROUP
~lmessages addressed to a known mailing list
~m [MIN]-[MAX]messages in the range MIN to MAX *)
~n [MIN]-[MAX]messages with a score in the range MIN to MAX *)
~Nnew messages
~Oold messages
~pmessages addressed to you (consults alternates)
~Pmessages from you (consults alternates)
~Qmessages which have been replied to
~r [MIN]-[MAX]messages with “date-received” in a Date range
~Rread messages
~s EXPRmessages having EXPR in the “Subject” field.
~Ssuperseded messages
~t EXPRmessages addressed to EXPR
~Ttagged messages
~umessages addressed to a subscribed mailing list
~Uunread messages
~vmessages part of a collapsed thread.
~Vcryptographically verified messages
~x EXPRmessages which contain EXPR in the “References” field
~X [MIN]-[MAX]messages with MIN to MAX attachments *)
~y EXPRmessages 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)
~(PATTERN)messages in threads +

Table 4.4. Pattern modifiers

Pattern modifierDescription
~Aall messages
~b EXPRmessages which contain EXPR in the message body
=b STRINGmessages which contain STRING in the message body. If IMAP is enabled, searches for STRING on the server, rather than downloading each message and searching it locally.
~B EXPRmessages which contain EXPR in the whole message
~c EXPRmessages carbon-copied to EXPR
%c GROUPmessages carbon-copied to any member of GROUP
~C EXPRmessages either to: or cc: EXPR
%C GROUPmessages either to: or cc: to any member of GROUP
~d [MIN]-[MAX]messages with “date-sent” in a Date range
~Ddeleted messages
~e EXPRmessages which contains EXPR in the “Sender” field
%e GROUPmessages which contain a member of GROUP in the “Sender” field
~Eexpired messages
~Fflagged messages
~f EXPRmessages originating from EXPR
%f GROUPmessages originating from any member of GROUP
~gcryptographically signed messages
~Gcryptographically encrypted messages
~h EXPRmessages which contain EXPR in the message header
~H EXPRmessages with a spam attribute matching EXPR
~i EXPRmessages which match EXPR in the “Message-ID” field
~kmessages which contain PGP key material
~L EXPRmessages either originated or received by EXPR
%L GROUPmessage either originated or received by any member of GROUP
~lmessages addressed to a known mailing list
~m [MIN]-[MAX]messages in the range MIN to MAX *)
~n [MIN]-[MAX]messages with a score in the range MIN to MAX *)
~Nnew messages
~Oold messages
~pmessages addressed to you (consults alternates)
~Pmessages from you (consults alternates)
~Qmessages which have been replied to
~r [MIN]-[MAX]messages with “date-received” in a Date range
~Rread messages
~s EXPRmessages having EXPR in the “Subject” field.
~Ssuperseded messages
~t EXPRmessages addressed to EXPR
~Ttagged messages
~umessages addressed to a subscribed mailing list
~Uunread messages
~vmessages part of a collapsed thread.
~Vcryptographically verified messages
~x EXPRmessages which contain EXPR in the “References” or “In-Reply-To” field
~X [MIN]-[MAX]messages with MIN to MAX attachments *)
~y EXPRmessages 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)
~(PATTERN)messages in threads containing messages matching PATTERN, e.g. all threads containing messages from you: ~(~P)

Where EXPR is a -regular expression. Special attention has to be -made when using regular expressions inside of patterns. Specifically, +regular expression. +

+*) The forms “<[MAX]”, “>[MIN]”, +“[MIN]-” and “-[MAX]” +are allowed, too. +

+**) The suffixes “K” and “M” are allowed to specify kilobyte and megabyte respectively. +

+Special attention has to be +payed when using regular expressions inside of patterns. Specifically, Mutt's parser for these patterns will strip one level of backslash (“\”), which is normally used for quoting. If it is your intention to use a backslash in the regular expression, you will need to use two backslashes -instead (“\\”). You can force mutt to treat EXPR as a simple string +instead (“\\”). You can force Mutt to treat EXPR as a simple string instead of a regular expression by using = instead of ˜ in the pattern name. For example, =b *.* will find all messages that contain the literal string “*.*”. Simple string matches are less powerful than regular expressions but can be considerably faster. This is especially true for IMAP folders, because string matches can be performed on the server instead of by fetching every message. IMAP treats =h specially: -it must be of the form "header: substring" and will not partially +it must be of the form “header: substring” and will not partially match header names. The substring part may be omitted if you simply wish to find messages containing a particular header without regard to its value.

-*) The forms “<[MAX]”, “>[MIN]”, -“[MIN]-” and “-[MAX]” -are allowed, too. -

2.1. Pattern Modifier

Note

-Note that patterns matching 'lists' of addresses (notably c, C, p, P and t) +Patterns matching lists of addresses (notably c, C, p, P and t) match if there is at least one match in the whole list. If you want to make sure that all elements of that list match, you need to prefix your pattern with “^”. This example matches all mails which only has recipients from Germany. -

+

Example 4.1. Matching all addresses in address lists

 ^~C \.de$
-

2.2. Simple Patterns

-Mutt supports two versions of so called “simple searches” which are +


2.2. Simple Searches

+Mutt supports two versions of so called “simple searches”. These are issued if the query entered for searching, limiting and similar -operations does not seem to be a valid pattern (i.e. it does not contain +operations does not seem to contain a valid pattern modifier (i.e. it does not contain one of these characters: “˜”, “=” or “%”). If the query is supposed to contain one of these special characters, they must be escaped by prepending a backslash (“\”). @@ -169,37 +177,37 @@ If that is the case, Mutt will use the shown pattern modifier instead. If a keyword would conflict with your search keyword, you need to turn it into a regular expression to avoid matching the keyword table. For example, if you want to find all messages matching “flag” -(using $simple_search) +(using $simple_search) but don't want to match flagged messages, simply search for “[f]lag”.

Table 4.5. Simple search keywords

KeywordPattern modifier
all~A
.~A
^~A
del~D
flag~F
new~N
old~O
repl~Q
read~R
tag~T
unread~U

The second type of simple search is to build a complex search -pattern using $simple_search +pattern using $simple_search as a template. Mutt will insert your query properly quoted and search for the composed complex query. -

2.3. Complex Patterns

+

2.3. Nesting and Boolean Operators

Logical AND is performed by specifying more than one criterion. For example:

 ~t mutt ~f elkins
 

would select messages which contain the word “mutt” in the list of -recipients and that have the word “elkins” in the “From” header +recipients and that have the word “elkins” in the “From” header field.

Mutt also recognizes the following operators to create more complex search patterns:

  • -! -- logical NOT operator +! — logical NOT operator

  • -| -- logical OR operator +| — logical OR operator

  • -() -- logical grouping operator +() — logical grouping operator

Here is an example illustrating a complex search pattern. This pattern will select all messages which do not contain “mutt” in the “To” or “Cc” field and which are from “elkins”. -

Example 4.1. Using boolean operators in patterns

+

Example 4.2. Using boolean operators in patterns

 !(~t mutt|~c mutt) ~f elkins
 

Here is an example using white space in the regular expression (note @@ -210,17 +218,16 @@ or “Ed +SomeoneElse”: '~s "^Junk +From +Me$" ~f ("Jim +Somebody"|"Ed +SomeoneElse")'

Note

If a regular expression contains parenthesis, or a vertical bar -("|"), you must enclose the expression in double or single quotes since +("|"), you must enclose the expression in double or single quotes since those characters are also used to separate different parts of Mutt's pattern language. For example: ~f "me@(mutt\.org|cs\.hmc\.edu)" -

Without the quotes, the parenthesis wouldn't end. This would be separated to two OR'd patterns: ˜f me@(mutt\.org and cs\.hmc\.edu). They are never what you want. -

2.4. Searching by Date

+

2.4. Searching by Date

Mutt supports two types of dates, absolute and relative. -

-Absolute. Dates must be in DD/MM/YY format (month and year are +

2.4.1. Absolute Dates

+Dates must be in DD/MM/YY format (month and year are optional, defaulting to the current month and year). An example of a valid range of dates is:

@@ -232,7 +239,7 @@ messages before the given date will be se
 date will be selected.  If you specify a single date with no dash (“-”),
 only messages sent on the given date will be selected.
 

-Error Margins. You can add error margins to absolute dates. +You can add error margins to absolute dates. An error margin is a sign (+ or -), followed by a digit, followed by one of the units in Table 4.6, “Date units”. As a special case, you can replace the sign by a “*” character, which is equivalent to giving identical plus and minus error margins. @@ -241,15 +248,15 @@ Example: To select any messages two weeks around January 15, 2001, you'd use the following pattern:

 Limit to messages matching: ~d 15/1/2001*2w
-

-Relative. This type of date is relative to the current date, and may +

2.4.2. Relative Dates

+This type of date is relative to the current date, and may be specified as:

  • ->offset (messages older than offset units) +>offset for messages older than offset units

  • -<offset (messages newer than offset units) +<offset for messages newer than offset units

  • -=offset (messages exactly offset units old) +=offset for messages exactly offset units old

offset is specified as a positive number with one of the units from Table 4.6, “Date units”.

@@ -258,10 +265,10 @@ Example: to select messages less than 1 month old, you would use Limit to messages matching: ~d <1m

Note

All dates used when searching are relative to the -local time zone, so unless you change the setting of your $index_format to include a -%[...] format, these are not the dates shown +local time zone, so unless you change the setting of your $index_format to include a +%[...] format, these are not the dates shown in the main index. -

3. Using Tags

+

3. 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 @@ -274,17 +281,17 @@ 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 +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 +manner. If the $auto_tag variable is set, the next operation applies to the tagged messages automatically, without requiring the “tag-prefix”.

-In macros or push commands, -you can use the “tag-prefix-cond” operator. If there are no tagged -messages, mutt will "eat" the rest of the macro to abort it's execution. -Mutt will stop "eating" the macro when it encounters the “end-cond” -operator; after this operator the rest of the macro will be executed as +In macros or push commands, +you can use the <tag-prefix-cond> operator. If there are no tagged +messages, Mutt will “eat” the rest of the macro to abort it's execution. +Mutt will stop “eating” the macro when it encounters the <end-cond> +operator; after this operator the rest of the macro will be executed as normal.

4. Using Hooks

A hook is a concept found in many other programs which allows you to @@ -293,37 +300,55 @@ you may wish to tailor your configuration based upon which mailbox you are reading, or to whom you are sending mail. In the Mutt world, a hook consists of a regular expression or pattern along with a -configuration option/command. See +configuration option/command. See:

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: -

Example 4.2. Combining send-hook and my_hdr

+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  of that type to restore configuration defaults.
+

Example 4.3. Specifying a “default” hook

 send-hook . 'unmy_hdr From:'
 send-hook ~C'^b@b\.b$' my_hdr from: c@c.c
-

4.1. Message Matching in Hooks

-Hooks that act upon messages (message-hook, reply-hook, -send-hook, send2-hook, save-hook, fcc-hook) are evaluated in a +


+In Example 4.3, “Specifying a default hook”, by default the value of +$from +and $realname +is not overridden. When sending messages either To: or Cc: +to <b@b.b>, the From: header is changed to +<c@c.c>. +

4.1. Message Matching in Hooks

+Hooks that act upon messages (message-hook, reply-hook, +send-hook, send2-hook, save-hook, fcc-hook) are evaluated in a slightly different manner. For the other types of hooks, a regular expression is sufficient. But in dealing with messages a finer grain of control is @@ -334,7 +359,7 @@ Mutt allows the use of the limiting or searching the mailbox, except that you are restricted to those -operators which match information mutt extracts from the header of +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 @@ -349,14 +374,14 @@ 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 will translate your pattern into the full language, using the translation specified by the -$default_hook variable. 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 +$default_hook that is in effect at that time will be used.

5. External Address Queries

Mutt supports connecting to external directory databases such as LDAP, -ph/qi, bbdb, or NIS through a wrapper script which connects to mutt -using a simple interface. Using the $query_command variable, you specify the wrapper +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'"
@@ -374,7 +399,7 @@ me@cs.hmc.edu           Michael Elkins  mutt dude
 blong@fiction.net       Brandon Long    mutt and more
 roessler@does-not-exist.org        Thomas Roessler mutt pgp
 

-There are two mechanisms for accessing the query function of mutt. One +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 @@ -385,80 +410,107 @@ 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 +query based on the current address you have typed. Like aliases, Mutt will look for what you have typed back to the last space or comma. If -there is a single response for that query, mutt will expand the address -in place. If there are multiple responses, mutt will activate the query +there is a single response for that query, Mutt will expand the address +in place. If there are multiple responses, Mutt will activate the query menu. At the query menu, you can select one or more addresses to be added to the prompt.

6. Mailbox Formats

-Mutt supports reading and writing of four different mailbox formats: +Mutt supports reading and writing of four different local mailbox formats: mbox, MMDF, MH and Maildir. The mailbox type is autodetected, so there is no need to use a flag for different mailbox types. When creating new -mailboxes, Mutt uses the default specified with the $mbox_type variable. +mailboxes, Mutt uses the default specified with the +$mbox_type variable. A +short description of the formats follows.

-mbox. This is the most widely used mailbox format for UNIX. All +mbox. This is a 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 +“From_” line). The mbox format requires mailbox +locking, is prone to mailbox corruption with concurrently writing +clients or misinterpreted From_ lines. Depending on the +environment, new mail detection can be unreliable. Mbox folders are fast +to open and easy to archive. +

+MMDF. This is a variant of +the mbox format. Each message is surrounded by +lines containing “^A^A^A^A” (four +control-A's). The same problems as for mbox apply (also with finding the +right message separator as four control-A's may appear in message +bodies). +

+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 displays). Deleted messages are -renamed with a comma (,) prepended to the filename. Mutt +renamed with a comma (“,”) prepended to the filename. 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 +or .xmhcache files (needed to distinguish normal directories from MH +mailboxes). MH is more robust with concurrent clients writing the mailbox, +but still may suffer from lost flags; message corruption is less likely +to occur than with mbox/mmdf. It's usually slower to open compared to +mbox/mmdf since many small files have to be read (Mutt provides +Section 7.1, “Header Caching” to greatly speed this process up). +Depending on the environment, MH is not very disk-space efficient. +

+Maildir. The newest of the mailbox formats, used by the Qmail MTA (a replacement for sendmail). Similar to MH, except that it adds three subdirectories of the mailbox: tmp, new and cur. Filenames for the messages are chosen in such a way they are unique, even when two programs are writing the mailbox over NFS, which means that no file locking -is needed. +is needed and corruption is very unlikely. Maildir maybe +slower to open without caching in Mutt, it too is not very +disk-space efficient depending on the environment. Since no additional +files are used for metadata (which is embedded in the message filenames) +and Maildir is locking-free, it's easy to sync across different machines +using file-level synchronization tools.

7. 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. +path or in path-related configuration variables. Note that these only +work at the beginning of a string.

  • -! -- refers to your $spoolfile (incoming) mailbox +! — refers to your $spoolfile (incoming) mailbox

  • -> -- refers to your $mbox file +> — refers to your $mbox file

  • -< -- refers to your $record file +< — refers to your $record file

  • -^ -- refers to the current mailbox +^ — refers to the current mailbox

  • -- or !! -- refers to the file you've last visited +- or !! — refers to the file you've last visited

  • -˜ -- refers to your home directory +˜ — refers to your home directory

  • -= or + -- refers to your $folder directory += or + — refers to your $folder directory

  • -@alias -- refers to the default save folder as determined by the address of the alias -

8. Handling Mailing Lists

+@alias — refers to the default save folder as determined by the address of the alias +

+For example, to store a copy of outgoing messages in the folder they +were composed in, +a folder-hook can +be used to set $record: +

+folder-hook . 'set record=^'

8. Handling Mailing Lists

Mutt has a few configuration options that make dealing with large amounts of mail easier. The first thing you must do is to let Mutt know what addresses you consider to be mailing lists (technically this does not have to be a mailing list, but that is what it is most often used for), and what lists you are subscribed to. This is -accomplished through the use of the lists and subscribe commands in your muttrc. +accomplished through the use of the lists and subscribe commands in your .muttrc.

Now that Mutt knows what your mailing lists are, it can do several things, the first of which is the ability to show the name of a list through which you received a message (i.e., of a subscribed list) in the 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 +personal and list mail in the same mailbox. In the $index_format variable, the expando “%L” +will print 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). +field (otherwise it prints 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 @@ -471,7 +523,7 @@ specified by Mail-Followup-To, see below).

Mutt also supports the Mail-Followup-To header. When you send a message to a list of recipients which includes one or several -subscribed mailing lists, and if the $followup_to option is set, mutt will generate +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 @@ -480,9 +532,9 @@ 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 +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

@@ -495,7 +547,7 @@ The other method some mailing list admins use is to generate a than the author of the message. This can create problems when trying to reply directly to the author in private, since most mail clients will automatically reply to the address given in the “Reply-To” -field. Mutt uses the $reply_to +field. Mutt uses the $reply_to variable to help decide which address to use. If set to ask-yes or ask-no, you will be prompted as to whether or not you would like to use the address given in @@ -505,15 +557,15 @@ 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 +individually). The $index_format variable's “%y” and +“%Y” expandos can be used to expand “X-Label:” fields in the index, and Mutt's pattern-matcher can match regular expressions to “X-Label:” fields with the “˜y” selector. “X-Label:” is not a standard message header field, but it can easily be inserted by procmail and other mail filtering agents.

-Lastly, Mutt has the ability to sort the mailbox into -threads. A thread is a group of messages which all relate to the same +Lastly, Mutt has the ability to sort the mailbox into +threads. A thread is a group of messages which all relate to the same subject. This is usually organized into a tree-like structure where a message and all of its replies are represented graphically. If you've ever used a threaded news client, this is the same concept. It makes dealing @@ -521,21 +573,21 @@ with large volume mailing lists easier because you can easily delete uninteresting threads and quickly find topics of value.

9. Handling multiple folders

Mutt supports setups with multiple folders, allowing all of them to -be monitored for new mail (see Section 14, “Monitoring incoming mail” for details). +be monitored for new mail (see Section 14, “Monitoring Incoming Mail” for details).

When in the index menu and being idle (also see -$timeout), Mutt periodically checks +$timeout), Mutt periodically checks for new mail in all folders which have been configured via the -mailboxes command. The interval depends on the folder +mailboxes command. The interval depends on the folder type: for local/IMAP folders it consults -$mail_check and -$pop_checkinterval +$mail_check and +$pop_checkinterval for POP folders.

Outside the index menu the directory browser supports checking for new mail using the <check-new> function which is unbound by default. Pressing TAB will bring up a -menu showing the files specified by the mailboxes command, +menu showing the files specified by the mailboxes command, and indicate which contain new messages. Mutt will automatically enter this mode when invoked from the command line with the -y option.

@@ -546,31 +598,31 @@ the bottom of the screen.

For the index, by default Mutt displays the number of mailboxes with new mail in the status bar, please refer to the -$index_format +$status_format variable for details.

When changing folders, Mutt fills the prompt with the first folder from the mailboxes list containing new mail (if any), pressing space will cycle through folders with new mail. -

10. Editing threads

+

10. Editing Threads

Mutt has the ability to dynamically restructure threads that are broken either by misconfigured software or bad behavior from some -correspondents. This allows to clean your mailboxes formats) from these +correspondents. This allows to clean your mailboxes from these annoyances which make it hard to follow a discussion. -

10.1. Linking threads

-Some mailers tend to "forget" to correctly set the "In-Reply-To:" and -"References:" headers when replying to a message. This results in broken +

10.1. Linking Threads

+Some mailers tend to “forget” to correctly set the “In-Reply-To:” and +“References:” headers when replying to a message. This results in broken discussions because Mutt 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. +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. -

10.2. Breaking threads

+<tag-prefix> command (';') or the $auto_tag option. +

10.2. Breaking Threads

On mailing lists, some people are in the bad habit of starting a new -discussion by hitting "reply" to any message from the list and changing +discussion by hitting “reply” to any message from the list and changing the subject to a totally unrelated one. You can fix such threads by using the <break-thread> function (bound by default to #), which will turn the subthread starting from the @@ -580,21 +632,21 @@ 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.”

-To support DSN, there are two variables. $dsn_notify is used to request receipts for +To support DSN, 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 +$dsn_return requests how much of your message should be returned with the receipt (headers or full message).

-When using $sendmail for mail +When using $sendmail for mail delivery, you need to use either Berkeley sendmail 8.8.x (or greater) a MTA supporting DSN command line options compatible to Sendmail: The -N and -R options can be used by the mail client to make requests as to what type of status messages should be returned. Please consider your MTA documentation whether DSN is supported.

-For SMTP delivery using $smtp_url, it depends on the -capabilities announced by the server whether mutt will attempt to +For SMTP delivery using $smtp_url, it depends on the +capabilities announced by the server whether Mutt will attempt to request DSN or not.

12. Start a WWW Browser on URLs

If a message contains URLs, it is efficient to get @@ -606,4 +658,28 @@ and the configuration commands:

 macro index \cb |urlview\n
 macro pager \cb |urlview\n
-
+

13. Miscellany

+This section documents various features that fit nowhere else. +

+Address normalization +

+Mutt normalizes all e-mail addresses to the simplest form possible. If +an address contains a realname, the form +Joe User <joe@example.com> is used and the +pure e-mail address without angle brackets otherwise, i.e. just +joe@example.com. +

+This normalization affects all headers Mutt generates including aliases. +

+Initial folder selection +

+The folder Mutt opens at startup is determined as follows: the folder +specified in the $MAIL environment variable if +present. Otherwise, the value of $MAILDIR is taken +into account. If that isn't present either, Mutt takes the user's +mailbox in the mailspool as determined at compile-time (which may also +reside in the home directory). The +$spoolfile setting overrides +this selection. Highest priority has the mailbox given with the +-f command line option. +