File: optionalfeatures.html

package info (click to toggle)
mutt 1.5.20-9%2Bsqueeze3
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 15,060 kB
  • ctags: 5,313
  • sloc: ansic: 79,584; sh: 4,606; perl: 958; makefile: 720; yacc: 318; awk: 17
file content (378 lines) | stat: -rw-r--r-- 31,094 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 6. Optional Features</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="mimesupport.html" title="Chapter 5. Mutt's MIME Support" /><link rel="next" href="security.html" title="Chapter 7. Security Considerations" /><style xmlns="" type="text/css">
      body { margin-left:2%; margin-right:2%; font-family:serif; }
.toc, .list-of-tables, .list-of-examples { font-family:sans-serif; }
h1, h2, h3, h4, h5, h6 { font-family:sans-serif; }
p { text-align:justify; }
div.table p.title, div.example p.title { font-size:smaller; font-family:sans-serif; }
.email, .email a { font-family:monospace; }
div.table-contents table, div.informaltable table { border-collapse:collapse; border:1px solid #c0c0c0; }
div.table-contents table td, div.informaltable td, div.table-contents table th, div.informaltable table th { padding:5px; text-align:left; }
div.table-contents table th, div.informaltable table th {
    font-family:sans-serif;
    background:#d0d0d0;
    font-weight:normal;
    vertical-align:top;
}
div.cmdsynopsis { border-left:1px solid #707070; padding-left:5px; }
li div.cmdsynopsis { border-left:none; padding-left:0px; }
pre.screen, div.note { background:#f0f0f0; border:1px solid #c0c0c0; padding:5px; margin-left:2%; margin-right:2%; }
div.example p.title { margin-left:2%; }
div.note h3 { font-size:small; font-style:italic; font-variant: small-caps; }
div.note h3:after { content: ":" }
div.note { margin-bottom: 5px; }
strong.command { font-family: monospace; font-weight: normal; }
tr { vertical-align: top; }

    </style></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 6. Optional Features</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="mimesupport.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="security.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="optionalfeatures"></a>Chapter 6. Optional Features</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="optionalfeatures.html#optionalfeatures-notes">1. General Notes</a></span></dt><dd><dl><dt><span class="sect2"><a href="optionalfeatures.html#compile-time-features">1.1. Enabling/Disabling Features</a></span></dt><dt><span class="sect2"><a href="optionalfeatures.html#url-syntax">1.2. URL Syntax</a></span></dt></dl></dd><dt><span class="sect1"><a href="optionalfeatures.html#ssl">2. SSL/TLS Support</a></span></dt><dt><span class="sect1"><a href="optionalfeatures.html#pop">3. POP3 Support</a></span></dt><dt><span class="sect1"><a href="optionalfeatures.html#imap">4. IMAP Support</a></span></dt><dd><dl><dt><span class="sect2"><a href="optionalfeatures.html#imap-browser">4.1. The IMAP Folder Browser</a></span></dt><dt><span class="sect2"><a href="optionalfeatures.html#imap-authentication">4.2. Authentication</a></span></dt></dl></dd><dt><span class="sect1"><a href="optionalfeatures.html#smtp">5. SMTP Support</a></span></dt><dt><span class="sect1"><a href="optionalfeatures.html#account-hook">6. Managing Multiple Accounts</a></span></dt><dt><span class="sect1"><a href="optionalfeatures.html#caching">7. Local Caching</a></span></dt><dd><dl><dt><span class="sect2"><a href="optionalfeatures.html#header-caching">7.1. Header Caching</a></span></dt><dt><span class="sect2"><a href="optionalfeatures.html#body-caching">7.2. Body Caching</a></span></dt><dt><span class="sect2"><a href="optionalfeatures.html#maint-cache">7.3. Maintenance</a></span></dt></dl></dd><dt><span class="sect1"><a href="optionalfeatures.html#exact-address">8. Exact Address Generation</a></span></dt><dt><span class="sect1"><a href="optionalfeatures.html#sending-mixmaster">9. Sending Anonymous Messages via Mixmaster</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="optionalfeatures-notes"></a>1. General Notes</h2></div></div></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="compile-time-features"></a>1.1. Enabling/Disabling Features</h3></div></div></div><p>
Mutt supports several of optional features which can be enabled or
disabled at compile-time by giving the <span class="emphasis"><em>configure</em></span> script
certain arguments. These are listed in the “<span class="quote">Optional features</span>” section of
the <span class="emphasis"><em>configure --help</em></span> output.
</p><p>
Which features are enabled or disabled can later be determined from the
output of <code class="literal">mutt -v</code>. If a compile option starts with
“<span class="quote">+</span>” it is enabled and disabled if prefixed with “<span class="quote">-</span>”. For example, if
Mutt was compiled using GnuTLS for encrypted communication instead of
OpenSSL, <code class="literal">mutt -v</code> would contain:
</p><pre class="screen">
-USE_SSL_OPENSSL +USE_SSL_GNUTLS</pre></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="url-syntax"></a>1.2. URL Syntax</h3></div></div></div><p>
Mutt optionally supports the IMAP, POP3 and SMTP protocols which require
to access servers using URLs. The canonical syntax for specifying URLs
in Mutt is (an item enclosed in <code class="literal">[]</code> means it is optional and
may be omitted):
</p><pre class="screen">
proto[s]://[username[:password]@]server[:port]/[path]
</pre><p>
<span class="emphasis"><em>proto</em></span> is the communication protocol:
<code class="literal">imap</code> for IMAP, <code class="literal">pop</code> for POP3 and
<code class="literal">smtp</code> for SMTP. If “<span class="quote">s</span>” for “<span class="quote">secure
communication</span>” is appended, Mutt will attempt to establish an
encrypted communication using SSL or TLS.
</p><p>
Since all protocols supported by Mutt support/require authentication,
login credentials may be specified in the URL. This has the advantage
that multiple IMAP, POP3 or SMTP servers may be specified (which isn't
possible using, for example,
<a class="link" href="reference.html#imap-user" title="3.109. imap_user">$imap_user</a>). The username
may contain the “<span class="quote">@</span>” symbol being used by many mail systems
as part of the login name. A password can be given, too but is not
recommended if the URL is specified in a configuration file on disk.
</p><p>
If no port number is given, Mutt will use the system's default for the
given protocol (usually consulting <code class="literal">/etc/services</code>).
</p><p>
The optional path is only relevant for IMAP.
</p><div class="example"><a id="ex-url"></a><p class="title"><b>Example 6.1. URLs</b></p><div class="example-contents"><pre class="screen">
pops://host/
imaps://user@host/INBOX/Sent
smtp://user@host:587/
</pre></div></div><br class="example-break" /></div></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ssl"></a>2. SSL/TLS Support</h2></div></div></div><p>
If Mutt is compiled with IMAP, POP3 and/or SMTP support, it can also be
compiled with support for SSL or TLS using either OpenSSL or GnuTLS (
by running the <span class="emphasis"><em>configure</em></span> script with the
<span class="emphasis"><em>--enable-ssl=...</em></span> option for OpenSSL or
<span class="emphasis"><em>--enable-gnutls=...</em></span> for GnuTLS). Mutt can then
attempt to encrypt communication with remote servers if these protocols
are suffixed with “<span class="quote">s</span>” for “<span class="quote">secure communication</span>”.
</p></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="pop"></a>3. POP3 Support</h2></div></div></div><p>
If Mutt is compiled with POP3 support (by running the <span class="emphasis"><em>configure</em></span>
script with the <span class="emphasis"><em>--enable-pop</em></span> flag), it has the ability to work
with mailboxes located on a remote POP3 server and fetch mail for local
browsing.
</p><p>
Remote POP3 servers can be accessed using URLs with the <code class="literal">pop</code> protocol
for unencrypted and <code class="literal">pops</code> for encrypted
communication, see <a class="xref" href="optionalfeatures.html#url-syntax" title="1.2. URL Syntax">Section 1.2, “URL Syntax”</a> for details.
</p><p>
Polling for new mail is more expensive over POP3 than locally. For this
reason the frequency at which Mutt will check for mail remotely can be
controlled by the
<a class="link" href="reference.html#pop-checkinterval" title="3.187. pop_checkinterval">$pop_checkinterval</a>
variable, which defaults to every 60 seconds.
</p><p>
POP is read-only which doesn't allow for some features like editing
messages or changing flags. However, using
<a class="xref" href="optionalfeatures.html#header-caching" title="7.1. Header Caching">Section 7.1, “Header Caching”</a> and <a class="xref" href="optionalfeatures.html#body-caching" title="7.2. Body Caching">Section 7.2, “Body Caching”</a>
Mutt simulates the new/old/read flags as well as flagged and replied.
Mutt applies some logic on top of remote messages but cannot change
them so that modifications of flags are lost when
messages are downloaded from the POP server (either by Mutt or other
tools).
</p><a id="fetch-mail"></a><p>
Another way to access your POP3 mail is the <code class="literal">&lt;fetch-mail&gt;</code> function
(default: G).  It allows to connect to <a class="link" href="reference.html#pop-host" title="3.189. pop_host">$pop_host</a>, fetch all your new mail and place it in the
local <a class="link" href="reference.html#spoolfile" title="3.269. spoolfile">$spoolfile</a>.  After this
point, Mutt runs exactly as if the mail had always been local.
</p><div class="note"><h3 class="title">Note</h3><p>
If you only need to fetch all messages to a
local mailbox you should consider using a specialized program, such as
<code class="literal">fetchmail(1)</code>, <code class="literal">getmail(1)</code> or similar.
</p></div></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="imap"></a>4. IMAP Support</h2></div></div></div><p>
If Mutt was compiled with IMAP support (by running the <span class="emphasis"><em>configure</em></span>
script with the <span class="emphasis"><em>--enable-imap</em></span> flag), it has the ability to work
with folders located on a remote IMAP server.
</p><p>
You can access the remote inbox by selecting the folder by its URL
(see <a class="xref" href="optionalfeatures.html#url-syntax" title="1.2. URL Syntax">Section 1.2, “URL Syntax”</a> for details) using the
<code class="literal">imap</code> or <code class="literal">imaps</code> protocol.
Alternatively, a pine-compatible notation is also supported, ie
<code class="literal">{[username@]imapserver[:port][/ssl]}path/to/folder</code>
</p><p>
Note that not all servers use “<span class="quote">/</span>” as the hierarchy separator.  Mutt should
correctly notice which separator is being used by the server and convert
paths accordingly.
</p><p>
When browsing folders on an IMAP server, you can toggle whether to look
at only the folders you are subscribed to, or all folders with the
<span class="emphasis"><em>toggle-subscribed</em></span> command.  See also the
<a class="link" href="reference.html#imap-list-subscribed" title="3.102. imap_list_subscribed">$imap_list_subscribed</a> variable.
</p><p>
Polling for new mail on an IMAP server can cause noticeable delays. So, you'll
want to carefully tune the
<a class="link" href="reference.html#mail-check" title="3.118. mail_check">$mail_check</a>
and
<a class="link" href="reference.html#timeout" title="3.291. timeout">$timeout</a>
variables. Reasonable values are:
</p><pre class="screen">
set mail_check=90
set timeout=15
</pre><p>
with relatively good results even over slow modem lines.
</p><div class="note"><h3 class="title">Note</h3><p>
Note that if you are using mbox as the mail store on UW servers prior to
v12.250, the server has been reported to disconnect a client if another client
selects the same folder.
</p></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="imap-browser"></a>4.1. The IMAP Folder Browser</h3></div></div></div><p>
As of version 1.2, Mutt supports browsing mailboxes on an IMAP
server. This is mostly the same as the local file browser, with the
following differences:
</p><div class="itemizedlist"><ul type="disc"><li><p>
In lieu of file permissions, Mutt displays the string “<span class="quote">IMAP</span>”,
possibly followed by the symbol “<span class="quote">+</span>”, indicating
that the entry contains both messages and subfolders. On
Cyrus-like servers folders will often contain both messages and
subfolders.
</p></li><li><p>
For the case where an entry can contain both messages and
subfolders, the selection key (bound to <code class="literal">enter</code> by default)
will choose to descend into the subfolder view. If you wish to view
the messages in that folder, you must use <code class="literal">view-file</code> instead
(bound to <code class="literal">space</code> by default).
</p></li><li><p>
You can create, delete and rename mailboxes with the
<code class="literal">&lt;create-mailbox&gt;</code>, <code class="literal">&lt;delete-mailbox&gt;</code>, and
<code class="literal">&lt;rename-mailbox&gt;</code> commands (default bindings: <code class="literal">C</code>,
<code class="literal">d</code> and <code class="literal">r</code>, respectively). You may also
<code class="literal">&lt;subscribe&gt;</code> and <code class="literal">&lt;unsubscribe&gt;</code> to mailboxes (normally
these are bound to <code class="literal">s</code> and <code class="literal">u</code>, respectively).
</p></li></ul></div></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="imap-authentication"></a>4.2. Authentication</h3></div></div></div><p>
Mutt supports four authentication methods with IMAP servers: SASL,
GSSAPI, CRAM-MD5, and LOGIN (there is a patch by Grant Edwards to add
NTLM authentication for you poor exchange users out there, but it has
yet to be integrated into the main tree). There is also support for
the pseudo-protocol ANONYMOUS, which allows you to log in to a public
IMAP server without having an account. To use ANONYMOUS, simply make
your username blank or “<span class="quote">anonymous</span>”.
</p><p>
SASL is a special super-authenticator, which selects among several protocols
(including GSSAPI, CRAM-MD5, ANONYMOUS, and DIGEST-MD5) the most secure
method available on your host and the server. Using some of these methods
(including DIGEST-MD5 and possibly GSSAPI), your entire session will be
encrypted and invisible to those teeming network snoops. It is the best
option if you have it. To use it, you must have the Cyrus SASL library
installed on your system and compile Mutt with the <span class="emphasis"><em>--with-sasl</em></span> flag.
</p><p>
Mutt will try whichever methods are compiled in and available on the server,
in the following order: SASL, ANONYMOUS, GSSAPI, CRAM-MD5, LOGIN.
</p><p>
There are a few variables which control authentication:
</p><div class="itemizedlist"><ul type="disc"><li><p>
<a class="link" href="reference.html#imap-user" title="3.109. imap_user">$imap_user</a> - controls
the username under which you request authentication on the IMAP server,
for all authenticators. This is overridden by an explicit username in
the mailbox path (ie by using a mailbox name of the form
<code class="literal">{user@host}</code>).
</p></li><li><p>
<a class="link" href="reference.html#imap-pass" title="3.104. imap_pass">$imap_pass</a> - a
password which you may preset, used by all authentication methods where
a password is needed.
</p></li><li><p>
<a class="link" href="reference.html#imap-authenticators" title="3.96. imap_authenticators">$imap_authenticators</a> - a colon-delimited list of IMAP
authentication methods to try, in the order you wish to try them. If
specified, this overrides Mutt's default (attempt everything, in the order
listed above).
</p></li></ul></div></div></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="smtp"></a>5. SMTP Support</h2></div></div></div><p>
Besides supporting traditional mail delivery through a
sendmail-compatible program, Mutt supports delivery through SMTP if it
was configured and built with <code class="literal">--enable-smtp</code>.
</p><p>
If the configuration variable
<a class="link" href="reference.html#smtp-url" title="3.262. smtp_url">$smtp_url</a> is set, Mutt
will contact the given SMTP server to deliver messages; if it is unset,
Mutt will use the program specified by <a class="link" href="reference.html#sendmail" title="3.230. sendmail">$sendmail</a>.
</p><p>
For details on the URL syntax, please see <a class="xref" href="optionalfeatures.html#url-syntax" title="1.2. URL Syntax">Section 1.2, “URL Syntax”</a>.
</p><p>
The built-in SMTP support supports encryption (the <code class="literal">smtps</code> protocol
using SSL or TLS) as well as SMTP authentication using SASL. The authentication mechanisms
for SASL are specified in <a class="link" href="reference.html#smtp-authenticators" title="3.260. smtp_authenticators">$smtp_authenticators</a>
defaulting to an empty list which makes Mutt try all available methods
from most-secure to least-secure.
</p></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="account-hook"></a>6. Managing Multiple Accounts</h2></div></div></div><p>
Usage:
</p><div class="cmdsynopsis"><p><code class="command">account-hook</code>   
<em class="replaceable"><code>pattern</code></em>
   
<em class="replaceable"><code>command</code></em>
 </p></div><p>
If you happen to have accounts on multiple IMAP, POP and/or SMTP servers,
you may find managing all the authentication settings inconvenient and
error-prone. The <a class="link" href="optionalfeatures.html#account-hook" title="6. Managing Multiple Accounts"><span class="command"><strong>account-hook</strong></span></a> command may help. This hook works like
<a class="link" href="configuration.html#folder-hook" title="7. Setting Variables Based Upon Mailbox"><span class="command"><strong>folder-hook</strong></span></a> but is invoked whenever Mutt needs to access a remote mailbox
(including inside the folder browser), not just when you open the
mailbox. This includes (for example) polling for new mail, storing Fcc
messages and saving messages to a folder. As a consequence,
<a class="link" href="optionalfeatures.html#account-hook" title="6. Managing Multiple Accounts"><span class="command"><strong>account-hook</strong></span></a> should only be used to set connection-related settings such
as passwords or tunnel commands but not settings such as sender
address or name (because in general it should be considered unpredictable
which <a class="link" href="optionalfeatures.html#account-hook" title="6. Managing Multiple Accounts"><span class="command"><strong>account-hook</strong></span></a> was last used).
</p><p>
Some examples:
</p><pre class="screen">
account-hook . 'unset imap_user; unset imap_pass; unset tunnel'
account-hook imap://host1/ 'set imap_user=me1 imap_pass=foo'
account-hook imap://host2/ 'set tunnel="ssh host2 /usr/libexec/imapd"'
account-hook smtp://user@host3/ 'set tunnel="ssh host3 /usr/libexec/smtpd"'
</pre><p>
To manage multiple accounts with, for example, different values of
<a class="link" href="reference.html#record" title="3.211. record">$record</a> or sender addresses,
<a class="link" href="configuration.html#folder-hook" title="7. Setting Variables Based Upon Mailbox"><span class="command"><strong>folder-hook</strong></span></a>
has to be be used together with
the <a class="link" href="configuration.html#mailboxes" title="14. Monitoring Incoming Mail"><span class="command"><strong>mailboxes</strong></span></a> command.
</p><div class="example"><a id="ex-multiaccount"></a><p class="title"><b>Example 6.2. Managing multiple accounts</b></p><div class="example-contents"><pre class="screen">
mailboxes imap://user@host1/INBOX
folder-hook imap://user@host1/ 'set folder=imap://host1/ ; set record=+INBOX/Sent'

mailboxes imap://user@host2/INBOX
folder-hook imap://user@host2/ 'set folder=imap://host2/ ; set record=+INBOX/Sent'
</pre></div></div><br class="example-break" /><p>
In example
<a class="xref" href="optionalfeatures.html#ex-multiaccount" title="Example 6.2. Managing multiple accounts">Example 6.2, “Managing multiple accounts”</a> the folders are defined using
<a class="link" href="configuration.html#mailboxes" title="14. Monitoring Incoming Mail"><span class="command"><strong>mailboxes</strong></span></a> so Mutt polls them for new
mail. Each <a class="link" href="configuration.html#folder-hook" title="7. Setting Variables Based Upon Mailbox"><span class="command"><strong>folder-hook</strong></span></a> triggers when
one mailbox below each IMAP account is opened and sets
<a class="link" href="reference.html#folder" title="3.66. folder">$folder</a> to the account's root
folder. Next, it sets <a class="link" href="reference.html#record" title="3.211. record">$record</a> to
the <span class="emphasis"><em>INBOX/Sent</em></span> folder below the newly
set <a class="link" href="reference.html#folder" title="3.66. folder">$folder</a>. Please notice that the
value the “<span class="quote">+</span>”
<a class="link" href="advancedusage.html#shortcuts" title="7. Mailbox Shortcuts">mailbox shortcut</a> refers to depends on
the <span class="emphasis"><em>current</em></span> value
of <a class="link" href="reference.html#folder" title="3.66. folder">$folder</a> and therefore has to be set
separatedly per account. Setting other values
like <a class="link" href="reference.html#from" title="3.75. from">$from</a>
or <a class="link" href="reference.html#signature" title="3.235. signature">$signature</a> is analogous to setting
<a class="link" href="reference.html#record" title="3.211. record">$record</a>.
</p></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="caching"></a>7. Local Caching</h2></div></div></div><p>
Mutt contains two types of local caching: <span class="emphasis"><em>(1)</em></span>
the so-called “<span class="quote">header caching</span>” and <span class="emphasis"><em>(2)</em></span> the
so-called “<span class="quote">body caching</span>” which are both described in this section.
</p><p>
Header caching is optional as it depends on external libraries, body
caching is always enabled if Mutt is compiled with POP and/or IMAP
support as these use it (body caching requires no external library).
</p><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="header-caching"></a>7.1. Header Caching</h3></div></div></div><p>
Mutt provides optional support for caching message headers for the
following types of folders: IMAP, POP, Maildir and MH. Header caching
greatly improves speed because for remote folders, headers
usually only need to be downloaded once. For Maildir and MH, reading the
headers from a single file is much faster than looking at possibly
thousands of single files (since Maildir and MH use one file per message.)
</p><p>
Header caching can be enabled via the configure script and the
<span class="emphasis"><em>--enable-hcache</em></span> option. It's not turned on
by default because external database libraries are required: one
of tokyocabinet, qdbm, gdbm or bdb must be present.
</p><p>
If enabled, <a class="link" href="reference.html#header-cache" title="3.79. header_cache">$header_cache</a> can be
used to either point to a file or a directory. If set to point to
a file, one database file for all folders will be used (which may
result in lower performance), but one file per folder if it points
to a directory.
</p></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="body-caching"></a>7.2. Body Caching</h3></div></div></div><p>
Both cache methods can be combined using the same directory for storage
(and for IMAP/POP even provide meaningful file names) which simplifies
manual maintenance tasks.
</p><p>
In addition to caching message headers only, Mutt can also cache
whole message bodies. This results in faster display of messages
for POP and IMAP folders because messages usually have to be
downloaded only once.
</p><p>
For configuration, the variable <a class="link" href="reference.html#message-cachedir" title="3.132. message_cachedir">$message_cachedir</a> must point to a
directory. There, Mutt will create a hierarchy of subdirectories
named like: <code class="literal">proto:user@hostname</code> where
<code class="literal">proto</code> is either “<span class="quote">pop</span>” or “<span class="quote">imap.</span>” Within
there for each folder, Mutt stores messages in single files.
All files can be removed as needed if the consumed disk space
becomes an issue as Mutt will silently fetch missing items again.
</p></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="maint-cache"></a>7.3. Maintenance</h3></div></div></div><p>
Mutt does not (yet) support maintenance features for header cache
database files so that files have to be removed in case they grow too
big. It depends on the database library used for header caching whether
disk space freed by removing messages is re-used.
</p><p>
For body caches, Mutt can keep the local cache in sync with the
remote mailbox if the
<a class="link" href="reference.html#message-cache-clean" title="3.131. message_cache_clean">$message_cache_clean</a>
variable is set. Cleaning means to remove messages from the cache which
are no longer present in the mailbox which only happens when other mail
clients or instances of Mutt using a different body cache location
delete messages (Mutt itself removes deleted messages from the cache
when syncing a mailbox). As cleaning can take a noticeable amount of time,
it should not be set in general but only occasionally.
</p></div></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="exact-address"></a>8. Exact Address Generation</h2></div></div></div><p>
Mutt supports the “<span class="quote">Name &lt;user@host&gt;</span>” address syntax for reading and
writing messages, the older “<span class="quote">user@host (Name)</span>” syntax is only supported when
reading messages. The <span class="emphasis"><em>--enable-exact-address</em></span>
switch can be given to configure to build it with write-support
for the latter syntax. <code class="literal">EXACT_ADDRESS</code> in the output of
<code class="literal">mutt -v</code> indicates whether it's supported.
</p></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sending-mixmaster"></a>9. Sending Anonymous Messages via Mixmaster</h2></div></div></div><p>
You may also have compiled Mutt to co-operate with Mixmaster, an
anonymous remailer.  Mixmaster permits you to send your messages
anonymously using a chain of remailers. Mixmaster support in Mutt is for
mixmaster version 2.04 (beta 45 appears to be the latest) and 2.03.
It does not support earlier versions or the later so-called version 3 betas,
of which the latest appears to be called 2.9b23.
</p><p>
To use it, you'll have to obey certain restrictions.  Most
important, you cannot use the <code class="literal">Cc</code> and <code class="literal">Bcc</code> headers.  To tell
Mutt to use mixmaster, you have to select a remailer chain, using
the mix function on the compose menu.
</p><p>
The chain selection screen is divided into two parts.  In the
(larger) upper part, you get a list of remailers you may use.  In
the lower part, you see the currently selected chain of remailers.
</p><p>
You can navigate in the chain using the <code class="literal">&lt;chain-prev&gt;</code> and
<code class="literal">&lt;chain-next&gt;</code> functions, which are by default bound to the left
and right arrows and to the <code class="literal">h</code> and <code class="literal">l</code> keys (think vi
keyboard bindings).  To insert a remailer at the current chain
position, use the <code class="literal">&lt;insert&gt;</code> function.  To append a remailer behind
the current chain position, use <code class="literal">&lt;select-entry&gt;</code> or <code class="literal">&lt;append&gt;</code>.
You can also delete entries from the chain, using the corresponding
function.  Finally, to abandon your changes, leave the menu, or
<code class="literal">&lt;accept&gt;</code> them pressing (by default) the <code class="literal">Return</code> key.
</p><p>
Note that different remailers do have different capabilities,
indicated in the %c entry of the remailer menu lines (see
<a class="link" href="reference.html#mix-entry-format" title="3.143. mix_entry_format">$mix_entry_format</a>).  Most important is
the “<span class="quote">middleman</span>” capability, indicated by a capital “<span class="quote">M</span>”: This
means that the remailer in question cannot be used as the final
element of a chain, but will only forward messages to other
mixmaster remailers.  For details on the other capabilities, please
have a look at the mixmaster documentation.
</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="mimesupport.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="security.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 5. Mutt's MIME Support </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 7. Security Considerations</td></tr></table></div></body></html>