1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 4. Advanced Usage</title><meta name="generator" content="DocBook XSL Stylesheets V1.74.3" /><link rel="home" href="index.html" title="The Mutt E-Mail Client" /><link rel="up" href="index.html" title="The Mutt E-Mail Client" /><link rel="prev" href="configuration.html" title="Chapter 3. Configuration" /><link rel="next" href="mimesupport.html" title="Chapter 5. Mutt's MIME Support" /><style xmlns="" type="text/css">
4 body { margin-left:2%; margin-right:2%; font-family:serif; }
5 .toc, .list-of-tables, .list-of-examples { font-family:sans-serif; }
6 h1, h2, h3, h4, h5, h6 { font-family:sans-serif; }
7 p { text-align:justify; }
8 div.table p.title, div.example p.title { font-size:smaller; font-family:sans-serif; }
9 .email, .email a { font-family:monospace; }
10 div.table-contents table, div.informaltable table { border-collapse:collapse; border:1px solid #c0c0c0; }
11 div.table-contents table td, div.informaltable td, div.table-contents table th, div.informaltable table th { padding:5px; text-align:left; }
12 div.table-contents table th, div.informaltable table th {
13 font-family:sans-serif;
18 div.cmdsynopsis { border-left:1px solid #707070; padding-left:5px; }
19 li div.cmdsynopsis { border-left:none; padding-left:0px; }
20 pre.screen, div.note { background:#f0f0f0; border:1px solid #c0c0c0; padding:5px; margin-left:2%; margin-right:2%; }
21 div.example p.title { margin-left:2%; }
22 div.note h3 { font-size:small; font-style:italic; font-variant: small-caps; }
23 div.note h3:after { content: ":" }
24 div.note { margin-bottom: 5px; }
25 strong.command { font-family: monospace; font-weight: normal; }
26 tr { vertical-align: top; }
28 </style></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 4. Advanced Usage</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="configuration.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="mimesupport.html">Next</a></td></tr></table><hr /></div><div class="chapter" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="advancedusage"></a>Chapter 4. Advanced Usage</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="advancedusage.html#regexp">1. Regular Expressions</a></span></dt><dt><span class="sect1"><a href="advancedusage.html#patterns">2. Patterns: Searching, Limiting and Tagging</a></span></dt><dd><dl><dt><span class="sect2"><a href="advancedusage.html#patterns-modifier">2.1. Pattern Modifier</a></span></dt><dt><span class="sect2"><a href="advancedusage.html#simple-searches">2.2. Simple Searches</a></span></dt><dt><span class="sect2"><a href="advancedusage.html#complex-patterns">2.3. Nesting and Boolean Operators</a></span></dt><dt><span class="sect2"><a href="advancedusage.html#date-patterns">2.4. Searching by Date</a></span></dt></dl></dd><dt><span class="sect1"><a href="advancedusage.html#tags">3. Using Tags</a></span></dt><dt><span class="sect1"><a href="advancedusage.html#hooks">4. Using Hooks</a></span></dt><dd><dl><dt><span class="sect2"><a href="advancedusage.html#pattern-hook">4.1. Message Matching in Hooks</a></span></dt></dl></dd><dt><span class="sect1"><a href="advancedusage.html#query">5. External Address Queries</a></span></dt><dt><span class="sect1"><a href="advancedusage.html#mailbox-formats">6. Mailbox Formats</a></span></dt><dt><span class="sect1"><a href="advancedusage.html#shortcuts">7. Mailbox Shortcuts</a></span></dt><dt><span class="sect1"><a href="advancedusage.html#using-lists">8. Handling Mailing Lists</a></span></dt><dt><span class="sect1"><a href="advancedusage.html#handling-folders">9. Handling multiple folders</a></span></dt><dt><span class="sect1"><a href="advancedusage.html#editing-threads">10. Editing Threads</a></span></dt><dd><dl><dt><span class="sect2"><a href="advancedusage.html#link-threads">10.1. Linking Threads</a></span></dt><dt><span class="sect2"><a href="advancedusage.html#break-threads">10.2. Breaking Threads</a></span></dt></dl></dd><dt><span class="sect1"><a href="advancedusage.html#dsn">11. Delivery Status Notification (DSN) Support</a></span></dt><dt><span class="sect1"><a href="advancedusage.html#urlview">12. Start a WWW Browser on URLs</a></span></dt><dt><span class="sect1"><a href="advancedusage.html#misc-topics">13. Miscellany</a></span></dt></dl></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="regexp"></a>1. Regular Expressions</h2></div></div></div><p>
29 All string patterns in Mutt including those in more complex
30 <a class="link" href="advancedusage.html#patterns" title="2. Patterns: Searching, Limiting and Tagging">patterns</a> must be specified
31 using regular expressions (regexp) in the “<span class="quote">POSIX extended</span>” syntax (which
32 is more or less the syntax used by egrep and GNU awk). For your
33 convenience, we have included below a brief description of this syntax.
35 The search is case sensitive if the pattern contains at least one upper
36 case letter, and case insensitive otherwise.
37 </p><div class="note"><h3 class="title">Note</h3><p>
38 “<span class="quote">\</span>”
39 must be quoted if used for a regular expression in an initialization
40 command: “<span class="quote">\\</span>”.
42 A regular expression is a pattern that describes a set of strings.
43 Regular expressions are constructed analogously to arithmetic
44 expressions, by using various operators to combine smaller expressions.
45 </p><div class="note"><h3 class="title">Note</h3><p>
46 The regular expression can be enclosed/delimited by either "
47 or ' which is useful if the regular expression includes a white-space
48 character. See <a class="xref" href="configuration.html#muttrc-syntax" title="2. Syntax of Initialization Files">Syntax of Initialization Files</a>
49 for more information on " and ' delimiter processing. To match a
50 literal " or ' you must preface it with \ (backslash).
52 The fundamental building blocks are the regular expressions that match
53 a single character. Most characters, including all letters and digits,
54 are regular expressions that match themselves. Any metacharacter with
55 special meaning may be quoted by preceding it with a backslash.
57 The period “<span class="quote">.</span>” matches any single character. The caret “<span class="quote">^</span>” and
58 the dollar sign “<span class="quote">$</span>” are metacharacters that respectively match
59 the empty string at the beginning and end of a line.
61 A list of characters enclosed by “<span class="quote">[</span>” and “<span class="quote">]</span>” matches any
62 single character in that list; if the first character of the list
63 is a caret “<span class="quote">^</span>” then it matches any character <span class="emphasis"><em>not</em></span> in the
64 list. For example, the regular expression <span class="emphasis"><em>[0123456789]</em></span>
65 matches any single digit. A range of ASCII characters may be specified
66 by giving the first and last characters, separated by a hyphen
67 “<span class="quote">-</span>”. Most metacharacters lose their special meaning inside
68 lists. To include a literal “<span class="quote">]</span>” place it first in the list.
69 Similarly, to include a literal “<span class="quote">^</span>” place it anywhere but first.
70 Finally, to include a literal hyphen “<span class="quote">-</span>” place it last.
72 Certain named classes of characters are predefined. Character classes
73 consist of “<span class="quote">[:</span>”, a keyword denoting the class, and “<span class="quote">:]</span>”.
74 The following classes are defined by the POSIX standard in
75 <a class="xref" href="advancedusage.html#posix-regex-char-classes" title="Table 4.1. POSIX regular expression character classes">Table 4.1, “POSIX regular expression character classes”</a>
76 </p><div class="table"><a id="posix-regex-char-classes"></a><p class="title"><b>Table 4.1. POSIX regular expression character classes</b></p><div class="table-contents"><table summary="POSIX regular expression character classes" border="1"><colgroup><col /><col /></colgroup><thead><tr><th>Character class</th><th>Description</th></tr></thead><tbody><tr><td>[:alnum:]</td><td>Alphanumeric characters</td></tr><tr><td>[:alpha:]</td><td>Alphabetic characters</td></tr><tr><td>[:blank:]</td><td>Space or tab characters</td></tr><tr><td>[:cntrl:]</td><td>Control characters</td></tr><tr><td>[:digit:]</td><td>Numeric characters</td></tr><tr><td>[:graph:]</td><td>Characters that are both printable and visible. (A space is printable, but not visible, while an “<span class="quote">a</span>” is both)</td></tr><tr><td>[:lower:]</td><td>Lower-case alphabetic characters</td></tr><tr><td>[:print:]</td><td>Printable characters (characters that are not control characters)</td></tr><tr><td>[:punct:]</td><td>Punctuation characters (characters that are not letter, digits, control characters, or space characters)</td></tr><tr><td>[:space:]</td><td>Space characters (such as space, tab and formfeed, to name a few)</td></tr><tr><td>[:upper:]</td><td>Upper-case alphabetic characters</td></tr><tr><td>[:xdigit:]</td><td>Characters that are hexadecimal digits</td></tr></tbody></table></div></div><br class="table-break" /><p>
77 A character class is only valid in a regular expression inside the
78 brackets of a character list.
79 </p><div class="note"><h3 class="title">Note</h3><p>
80 Note that the brackets in these
81 class names are part of the symbolic names, and must be included
82 in addition to the brackets delimiting the bracket list. For
83 example, <span class="emphasis"><em>[[:digit:]]</em></span> is equivalent to
84 <span class="emphasis"><em>[0-9]</em></span>.
86 Two additional special sequences can appear in character lists. These
87 apply to non-ASCII character sets, which can have single symbols (called
88 collating elements) that are represented with more than one character,
89 as well as several characters that are equivalent for collating or
91 </p><div class="variablelist"><dl><dt><span class="term">Collating Symbols</span></dt><dd><p>
92 A collating symbol is a multi-character collating element enclosed in
93 “<span class="quote">[.</span>” and “<span class="quote">.]</span>”. For example, if “<span class="quote">ch</span>” is a collating
94 element, then <span class="emphasis"><em>[[.ch.]]</em></span> is a regexp that matches
95 this collating element, while <span class="emphasis"><em>[ch]</em></span> is a regexp that
96 matches either “<span class="quote">c</span>” or “<span class="quote">h</span>”.
97 </p></dd><dt><span class="term">Equivalence Classes</span></dt><dd><p>
98 An equivalence class is a locale-specific name for a list of
99 characters that are equivalent. The name is enclosed in “<span class="quote">[=</span>”
100 and “<span class="quote">=]</span>”. For example, the name “<span class="quote">e</span>” might be used to
101 represent all of “<span class="quote">è</span>” “<span class="quote">é</span>” and “<span class="quote">e</span>”. In this case,
102 <span class="emphasis"><em>[[=e=]]</em></span> is a regexp that matches any of
103 “<span class="quote">è</span>”, “<span class="quote">é</span>” and “<span class="quote">e</span>”.
104 </p></dd></dl></div><p>
105 A regular expression matching a single character may be followed by one
106 of several repetition operators described in <a class="xref" href="advancedusage.html#regex-repeat" title="Table 4.2. Regular expression repetition operators">Table 4.2, “Regular expression repetition operators”</a>.
107 </p><div class="table"><a id="regex-repeat"></a><p class="title"><b>Table 4.2. Regular expression repetition operators</b></p><div class="table-contents"><table summary="Regular expression repetition operators" border="1"><colgroup><col /><col /></colgroup><thead><tr><th>Operator</th><th>Description</th></tr></thead><tbody><tr><td>?</td><td>The preceding item is optional and matched at most once</td></tr><tr><td>*</td><td>The preceding item will be matched zero or more times</td></tr><tr><td>+</td><td>The preceding item will be matched one or more times</td></tr><tr><td>{n}</td><td>The preceding item is matched exactly <span class="emphasis"><em>n</em></span> times</td></tr><tr><td>{n,}</td><td>The preceding item is matched <span class="emphasis"><em>n</em></span> or more times</td></tr><tr><td>{,m}</td><td>The preceding item is matched at most <span class="emphasis"><em>m</em></span> times</td></tr><tr><td>{n,m}</td><td>The preceding item is matched at least <span class="emphasis"><em>n</em></span> times, but no more than <span class="emphasis"><em>m</em></span> times</td></tr></tbody></table></div></div><br class="table-break" /><p>
108 Two regular expressions may be concatenated; the resulting regular
109 expression matches any string formed by concatenating two substrings
110 that respectively match the concatenated subexpressions.
112 Two regular expressions may be joined by the infix operator “<span class="quote">|</span>”;
113 the resulting regular expression matches any string matching either
116 Repetition takes precedence over concatenation, which in turn takes
117 precedence over alternation. A whole subexpression may be enclosed in
118 parentheses to override these precedence rules.
119 </p><div class="note"><h3 class="title">Note</h3><p>
120 If you compile Mutt with the included regular expression engine, the
121 following operators may also be used in regular expressions as described in <a class="xref" href="advancedusage.html#regex-gnu-ext" title="Table 4.3. GNU regular expression extensions">Table 4.3, “GNU regular expression extensions”</a>.
122 </p></div><div class="table"><a id="regex-gnu-ext"></a><p class="title"><b>Table 4.3. GNU regular expression extensions</b></p><div class="table-contents"><table summary="GNU regular expression extensions" border="1"><colgroup><col /><col /></colgroup><thead><tr><th>Expression</th><th>Description</th></tr></thead><tbody><tr><td>\\y</td><td>Matches the empty string at either the beginning or the end of a word</td></tr><tr><td>\\B</td><td>Matches the empty string within a word</td></tr><tr><td>\\<</td><td>Matches the empty string at the beginning of a word</td></tr><tr><td>\\></td><td>Matches the empty string at the end of a word</td></tr><tr><td>\\w</td><td>Matches any word-constituent character (letter, digit, or underscore)</td></tr><tr><td>\\W</td><td>Matches any character that is not word-constituent</td></tr><tr><td>\\`</td><td>Matches the empty string at the beginning of a buffer (string)</td></tr><tr><td>\\'</td><td>Matches the empty string at the end of a buffer</td></tr></tbody></table></div></div><br class="table-break" /><p>
123 Please note however that these operators are not defined by POSIX, so
124 they may or may not be available in stock libraries on various systems.
125 </p></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="patterns"></a>2. Patterns: Searching, Limiting and Tagging</h2></div></div></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="patterns-modifier"></a>2.1. Pattern Modifier</h3></div></div></div><p>
126 Many of Mutt's commands allow you to specify a pattern to match
127 (<code class="literal">limit</code>, <code class="literal">tag-pattern</code>,
128 <code class="literal">delete-pattern</code>, etc.). <a class="xref" href="advancedusage.html#tab-patterns" title="Table 4.4. Pattern modifiers">Table 4.4, “Pattern modifiers”</a>
129 shows several ways to select messages.
130 </p><div class="table"><a id="tab-patterns"></a><p class="title"><b>Table 4.4. Pattern modifiers</b></p><div class="table-contents"><table summary="Pattern modifiers" border="1"><colgroup><col /><col /></colgroup><thead><tr><th>Pattern modifier</th><th>Description</th></tr></thead><tbody><tr><td>~A</td><td>all messages</td></tr><tr><td>~b <span class="emphasis"><em>EXPR</em></span></td><td>messages which contain <span class="emphasis"><em>EXPR</em></span> in the message body</td></tr><tr><td>=b <span class="emphasis"><em>STRING</em></span></td><td>messages which contain <span class="emphasis"><em>STRING</em></span> in the message body. If IMAP is enabled, searches for <span class="emphasis"><em>STRING</em></span> on the server, rather than downloading each message and searching it locally.</td></tr><tr><td>~B <span class="emphasis"><em>EXPR</em></span></td><td>messages which contain <span class="emphasis"><em>EXPR</em></span> in the whole message</td></tr><tr><td>~c <span class="emphasis"><em>EXPR</em></span></td><td>messages carbon-copied to <span class="emphasis"><em>EXPR</em></span></td></tr><tr><td>%c <span class="emphasis"><em>GROUP</em></span></td><td>messages carbon-copied to any member of <span class="emphasis"><em>GROUP</em></span></td></tr><tr><td>~C <span class="emphasis"><em>EXPR</em></span></td><td>messages either to: or cc: <span class="emphasis"><em>EXPR</em></span></td></tr><tr><td>%C <span class="emphasis"><em>GROUP</em></span></td><td>messages either to: or cc: to any member of <span class="emphasis"><em>GROUP</em></span></td></tr><tr><td>~d [<span class="emphasis"><em>MIN</em></span>]-[<span class="emphasis"><em>MAX</em></span>]</td><td>messages with “<span class="quote">date-sent</span>” in a Date range</td></tr><tr><td>~D</td><td>deleted messages</td></tr><tr><td>~e <span class="emphasis"><em>EXPR</em></span></td><td>messages which contains <span class="emphasis"><em>EXPR</em></span> in the “<span class="quote">Sender</span>” field</td></tr><tr><td>%e <span class="emphasis"><em>GROUP</em></span></td><td>messages which contain a member of <span class="emphasis"><em>GROUP</em></span> in the “<span class="quote">Sender</span>” field</td></tr><tr><td>~E</td><td>expired messages</td></tr><tr><td>~F</td><td>flagged messages</td></tr><tr><td>~f <span class="emphasis"><em>EXPR</em></span></td><td>messages originating from <span class="emphasis"><em>EXPR</em></span></td></tr><tr><td>%f <span class="emphasis"><em>GROUP</em></span></td><td>messages originating from any member of <span class="emphasis"><em>GROUP</em></span></td></tr><tr><td>~g</td><td>cryptographically signed messages</td></tr><tr><td>~G</td><td>cryptographically encrypted messages</td></tr><tr><td>~h <span class="emphasis"><em>EXPR</em></span></td><td>messages which contain <span class="emphasis"><em>EXPR</em></span> in the message header</td></tr><tr><td>~H <span class="emphasis"><em>EXPR</em></span></td><td>messages with a spam attribute matching <span class="emphasis"><em>EXPR</em></span></td></tr><tr><td>~i <span class="emphasis"><em>EXPR</em></span></td><td>messages which match <span class="emphasis"><em>EXPR</em></span> in the “<span class="quote">Message-ID</span>” field</td></tr><tr><td>~k</td><td>messages which contain PGP key material</td></tr><tr><td>~L <span class="emphasis"><em>EXPR</em></span></td><td>messages either originated or received by <span class="emphasis"><em>EXPR</em></span></td></tr><tr><td>%L <span class="emphasis"><em>GROUP</em></span></td><td>message either originated or received by any member of <span class="emphasis"><em>GROUP</em></span></td></tr><tr><td>~l</td><td>messages addressed to a known mailing list</td></tr><tr><td>~m [<span class="emphasis"><em>MIN</em></span>]-[<span class="emphasis"><em>MAX</em></span>]</td><td>messages in the range <span class="emphasis"><em>MIN</em></span> to <span class="emphasis"><em>MAX</em></span> *)</td></tr><tr><td>~n [<span class="emphasis"><em>MIN</em></span>]-[<span class="emphasis"><em>MAX</em></span>]</td><td>messages with a score in the range <span class="emphasis"><em>MIN</em></span> to <span class="emphasis"><em>MAX</em></span> *)</td></tr><tr><td>~N</td><td>new messages</td></tr><tr><td>~O</td><td>old messages</td></tr><tr><td>~p</td><td>messages addressed to you (consults <span class="command"><strong>alternates</strong></span>)</td></tr><tr><td>~P</td><td>messages from you (consults <span class="command"><strong>alternates</strong></span>)</td></tr><tr><td>~Q</td><td>messages which have been replied to</td></tr><tr><td>~r [<span class="emphasis"><em>MIN</em></span>]-[<span class="emphasis"><em>MAX</em></span>]</td><td>messages with “<span class="quote">date-received</span>” in a Date range</td></tr><tr><td>~R</td><td>read messages</td></tr><tr><td>~s <span class="emphasis"><em>EXPR</em></span></td><td>messages having <span class="emphasis"><em>EXPR</em></span> in the “<span class="quote">Subject</span>” field.</td></tr><tr><td>~S</td><td>superseded messages</td></tr><tr><td>~t <span class="emphasis"><em>EXPR</em></span></td><td>messages addressed to <span class="emphasis"><em>EXPR</em></span></td></tr><tr><td>~T</td><td>tagged messages</td></tr><tr><td>~u</td><td>messages addressed to a subscribed mailing list</td></tr><tr><td>~U</td><td>unread messages</td></tr><tr><td>~v</td><td>messages part of a collapsed thread.</td></tr><tr><td>~V</td><td>cryptographically verified messages</td></tr><tr><td>~x <span class="emphasis"><em>EXPR</em></span></td><td>messages which contain <span class="emphasis"><em>EXPR</em></span> in the “<span class="quote">References</span>” or “<span class="quote">In-Reply-To</span>” field</td></tr><tr><td>~X [<span class="emphasis"><em>MIN</em></span>]-[<span class="emphasis"><em>MAX</em></span>]</td><td>messages with <span class="emphasis"><em>MIN</em></span> to <span class="emphasis"><em>MAX</em></span> attachments *)</td></tr><tr><td>~y <span class="emphasis"><em>EXPR</em></span></td><td>messages which contain <span class="emphasis"><em>EXPR</em></span> in the “<span class="quote">X-Label</span>” field</td></tr><tr><td>~z [<span class="emphasis"><em>MIN</em></span>]-[<span class="emphasis"><em>MAX</em></span>]</td><td>messages with a size in the range <span class="emphasis"><em>MIN</em></span> to <span class="emphasis"><em>MAX</em></span> *) **)</td></tr><tr><td>~=</td><td>duplicated messages (see <a class="link" href="reference.html#duplicate-threads" title="3.56. duplicate_threads">$duplicate_threads</a>)</td></tr><tr><td>~$</td><td>unreferenced messages (requires threaded view)</td></tr><tr><td>~(<span class="emphasis"><em>PATTERN</em></span>)</td><td>messages in threads
131 containing messages matching <span class="emphasis"><em>PATTERN</em></span>, e.g. all
132 threads containing messages from you: ~(~P)</td></tr></tbody></table></div></div><br class="table-break" /><p>
133 Where <span class="emphasis"><em>EXPR</em></span> is a
134 <a class="link" href="advancedusage.html#regexp" title="1. Regular Expressions">regular expression</a>.
136 *) The forms “<span class="quote"><[<span class="emphasis"><em>MAX</em></span>]</span>”, “<span class="quote">>[<span class="emphasis"><em>MIN</em></span>]</span>”,
137 “<span class="quote">[<span class="emphasis"><em>MIN</em></span>]-</span>” and “<span class="quote">-[<span class="emphasis"><em>MAX</em></span>]</span>”
140 **) The suffixes “<span class="quote">K</span>” and “<span class="quote">M</span>” are allowed to specify kilobyte and megabyte respectively.
142 Special attention has to be
143 payed when using regular expressions inside of patterns. Specifically,
144 Mutt's parser for these patterns will strip one level of backslash (“<span class="quote">\</span>”),
145 which is normally used for quoting. If it is your intention to use a
146 backslash in the regular expression, you will need to use two backslashes
147 instead (“<span class="quote">\\</span>”). You can force Mutt to treat <span class="emphasis"><em>EXPR</em></span> as a simple string
148 instead of a regular expression by using = instead of ˜ in the
149 pattern name. For example, <code class="literal">=b *.*</code> will find all messages that contain
150 the literal string “<span class="quote">*.*</span>”. Simple string matches are less powerful than
151 regular expressions but can be considerably faster. This is especially
152 true for IMAP folders, because string matches can be performed on the
153 server instead of by fetching every message. IMAP treats <code class="literal">=h</code> specially:
154 it must be of the form “<span class="quote">header: substring</span>” and will not partially
155 match header names. The substring part may be omitted if you simply
156 wish to find messages containing a particular header without regard to
159 Patterns matching lists of addresses (notably c, C, p, P and t)
160 match if there is at least one match in the whole list. If you want to
161 make sure that all elements of that list match, you need to prefix your
162 pattern with “<span class="quote">^</span>”.
163 This example matches all mails which only has recipients from Germany.
164 </p><div class="example"><a id="ex-recips"></a><p class="title"><b>Example 4.1. Matching all addresses in address lists</b></p><div class="example-contents"><pre class="screen">
166 </pre></div></div><br class="example-break" /></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="simple-searches"></a>2.2. Simple Searches</h3></div></div></div><p>
167 Mutt supports two versions of so called “<span class="quote">simple searches</span>”. These are
168 issued if the query entered for searching, limiting and similar
169 operations does not seem to contain a valid pattern modifier (i.e. it does not contain
170 one of these characters: “<span class="quote">˜</span>”, “<span class="quote">=</span>” or “<span class="quote">%</span>”). If the query is
171 supposed to contain one of these special characters, they must be escaped
172 by prepending a backslash (“<span class="quote">\</span>”).
174 The first type is by checking whether the query string equals
175 a keyword case-insensitively from <a class="xref" href="advancedusage.html#tab-simplesearch-keywords" title="Table 4.5. Simple search keywords">Table 4.5, “Simple search keywords”</a>:
176 If that is the case, Mutt will use the shown pattern modifier instead.
177 If a keyword would conflict with your search keyword, you need to turn
178 it into a regular expression to avoid matching the keyword table. For
179 example, if you want to find all messages matching “<span class="quote">flag</span>”
180 (using <a class="link" href="reference.html#simple-search" title="3.236. simple_search">$simple_search</a>)
181 but don't want to match flagged messages, simply search for
182 “<span class="quote"><code class="literal">[f]lag</code></span>”.
183 </p><div class="table"><a id="tab-simplesearch-keywords"></a><p class="title"><b>Table 4.5. Simple search keywords</b></p><div class="table-contents"><table summary="Simple search keywords" border="1"><colgroup><col /><col /></colgroup><thead><tr><th>Keyword</th><th>Pattern modifier</th></tr></thead><tbody><tr><td>all</td><td>~A</td></tr><tr><td>.</td><td>~A</td></tr><tr><td>^</td><td>~A</td></tr><tr><td>del</td><td>~D</td></tr><tr><td>flag</td><td>~F</td></tr><tr><td>new</td><td>~N</td></tr><tr><td>old</td><td>~O</td></tr><tr><td>repl</td><td>~Q</td></tr><tr><td>read</td><td>~R</td></tr><tr><td>tag</td><td>~T</td></tr><tr><td>unread</td><td>~U</td></tr></tbody></table></div></div><br class="table-break" /><p>
184 The second type of simple search is to build a complex search
185 pattern using <a class="link" href="reference.html#simple-search" title="3.236. simple_search">$simple_search</a>
186 as a template. Mutt will insert your query properly quoted and search
187 for the composed complex query.
188 </p></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="complex-patterns"></a>2.3. Nesting and Boolean Operators</h3></div></div></div><p>
189 Logical AND is performed by specifying more than one criterion. For
191 </p><pre class="screen">
194 would select messages which contain the word “<span class="quote">mutt</span>” in the list of
195 recipients <span class="emphasis"><em>and</em></span> that have the word “<span class="quote">elkins</span>” in the “<span class="quote">From</span>” header
198 Mutt also recognizes the following operators to create more complex search
200 </p><div class="itemizedlist"><ul type="disc"><li><p>
201 ! — logical NOT operator
203 | — logical OR operator
205 () — logical grouping operator
206 </p></li></ul></div><p>
207 Here is an example illustrating a complex search pattern. This pattern will
208 select all messages which do not contain “<span class="quote">mutt</span>” in the “<span class="quote">To</span>” or “<span class="quote">Cc</span>”
209 field and which are from “<span class="quote">elkins</span>”.
210 </p><div class="example"><a id="ex-pattern-bool"></a><p class="title"><b>Example 4.2. Using boolean operators in patterns</b></p><div class="example-contents"><pre class="screen">
211 !(~t mutt|~c mutt) ~f elkins
212 </pre></div></div><br class="example-break" /><p>
213 Here is an example using white space in the regular expression (note
214 the ' and " delimiters). For this to match, the mail's subject must
215 match the “<span class="quote">^Junk +From +Me$</span>” and it must be from either “<span class="quote">Jim +Somebody</span>”
216 or “<span class="quote">Ed +SomeoneElse</span>”:
217 </p><pre class="screen">
218 '~s "^Junk +From +Me$" ~f ("Jim +Somebody"|"Ed +SomeoneElse")'
219 </pre><div class="note"><h3 class="title">Note</h3><p>
220 If a regular expression contains parenthesis, or a vertical bar
221 ("|"), you <span class="emphasis"><em>must</em></span> enclose the expression in double or single quotes since
222 those characters are also used to separate different parts of Mutt's
223 pattern language. For example: <code class="literal">~f "me@(mutt\.org|cs\.hmc\.edu)"</code>
224 Without the quotes, the parenthesis wouldn't end.
225 This would be separated to two OR'd patterns: <span class="emphasis"><em>˜f me@(mutt\.org</em></span>
226 and <span class="emphasis"><em>cs\.hmc\.edu)</em></span>. They are never what you want.
227 </p></div></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="date-patterns"></a>2.4. Searching by Date</h3></div></div></div><p>
228 Mutt supports two types of dates, <span class="emphasis"><em>absolute</em></span> and <span class="emphasis"><em>relative</em></span>.
229 </p><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="date-absolute"></a>2.4.1. Absolute Dates</h4></div></div></div><p>
230 Dates <span class="emphasis"><em>must</em></span> be in DD/MM/YY format (month and year are
231 optional, defaulting to the current month and year). An example of a valid
233 </p><pre class="screen">
234 Limit to messages matching: ~d 20/1/95-31/10
236 If you omit the minimum (first) date, and just specify “<span class="quote">-DD/MM/YY</span>”, all
237 messages <span class="emphasis"><em>before</em></span> the given date will be selected. If you omit the maximum
238 (second) date, and specify “<span class="quote">DD/MM/YY-</span>”, all messages <span class="emphasis"><em>after</em></span> the given
239 date will be selected. If you specify a single date with no dash (“<span class="quote">-</span>”),
240 only messages sent on the given date will be selected.
242 You can add error margins to absolute dates.
243 An error margin is a sign (+ or -), followed by a digit, followed by
244 one of the units in <a class="xref" href="advancedusage.html#tab-date-units" title="Table 4.6. Date units">Table 4.6, “Date units”</a>. As a special case, you can replace the
245 sign by a “<span class="quote">*</span>” character, which is equivalent to giving identical plus and minus error margins.
246 </p><div class="table"><a id="tab-date-units"></a><p class="title"><b>Table 4.6. Date units</b></p><div class="table-contents"><table summary="Date units" border="1"><colgroup><col /><col /></colgroup><thead><tr><th>Unit</th><th>Description</th></tr></thead><tbody><tr><td>y</td><td>Years</td></tr><tr><td>m</td><td>Months</td></tr><tr><td>w</td><td>Weeks</td></tr><tr><td>d</td><td>Days</td></tr></tbody></table></div></div><br class="table-break" /><p>
247 Example: To select any messages two weeks around January 15, 2001,
248 you'd use the following pattern:
249 </p><pre class="screen">
250 Limit to messages matching: ~d 15/1/2001*2w
251 </pre></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="dates-relative"></a>2.4.2. Relative Dates</h4></div></div></div><p>
252 This type of date is relative to the current date, and may
254 </p><div class="itemizedlist"><ul type="disc"><li><p>
255 ><span class="emphasis"><em>offset</em></span> for messages older than <span class="emphasis"><em>offset</em></span> units
257 <<span class="emphasis"><em>offset</em></span> for messages newer than <span class="emphasis"><em>offset</em></span> units
259 =<span class="emphasis"><em>offset</em></span> for messages exactly <span class="emphasis"><em>offset</em></span> units old
260 </p></li></ul></div><p>
261 <span class="emphasis"><em>offset</em></span> is specified as a positive number with one of the units from <a class="xref" href="advancedusage.html#tab-date-units" title="Table 4.6. Date units">Table 4.6, “Date units”</a>.
263 Example: to select messages less than 1 month old, you would use
264 </p><pre class="screen">
265 Limit to messages matching: ~d <1m
266 </pre><div class="note"><h3 class="title">Note</h3><p>
267 All dates used when searching are relative to the
268 <span class="emphasis"><em>local</em></span> time zone, so unless you change the setting of your <a class="link" href="reference.html#index-format" title="3.114. index_format">$index_format</a> to include a
269 <code class="literal">%[...]</code> format, these are <span class="emphasis"><em>not</em></span> the dates shown
271 </p></div></div></div></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="tags"></a>3. Using Tags</h2></div></div></div><p>
272 Sometimes it is desirable to perform an operation on a group of
273 messages all at once rather than one at a time. An example might be
274 to save messages to a mailing list to a separate folder, or to
275 delete all messages with a given subject. To tag all messages
276 matching a pattern, use the <code class="literal"><tag-pattern></code> function, which is bound to
277 “<span class="quote">shift-T</span>” by default. Or you can select individual messages by
278 hand using the <code class="literal"><tag-message></code> function, which is bound to “<span class="quote">t</span>” by
279 default. See <a class="link" href="advancedusage.html#patterns" title="2. Patterns: Searching, Limiting and Tagging">patterns</a> for Mutt's pattern
282 Once you have tagged the desired messages, you can use the
283 “<span class="quote">tag-prefix</span>” operator, which is the “<span class="quote">;</span>” (semicolon) key by default.
284 When the “<span class="quote">tag-prefix</span>” operator is used, the <span class="emphasis"><em>next</em></span> operation will
285 be applied to all tagged messages if that operation can be used in that
286 manner. If the <a class="link" href="reference.html#auto-tag" title="3.17. auto_tag">$auto_tag</a>
287 variable is set, the next operation applies to the tagged messages
288 automatically, without requiring the “<span class="quote">tag-prefix</span>”.
290 In <a class="link" href="configuration.html#macro" title="8. Keyboard Macros"><span class="command"><strong>macro</strong></span>s</a> or <a class="link" href="configuration.html#push" title="22. Adding Key Sequences to the Keyboard Buffer"><span class="command"><strong>push</strong></span></a> commands,
291 you can use the <code class="literal"><tag-prefix-cond></code> operator. If there are no tagged
292 messages, Mutt will “<span class="quote">eat</span>” the rest of the macro to abort it's execution.
293 Mutt will stop “<span class="quote">eating</span>” the macro when it encounters the <code class="literal"><end-cond></code>
294 operator; after this operator the rest of the macro will be executed as
296 </p></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="hooks"></a>4. Using Hooks</h2></div></div></div><p>
297 A <span class="emphasis"><em>hook</em></span> is a concept found in many other programs which allows you to
298 execute arbitrary commands before performing some operation. For example,
299 you may wish to tailor your configuration based upon which mailbox you are
300 reading, or to whom you are sending mail. In the Mutt world, a <span class="emphasis"><em>hook</em></span>
301 consists of a <a class="link" href="advancedusage.html#regexp" title="1. Regular Expressions">regular expression</a> or
302 <a class="link" href="advancedusage.html#patterns" title="2. Patterns: Searching, Limiting and Tagging">pattern</a> along with a
303 configuration option/command. See:
305 </p><div class="itemizedlist"><ul type="disc"><li><p>
306 <a class="link" href="optionalfeatures.html#account-hook" title="6. Managing Multiple Accounts"><span class="command"><strong>account-hook</strong></span></a>
308 <a class="link" href="configuration.html#charset-hook" title="6. Defining Aliases for Character Sets"><span class="command"><strong>charset-hook</strong></span></a>
310 <a class="link" href="configuration.html#crypt-hook" title="21. Choosing the Cryptographic Key of the Recipient"><span class="command"><strong>crypt-hook</strong></span></a>
312 <a class="link" href="configuration.html#fcc-hook" title="17. Specify Default Fcc: Mailbox When Composing"><span class="command"><strong>fcc-hook</strong></span></a>
314 <a class="link" href="configuration.html#fcc-save-hook" title="18. Specify Default Save Filename and Default Fcc: Mailbox at Once"><span class="command"><strong>fcc-save-hook</strong></span></a>
316 <a class="link" href="configuration.html#folder-hook" title="7. Setting Variables Based Upon Mailbox"><span class="command"><strong>folder-hook</strong></span></a>
318 <a class="link" href="configuration.html#iconv-hook"><span class="command"><strong>iconv-hook</strong></span></a>
320 <a class="link" href="configuration.html#mbox-hook" title="13. Using Multiple Spool Mailboxes"><span class="command"><strong>mbox-hook</strong></span></a>
322 <a class="link" href="configuration.html#message-hook" title="20. Change Settings Before Formatting a Message"><span class="command"><strong>message-hook</strong></span></a>
324 <a class="link" href="configuration.html#reply-hook"><span class="command"><strong>reply-hook</strong></span></a>
326 <a class="link" href="configuration.html#save-hook" title="16. Specify Default Save Mailbox"><span class="command"><strong>save-hook</strong></span></a>
328 <a class="link" href="configuration.html#send-hook" title="19. Change Settings Based Upon Message Recipients"><span class="command"><strong>send-hook</strong></span></a>
330 <a class="link" href="configuration.html#send2-hook"><span class="command"><strong>send2-hook</strong></span></a>
331 </p></li></ul></div><p>
333 for specific details on each type of <span class="emphasis"><em>hook</em></span> available.
334 </p><div class="note"><h3 class="title">Note</h3><p>
335 If a hook changes configuration settings, these changes remain
336 effective until the end of the current Mutt session. As this is generally
337 not desired, a “<span class="quote">default</span>” hook needs to be added before all
338 other hooks of that type to restore configuration defaults.
339 </p></div><div class="example"><a id="ex-default-hook"></a><p class="title"><b>Example 4.3. Specifying a “<span class="quote">default</span>” hook</b></p><div class="example-contents"><pre class="screen">
340 send-hook . 'unmy_hdr From:'
341 send-hook ~C'^b@b\.b$' my_hdr from: c@c.c
342 </pre></div></div><br class="example-break" /><p>
343 In <a class="xref" href="advancedusage.html#ex-default-hook" title="Example 4.3. Specifying a default hook">Example 4.3, “Specifying a default hook”</a>, by default the value of
344 <a class="link" href="reference.html#from" title="3.75. from">$from</a>
345 and <a class="link" href="reference.html#realname" title="3.209. realname">$realname</a>
346 is not overridden. When sending messages either To: or Cc:
347 to <code class="literal"><b@b.b></code>, the From: header is changed to
348 <code class="literal"><c@c.c></code>.
349 </p><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="pattern-hook"></a>4.1. Message Matching in Hooks</h3></div></div></div><p>
350 Hooks that act upon messages (<span class="command"><strong>message-hook</strong></span>, <span class="command"><strong>reply-hook</strong></span>,
351 <span class="command"><strong>send-hook</strong></span>, <span class="command"><strong>send2-hook</strong></span>, <span class="command"><strong>save-hook</strong></span>, <span class="command"><strong>fcc-hook</strong></span>) are evaluated in a
352 slightly different manner. For the other
353 types of hooks, a <a class="link" href="advancedusage.html#regexp" title="1. Regular Expressions">regular expression</a> is
354 sufficient. But in dealing with messages a finer grain of control is
355 needed for matching since for different purposes you want to match
358 Mutt allows the use of the <a class="link" href="advancedusage.html#patterns" title="2. Patterns: Searching, Limiting and Tagging">search pattern</a>
359 language for matching messages in hook commands. This works in
360 exactly the same way as it would when <span class="emphasis"><em>limiting</em></span> or
361 <span class="emphasis"><em>searching</em></span> the mailbox, except that you are restricted to those
362 operators which match information Mutt extracts from the header of
363 the message (i.e., from, to, cc, date, subject, etc.).
365 For example, if you wanted to set your return address based upon sending
366 mail to a specific address, you could do something like:
367 </p><pre class="screen">
368 send-hook '~t ^me@cs\.hmc\.edu$' 'my_hdr From: Mutt User <user@host>'
370 which would execute the given command when sending mail to
371 <span class="emphasis"><em>me@cs.hmc.edu</em></span>.
373 However, it is not required that you write the pattern to match using the
374 full searching language. You can still specify a simple <span class="emphasis"><em>regular
375 expression</em></span> like the other hooks, in which case Mutt will translate your
376 pattern into the full language, using the translation specified by the
377 <a class="link" href="reference.html#default-hook" title="3.48. default_hook">$default_hook</a> variable. The
378 pattern is translated at the time the hook is declared, so the value of
379 <a class="link" href="reference.html#default-hook" title="3.48. default_hook">$default_hook</a> that is in effect
380 at that time will be used.
381 </p></div></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="query"></a>5. External Address Queries</h2></div></div></div><p>
382 Mutt supports connecting to external directory databases such as LDAP,
383 ph/qi, bbdb, or NIS through a wrapper script which connects to Mutt
384 using a simple interface. Using the <a class="link" href="reference.html#query-command" title="3.203. query_command">$query_command</a> variable, you specify the wrapper
385 command to use. For example:
386 </p><pre class="screen">
387 set query_command = "mutt_ldap_query.pl '%s'"
389 The wrapper script should accept the query on the command-line. It
390 should return a one line message, then each matching response on a
391 single line, each line containing a tab separated address then name then
392 some other optional information. On error, or if there are no matching
393 addresses, return a non-zero exit code and a one line error message.
395 An example multiple response output:
396 </p><pre class="screen">
397 Searching database ... 20 entries ... 3 matching:
398 me@cs.hmc.edu Michael Elkins mutt dude
399 blong@fiction.net Brandon Long mutt and more
400 roessler@does-not-exist.org Thomas Roessler mutt pgp
402 There are two mechanisms for accessing the query function of Mutt. One
403 is to do a query from the index menu using the <code class="literal"><query></code> function (default: Q).
404 This will prompt for a query, then bring up the query menu which will
405 list the matching responses. From the query menu, you can select
406 addresses to create aliases, or to mail. You can tag multiple addresses
407 to mail, start a new query, or have a new query appended to the current
410 The other mechanism for accessing the query function is for address
411 completion, similar to the alias completion. In any prompt for address
412 entry, you can use the <code class="literal"><complete-query></code> function (default: ^T) to run a
413 query based on the current address you have typed. Like aliases, Mutt
414 will look for what you have typed back to the last space or comma. If
415 there is a single response for that query, Mutt will expand the address
416 in place. If there are multiple responses, Mutt will activate the query
417 menu. At the query menu, you can select one or more addresses to be
419 </p></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="mailbox-formats"></a>6. Mailbox Formats</h2></div></div></div><p>
420 Mutt supports reading and writing of four different local mailbox formats:
421 mbox, MMDF, MH and Maildir. The mailbox type is autodetected, so there
422 is no need to use a flag for different mailbox types. When creating new
423 mailboxes, Mutt uses the default specified with the
424 <a class="link" href="reference.html#mbox-type" title="3.127. mbox_type">$mbox_type</a> variable. A
425 short description of the formats follows.
427 <span class="emphasis"><em>mbox</em></span>. This is a widely used mailbox format for UNIX. All
428 messages are stored in a single file. Each message has a line of the form:
429 </p><pre class="screen">
430 From me@cs.hmc.edu Fri, 11 Apr 1997 11:44:56 PST
432 to denote the start of a new message (this is often referred to as the
433 “<span class="quote">From_</span>” line). The mbox format requires mailbox
434 locking, is prone to mailbox corruption with concurrently writing
435 clients or misinterpreted From_ lines. Depending on the
436 environment, new mail detection can be unreliable. Mbox folders are fast
437 to open and easy to archive.
439 <span class="emphasis"><em>MMDF</em></span>. This is a variant of
440 the <span class="emphasis"><em>mbox</em></span> format. Each message is surrounded by
441 lines containing “<span class="quote">^A^A^A^A</span>” (four
442 control-A's). The same problems as for mbox apply (also with finding the
443 right message separator as four control-A's may appear in message
446 <span class="emphasis"><em>MH</em></span>. A radical departure from <span class="emphasis"><em>mbox</em></span> and <span class="emphasis"><em>MMDF</em></span>, a mailbox
447 consists of a directory and each message is stored in a separate file.
448 The filename indicates the message number (however, this is may not
449 correspond to the message number Mutt displays). Deleted messages are
450 renamed with a comma (“<span class="quote">,</span>”) prepended to the filename. Mutt
451 detects this type of mailbox by looking for either <code class="literal">.mh_sequences</code>
452 or <code class="literal">.xmhcache</code> files (needed to distinguish normal directories from MH
453 mailboxes). MH is more robust with concurrent clients writing the mailbox,
454 but still may suffer from lost flags; message corruption is less likely
455 to occur than with mbox/mmdf. It's usually slower to open compared to
456 mbox/mmdf since many small files have to be read (Mutt provides
457 <a class="xref" href="optionalfeatures.html#header-caching" title="7.1. Header Caching">Section 7.1, “Header Caching”</a> to greatly speed this process up).
458 Depending on the environment, MH is not very disk-space efficient.
460 <span class="emphasis"><em>Maildir</em></span>. The newest of the mailbox formats, used by the Qmail MTA (a
461 replacement for sendmail). Similar to <span class="emphasis"><em>MH</em></span>, except that it adds three
462 subdirectories of the mailbox: <span class="emphasis"><em>tmp</em></span>, <span class="emphasis"><em>new</em></span> and <span class="emphasis"><em>cur</em></span>. Filenames
463 for the messages are chosen in such a way they are unique, even when two
464 programs are writing the mailbox over NFS, which means that no file locking
465 is needed and corruption is very unlikely. Maildir maybe
466 slower to open without caching in Mutt, it too is not very
467 disk-space efficient depending on the environment. Since no additional
468 files are used for metadata (which is embedded in the message filenames)
469 and Maildir is locking-free, it's easy to sync across different machines
470 using file-level synchronization tools.
471 </p></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="shortcuts"></a>7. Mailbox Shortcuts</h2></div></div></div><p>
472 There are a number of built in shortcuts which refer to specific mailboxes.
473 These shortcuts can be used anywhere you are prompted for a file or mailbox
474 path or in path-related configuration variables. Note that these only
475 work at the beginning of a string.
476 </p><div class="itemizedlist"><ul type="disc"><li><p>
477 ! — refers to your <a class="link" href="reference.html#spoolfile" title="3.269. spoolfile">$spoolfile</a> (incoming) mailbox
479 > — refers to your <a class="link" href="reference.html#mbox" title="3.126. mbox">$mbox</a> file
481 < — refers to your <a class="link" href="reference.html#record" title="3.211. record">$record</a> file
483 ^ — refers to the current mailbox
485 - or !! — refers to the file you've last visited
487 ˜ — refers to your home directory
489 = or + — refers to your <a class="link" href="reference.html#folder" title="3.66. folder">$folder</a> directory
491 @<span class="emphasis"><em>alias</em></span> — refers to the <a class="link" href="configuration.html#save-hook" title="16. Specify Default Save Mailbox">default save folder</a> as determined by the address of the alias
492 </p></li></ul></div><p>
493 For example, to store a copy of outgoing messages in the folder they
495 a <a class="link" href="configuration.html#folder-hook" title="7. Setting Variables Based Upon Mailbox"><span class="command"><strong>folder-hook</strong></span></a> can
496 be used to set <a class="link" href="reference.html#record" title="3.211. record">$record</a>:
497 </p><pre class="screen">
498 folder-hook . 'set record=^'</pre></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="using-lists"></a>8. Handling Mailing Lists</h2></div></div></div><p>
499 Mutt has a few configuration options that make dealing with large
500 amounts of mail easier. The first thing you must do is to let Mutt
501 know what addresses you consider to be mailing lists (technically
502 this does not have to be a mailing list, but that is what it is most
503 often used for), and what lists you are subscribed to. This is
504 accomplished through the use of the <a class="link" href="configuration.html#lists" title="12. Mailing Lists"><span class="command"><strong>lists</strong></span> and <span class="command"><strong>subscribe</strong></span></a> commands in your <code class="literal">.muttrc</code>.
506 Now that Mutt knows what your mailing lists are, it can do several
507 things, the first of which is the ability to show the name of a list
508 through which you received a message (i.e., of a subscribed list) in
509 the <span class="emphasis"><em>index</em></span> menu display. This is useful to distinguish between
510 personal and list mail in the same mailbox. In the <a class="link" href="reference.html#index-format" title="3.114. index_format">$index_format</a> variable, the expando “<span class="quote">%L</span>”
511 will print the string “<span class="quote">To <list></span>” when “<span class="quote">list</span>” appears in the
512 “<span class="quote">To</span>” field, and “<span class="quote">Cc <list></span>” when it appears in the “<span class="quote">Cc</span>”
513 field (otherwise it prints the name of the author).
515 Often times the “<span class="quote">To</span>” and “<span class="quote">Cc</span>” fields in mailing list messages
516 tend to get quite large. Most people do not bother to remove the
517 author of the message they reply to from the list, resulting in
518 two or more copies being sent to that person. The <code class="literal"><list-reply></code>
519 function, which by default is bound to “<span class="quote">L</span>” in the <span class="emphasis"><em>index</em></span> menu
520 and <span class="emphasis"><em>pager</em></span>, helps reduce the clutter by only replying to the
521 known mailing list addresses instead of all recipients (except as
522 specified by <code class="literal">Mail-Followup-To</code>, see below).
524 Mutt also supports the <code class="literal">Mail-Followup-To</code> header. When you send
525 a message to a list of recipients which includes one or several
526 subscribed mailing lists, and if the <a class="link" href="reference.html#followup-to" title="3.68. followup_to">$followup_to</a> option is set, Mutt will generate
527 a Mail-Followup-To header which contains all the recipients to whom
528 you send this message, but not your address. This indicates that
529 group-replies or list-replies (also known as “<span class="quote">followups</span>”) to this
530 message should only be sent to the original recipients of the
531 message, and not separately to you - you'll receive your copy through
532 one of the mailing lists you are subscribed to.
534 Conversely, when group-replying or list-replying to a message which
535 has a <code class="literal">Mail-Followup-To</code> header, Mutt will respect this header if
536 the <a class="link" href="reference.html#honor-followup-to" title="3.92. honor_followup_to">$honor_followup_to</a> configuration
537 variable is set. Using <a class="link" href="gettingstarted.html#list-reply">list-reply</a> will in this case also make sure
538 that the reply goes to the mailing list, even if it's not specified
539 in the list of recipients in the <code class="literal">Mail-Followup-To</code>.
540 </p><div class="note"><h3 class="title">Note</h3><p>
541 When header editing is enabled, you can create a
542 <code class="literal">Mail-Followup-To</code> header manually. Mutt will only auto-generate
543 this header if it doesn't exist when you send the message.
545 The other method some mailing list admins use is to generate a
546 “<span class="quote">Reply-To</span>” field which points back to the mailing list address rather
547 than the author of the message. This can create problems when trying
548 to reply directly to the author in private, since most mail clients
549 will automatically reply to the address given in the “<span class="quote">Reply-To</span>”
550 field. Mutt uses the <a class="link" href="reference.html#reply-to" title="3.214. reply_to">$reply_to</a>
551 variable to help decide which address to use. If set to <span class="emphasis"><em>ask-yes</em></span> or
552 <span class="emphasis"><em>ask-no</em></span>, you will be
553 prompted as to whether or not you would like to use the address given in
554 the “<span class="quote">Reply-To</span>” field, or reply directly to the address given in the
555 “<span class="quote">From</span>” field. When set to <span class="emphasis"><em>yes</em></span>, the “<span class="quote">Reply-To</span>” field will be used when
558 The “<span class="quote">X-Label:</span>” header field can be used to further identify mailing
559 lists or list subject matter (or just to annotate messages
560 individually). The <a class="link" href="reference.html#index-format" title="3.114. index_format">$index_format</a> variable's “<span class="quote">%y</span>” and
561 “<span class="quote">%Y</span>” expandos can be used to expand “<span class="quote">X-Label:</span>” fields in the
562 index, and Mutt's pattern-matcher can match regular expressions to
563 “<span class="quote">X-Label:</span>” fields with the “<span class="quote">˜y</span>” selector. “<span class="quote">X-Label:</span>” is not a
564 standard message header field, but it can easily be inserted by procmail
565 and other mail filtering agents.
567 Lastly, Mutt has the ability to <a class="link" href="reference.html#sort" title="3.263. sort">sort</a> the mailbox into
568 <a class="link" href="gettingstarted.html#threads" title="5.3. Threaded Mode">threads</a>. A thread is a group of messages which all relate to the same
569 subject. This is usually organized into a tree-like structure where a
570 message and all of its replies are represented graphically. If you've ever
571 used a threaded news client, this is the same concept. It makes dealing
572 with large volume mailing lists easier because you can easily delete
573 uninteresting threads and quickly find topics of value.
574 </p></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="handling-folders"></a>9. Handling multiple folders</h2></div></div></div><p>
575 Mutt supports setups with multiple folders, allowing all of them to
576 be monitored for new mail (see <a class="xref" href="configuration.html#mailboxes" title="14. Monitoring Incoming Mail">Section 14, “Monitoring Incoming Mail”</a> for details).
578 When in the index menu and being idle (also see
579 <a class="link" href="reference.html#timeout" title="3.291. timeout">$timeout</a>), Mutt periodically checks
580 for new mail in all folders which have been configured via the
581 <span class="command"><strong>mailboxes</strong></span> command. The interval depends on the folder
582 type: for local/IMAP folders it consults
583 <a class="link" href="reference.html#mail-check" title="3.118. mail_check">$mail_check</a> and
584 <a class="link" href="reference.html#pop-checkinterval" title="3.187. pop_checkinterval">$pop_checkinterval</a>
587 Outside the index menu the directory browser supports checking
588 for new mail using the <code class="literal"><check-new></code> function which is
589 unbound by default. Pressing TAB will bring up a
590 menu showing the files specified by the <span class="command"><strong>mailboxes</strong></span> command,
591 and indicate which contain new messages. Mutt will automatically enter this
592 mode when invoked from the command line with the <code class="literal">-y</code> option.
594 For the pager, index and directory browser menus, Mutt contains the
595 <code class="literal"><buffy-list></code> function (bound to “<span class="quote">.</span>” by default)
596 which will print a list of folders with new mail in the command line at
597 the bottom of the screen.
599 For the index, by default Mutt displays the number of mailboxes with new
600 mail in the status bar, please refer to the
601 <a class="link" href="reference.html#status-format" title="3.282. status_format">$status_format</a>
602 variable for details.
604 When changing folders, Mutt fills the prompt with the first folder from
605 the mailboxes list containing new mail (if any), pressing
606 <span class="emphasis"><em>space</em></span> will cycle through folders with new mail.
607 </p></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="editing-threads"></a>10. Editing Threads</h2></div></div></div><p>
608 Mutt has the ability to dynamically restructure threads that are broken
609 either by misconfigured software or bad behavior from some
610 correspondents. This allows to clean your mailboxes from these
611 annoyances which make it hard to follow a discussion.
612 </p><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="link-threads"></a>10.1. Linking Threads</h3></div></div></div><p>
613 Some mailers tend to “<span class="quote">forget</span>” to correctly set the “<span class="quote">In-Reply-To:</span>” and
614 “<span class="quote">References:</span>” headers when replying to a message. This results in broken
615 discussions because Mutt has not enough information to guess the correct
617 You can fix this by tagging the reply, then moving to the parent message
618 and using the <code class="literal"><link-threads></code> function (bound to & by default). The
619 reply will then be connected to this parent message.
621 You can also connect multiple children at once, tagging them and using the
622 <code class="literal"><tag-prefix></code> command (';') or the <a class="link" href="reference.html#auto-tag" title="3.17. auto_tag">$auto_tag</a> option.
623 </p></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="break-threads"></a>10.2. Breaking Threads</h3></div></div></div><p>
624 On mailing lists, some people are in the bad habit of starting a new
625 discussion by hitting “<span class="quote">reply</span>” to any message from the list and changing
626 the subject to a totally unrelated one.
627 You can fix such threads by using the <code class="literal"><break-thread></code> function (bound
628 by default to #), which will turn the subthread starting from the
629 current message into a whole different thread.
630 </p></div></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="dsn"></a>11. Delivery Status Notification (DSN) Support</h2></div></div></div><p>
631 RFC1894 defines a set of MIME content types for relaying information
632 about the status of electronic mail messages. These can be thought of as
633 “<span class="quote">return receipts.</span>”
635 To support DSN, there are two variables. <a class="link" href="reference.html#dsn-notify" title="3.54. dsn_notify">$dsn_notify</a> is used to request receipts for
636 different results (such as failed message, message delivered, etc.).
637 <a class="link" href="reference.html#dsn-return" title="3.55. dsn_return">$dsn_return</a> requests how much
638 of your message should be returned with the receipt (headers or full
641 When using <a class="link" href="reference.html#sendmail" title="3.230. sendmail">$sendmail</a> for mail
642 delivery, you need to use either Berkeley sendmail 8.8.x (or greater) a MTA
643 supporting DSN command line options compatible to Sendmail: The -N and -R
644 options can be used by the mail client to make requests as to what type of
645 status messages should be returned. Please consider your MTA documentation
646 whether DSN is supported.
648 For SMTP delivery using <a class="link" href="reference.html#smtp-url" title="3.262. smtp_url">$smtp_url</a>, it depends on the
649 capabilities announced by the server whether Mutt will attempt to
651 </p></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="urlview"></a>12. Start a WWW Browser on URLs</h2></div></div></div><p>
652 If a message contains URLs, it is efficient to get
653 a menu with all the URLs and start a WWW browser on one of them. This
654 functionality is provided by the external urlview program which can be
656 <a class="ulink" href="ftp://ftp.mutt.org/mutt/contrib/" target="_top">ftp://ftp.mutt.org/mutt/contrib/</a>
657 and the configuration commands:
658 </p><pre class="screen">
659 macro index \cb |urlview\n
660 macro pager \cb |urlview\n
661 </pre></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="misc-topics"></a>13. Miscellany</h2></div></div></div><p>
662 This section documents various features that fit nowhere else.
663 </p><div class="variablelist"><dl><dt><span class="term">
664 Address normalization
666 Mutt normalizes all e-mail addresses to the simplest form possible. If
667 an address contains a realname, the form
668 <span class="emphasis"><em>Joe User <joe@example.com></em></span> is used and the
669 pure e-mail address without angle brackets otherwise, i.e. just
670 <span class="emphasis"><em>joe@example.com</em></span>.
672 This normalization affects all headers Mutt generates including aliases.
673 </p></dd><dt><span class="term">
674 Initial folder selection
676 The folder Mutt opens at startup is determined as follows: the folder
677 specified in the <code class="literal">$MAIL</code> environment variable if
678 present. Otherwise, the value of <code class="literal">$MAILDIR</code> is taken
679 into account. If that isn't present either, Mutt takes the user's
680 mailbox in the mailspool as determined at compile-time (which may also
681 reside in the home directory). The
682 <a class="link" href="reference.html#spoolfile" title="3.269. spoolfile">$spoolfile</a> setting overrides
683 this selection. Highest priority has the mailbox given with the
684 <code class="literal">-f</code> command line option.
685 </p></dd></dl></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="configuration.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="mimesupport.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 3. Configuration </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 5. Mutt's MIME Support</td></tr></table></div></body></html>