+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<!-- THIS FILE IST NOT VALID DOCBOOK ! DTD REMOVED -->
-<!-- Please don't use html entities like [, ] ^ -->
-<!-- etc. they don't work with xml! -->
-<book xmlns:madmutt-doc="http://Madmutt.berlios.de/doc/#NS">
-
-<bookinfo> <!--{{{-->
- <title>The Mutt Next Generation E-Mail Client</title>
- <author>
- <firstname>Andreas</firstname><surname>Krennmair</surname>
- <email>ak@synflood.at</email>
- </author>
- <author>
- <firstname>Michael</firstname><surname>Elkins</surname>
- <email>me@cs.hmc.edu</email>
- </author>
- <pubdate>version @VERSION@</pubdate>
- <abstract>
- <para>
- Michael Elinks on mutt, circa 1995:
- ``All mail clients suck. This one just sucks less.''
- </para>
- <para>
- Sven Guckes on mutt, ca. 2003: ``But it still sucks!''
- </para>
- </abstract>
-</bookinfo> <!--}}}-->
-
-<chapter id="introduction"> <!--{{{-->
- <title>Introduction</title>
-
- <sect1 id="overview">
- <title>Overview</title>
-
- <para>
- <emphasis role="bold">Madmutt</emphasis> is a small but very
- powerful text-based MIME mail client. Madmutt is highly
- configurable, and is well suited to the mail power user with
- advanced features like key bindings, keyboard macros, mail
- threading, regular expression searches and a powerful pattern
- matching language for selecting groups of messages.
- </para>
-
- <para>
- This documentation additionally contains documentation to
- <emphasis role="bold"> Madmutt </emphasis> ,a fork from Mutt
- with the goal to fix all the little annoyances of Mutt, to
- integrate all the Mutt patches that are floating around in the
- web, and to add other new features. Features specific to Madmutt
- will be discussed in an extra section. Don't be confused when
- most of the documentation talk about Mutt and not Madmutt,
- Madmutt contains all Mutt features, plus many more.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="homepage">
- <title>Madmutt Home Page</title>
-
- <para>
- <madmutt-doc:web url="http://www.madmutt.org/"/>
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="mailinglists">
- <title>Mailing Lists</title>
-
- <para>
-
- <itemizedlist>
- <listitem>
-
- <para>
- <email>Madmutt-users@lists.berlios.de</email>: This is
- where the Madmutt user support happens.
- </para>
- </listitem>
- <listitem>
-
- <para>
- <email>Madmutt-devel@lists.berlios.de</email>: The
- development mailing list for Madmutt
- </para>
- </listitem>
-
- </itemizedlist>
-
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="distrib-sites">
- <title>Software Distribution Sites</title>
-
- <para>
- So far, there are no official releases of Madmutt, but you can
- download daily snapshots from <madmutt-doc:web url="http://Madmutt.berlios.de/snapshots/"/>
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="irc">
- <title>IRC</title>
-
- <para>
- Visit channel <emphasis>#madmutt</emphasis> on <ulink
- url="http://www.freenode.net/">irc.freenode.net
- (www.freenode.net) </ulink> to chat with other people
- interested in Madmutt.
- </para>
-
- </sect1>
-
- <sect1 id="weblog">
- <title>Weblog</title>
-
- <para>
- If you want to read fresh news about the latest development in
- Madmutt, and get informed about stuff like interesting,
- Madmutt-related articles and packages for your favorite
- distribution, you can read and/or subscribe to our <ulink
- url="http://Madmutt.supersized.org/">Madmutt development
- weblog</ulink>.
- </para>
-
- </sect1>
-
- <sect1 id="copyright">
- <title>Copyright</title>
-
- <para>
- Mutt is Copyright (C) 1996-2000 Michael R. Elkins
- <me@cs.hmc.edu> and others
- </para>
-
- <para>
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
- </para>
-
- <para>
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- </para>
-
- <para>
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- </para>
-
- </sect1>
-
- <sect1 id="conventions">
- <title>Manual Conventions</title>
-
- <para>
- This manual contains several (hopefully consistent) conventions to
- specially layout different items in different fashions.
- </para>
-
- <para>
- <itemizedlist>
- <listitem>
- <para>Configuration and environment variables will be printed
- in a typewriter font and both prefixed with a dollar sign as
- it's common for UNIX-like environments. Configuration
- variables are lower-case only while environment variables
- are upper-case only. <madmutt-doc:varref
- name="imap-mail-check"/> is a configuration variable while
- <madmutt-doc:envvar name="EDITOR"/> is an environment
- variable.</para>
- </listitem>
- <listitem>
- <para>madmutt-specific functions are enclosed in
- <literal><></literal> and printed in a typewriter font,
- too, as in <madmutt-doc:funcref name="sync-mailbox"/>.</para>
- </listitem>
- <listitem>
- <para>As common for UNIX-like environments, references to
- manual pages are printed with the section enclosed in
- braces, as in <madmutt-doc:man name="vi"/> or <madmutt-doc:man
- name="madmuttrc" sect="5"/>. Execute <literal>man [section]
- [name]</literal> to view the manual page.</para>
- </listitem>
- <listitem>
- <para>Keys are presented in the following way: ordinary keys
- are just given as-is, e.g.
- <madmutt-doc:key>q</madmutt-doc:key>. Control characters are
- prefixed with <literal>C-</literal> (e.g. the screen can be
- redraw by pressing <madmutt-doc:key
- mod="C">L</madmutt-doc:key>) and <literal>E-</literal> for
- Escape, e.g. a folder can be opened read-only with
- <madmutt-doc:key mod="E">c</madmutt-doc:key>.
- </para>
- </listitem>
- </itemizedlist>
- </para>
-
- <para>
- If, while reading this fine manual, you find any inconsistencies
- of whatever kind, please contact the developers via
- <email>Madmutt-devel@lists.berlios.de</email> to report it.
- </para>
-
- </sect1>
-
-</chapter>
-<!--}}}-->
-
-<chapter id="getting-started"> <!--{{{-->
- <title>Getting Started</title>
-
- <sect1 id="basic-concepts"> <!--{{{-->
- <title>Basic Concepts</title>
-
- <sect2 id="concept-screens-and-menus"> <!--{{{-->
- <title>Screens and Menus</title>
-
- <para>
- Madmutt offers different screens of which every has its special
- purpose:
- </para>
-
- <para>
-
- <itemizedlist>
- <listitem>
-
- <para>
- The <emphasis>index</emphasis> displays the contents of the
- currently opened
- mailbox.
-
- </para>
- </listitem>
- <listitem>
-
- <para>
- The <emphasis>pager</emphasis> is responsible for displaying
- messages, that
- is, the header, the body and all attached parts.
-
- </para>
- </listitem>
- <listitem>
-
- <para>
- The <emphasis>file browser</emphasis> offers operations on and
- displays
- information of all folders Madmutt should watch for mail.
-
- </para>
- </listitem>
- <listitem>
-
- <para>
- The <emphasis>sidebar</emphasis> offers a permanent view of
- which mailboxes
- contain how many total, new and/or flagged mails.
-
- </para>
- </listitem>
- <listitem>
-
- <para>
- The <emphasis>help screen</emphasis> lists for all currently
- available
- commands how to invoke them as well as a short description.
-
- </para>
- </listitem>
- <listitem>
-
- <para>
- The <emphasis>compose</emphasis> menu is a comfortable
- interface take last
- actions before sending mail: change subjects, attach files,
- remove
- attachements, etc.
-
- </para>
- </listitem>
- <listitem>
-
- <para>
- The <emphasis>attachement</emphasis> menu gives a summary and
- the tree
- structure of the attachements of the current message.
-
- </para>
- </listitem>
- <listitem>
-
- <para>
- The <emphasis>alias</emphasis> menu lists all or a fraction of
- the aliases
- a user has defined.
-
- </para>
- </listitem>
- <listitem>
-
- <para>
- The <emphasis>key</emphasis> menu used in connection with
- encryption lets
- users choose the right key to encrypt with.
-
- </para>
- </listitem>
-
- </itemizedlist>
-
- </para>
-
- <para>
- When Madmutt is started without any further options, it'll open
- the users default mailbox and display the index.
- </para>
-
- <para>
-
- </para>
-
- </sect2>
- <!--}}}-->
-
- <sect2 id="concept-configuration"> <!--{{{-->
- <title>Configuration</title>
-
- <para>
- Madmutt does <emphasis>not</emphasis> feature an internal
- configuration
- interface or menu due to the simple fact that this would be too
- complex to handle (currently there are several <emphasis>hundred</emphasis>
- variables which fine-tune the behaviour.)
- </para>
-
- <para>
- Madmutt is configured using configuration files which allow
- users to add comments or manage them via version control systems
- to ease maintenance.
- </para>
-
- <para>
- Also, Madmutt comes with a shell script named <literal>grml-madmutt</literal>
- kindly contributed by users which really helps and eases the
- creation of a user's configuration file. When downloading the
- source code via a snapshot or via subversion, it can be found in
- the <literal>contrib</literal> directory.
- </para>
-
- <para>
-
- </para>
-
- </sect2>
- <!--}}}-->
-
- <sect2 id="concept-functions"> <!--{{{-->
- <title>Functions</title>
-
- <para>
- Madmutt offers great flexibility due to the use of functions:
- internally, every action a user can make Madmutt perform is named
- ``function.'' Those functions are assigned to keys (or even key
- sequences) and may be completely adjusted to user's needs. The
- basic idea is that the impatient users get a very intuitive
- interface to start off with and advanced users virtually get no
- limits to adjustments.
- </para>
-
- <para>
-
- </para>
-
- </sect2>
- <!--}}}-->
-
- <sect2 id="concept-interaction"> <!--{{{-->
- <title>Interaction</title>
-
- <para>
- Madmutt has two basic concepts of user interaction:
- </para>
-
- <para>
-
- <orderedlist>
- <listitem>
-
- <para>
- There is one dedicated line on the screen used to query
- the user for input, issue any command, query variables and
- display error and informational messages. As for every type of
- user input, this requires manual action leading to the need of
- input.
-
- </para>
- </listitem>
- <listitem>
-
- <para>
- The automatized interface for interaction are the so
- called <emphasis>hooks</emphasis>. Hooks specify actions the
- user wants to be
- performed at well-defined situations: what to do when entering
- which folder, what to do when displaying or replying to what
- kind of message, etc. These are optional, i.e. a user doesn't
- need to specify them but can do so.
-
- </para>
- </listitem>
-
- </orderedlist>
-
- </para>
-
- <para>
-
- </para>
-
- </sect2>
- <!--}}}-->
-
- <sect2 id="concept-modularization"> <!--{{{-->
- <title>Modularization</title>
-
- <para>
- Although Madmutt has many functionality built-in, many
- features can be delegated to external tools to increase
- flexibility: users can define programs to filter a message through
- before displaying, users can use any program they want for
- displaying a message, message types (such as PDF or PostScript)
- for which Madmutt doesn't have a built-in filter can be rendered
- by arbitrary tools and so forth. Although Madmutt has an alias
- mechanism built-in, it features using external tools to query for
- nearly every type of addresses from sources like LDAP, databases
- or just the list of locally known users.
- </para>
-
- <para>
-
- </para>
-
- </sect2>
- <!--}}}-->
-
- <sect2 id="concept-patterns"> <!--{{{-->
- <title>Patterns</title>
-
- <para>
- Madmutt has a built-in pattern matching ``language'' which is
- as widely used as possible to present a consistent interface to
- users. The same ``pattern terms'' can be used for searching,
- scoring, message selection and much more.
- </para>
-
- <para>
-
- </para>
-
- <para>
-
- </para>
-
- </sect2>
- <!--}}}-->
-
- </sect1>
-
- <!--}}}-->
-
- <sect1 id="screens-and-menus"> <!--{{{-->
- <title>Screens and Menus</title>
-
- <sect2 id="intro-index">
- <title>Index</title>
-
- <para>
- The index is the screen that you usually see first when you
- start Madmutt. It gives an overview over your emails in the
- currently opened mailbox. By default, this is your system mailbox.
- The information you see in the index is a list of emails, each with
- its number on the left, its flags (new email, important email,
- email that has been forwarded or replied to, tagged email, ...),
- the date when email was sent, its sender, the email size, and the
- subject. Additionally, the index also shows thread hierarchies:
- when you reply to an email, and the other person replies back, you
- can see the other's person email in a "sub-tree" below. This is
- especially useful for personal email between a group of people or
- when you've subscribed to mailing lists.
- </para>
-
- <para>
-
- </para>
-
- </sect2>
-
- <sect2 id="intro-pager">
- <title>Pager</title>
-
- <para>
- The pager is responsible for showing the email content. On the
- top of the pager you have an overview over the most important email
- headers like the sender, the recipient, the subject, and much more
- information. How much information you actually see depends on your
- configuration, which we'll describe below.
- </para>
-
- <para>
- Below the headers, you see the email body which usually contains
- the message. If the email contains any attachments, you will see
- more information about them below the email body, or, if the
- attachments are text files, you can view them directly in the
- pager.
- </para>
-
- <para>
- To give the user a good overview, it is possible to configure
- Madmutt to show different things in the pager with different
- colors. Virtually everything that can be described with a regular
- expression can be colored, e.g. URLs, email addresses or smileys.
- </para>
-
- <para>
-
- </para>
-
- </sect2>
-
- <sect2 id="intro-browser">
- <title>File Browser</title>
-
- <para>
- The file browser is the interface to the local or remote
- file system. When selecting a mailbox to open, the browser allows
- custom sorting of items, limiting the items shown by a regular
- expression and a freely adjustable format of what to display in
- which way. It also allows for easy navigation through the
- file system when selecting file(s) to attach to a message, select
- multiple files to attach and many more.
- </para>
-
- <para>
-
- </para>
-
- </sect2>
-
- <sect2 id="intro-sidebar">
- <title>Sidebar</title>
-
- <para>
- The sidebar comes in handy to manage mails which are spread
- over different folders. All folders users setup Madmutt to watch
- for new mail will be listed. The listing includes not only the
- name but also the number of total messages, the number of new and
- flagged messages. Items with new mail may be colored different
- from those with flagged mail, items may be shortened or compress
- if they're they to long to be printed in full form so that by
- abbreviated names, user still now what the name stands for.
- </para>
-
- <para>
-
- </para>
-
- </sect2>
-
- <sect2 id="intro-help">
- <title>Help</title>
-
- <para>
- The help screen is meant to offer a quick help to the user. It
- lists the current configuration of key bindings and their
- associated commands including a short description, and currently
- unbound functions that still need to be associated with a key
- binding (or alternatively, they can be called via the Madmutt
- command prompt).
- </para>
-
- <para>
-
- </para>
-
- </sect2>
-
- <sect2 id="intro-compose">
- <title>Compose Menu</title>
-
- <para>
- The compose menu features a split screen containing the
- information which really matter before actually sending a
- message by mail or posting an article to a newsgroup: who gets
- the message as what (recipient, newsgroup, who gets what kind of
- copy). Additionally, users may set security options like
- deciding whether to sign, encrypt or sign and encrypt a message
- with/for what keys.
- </para>
-
- <para>
- Also, it's used to attach messages, news articles or files to
- a message, to re-edit any attachment including the message
- itself.
- </para>
-
- <para>
-
- </para>
-
- </sect2>
-
- <sect2 id="intro-alias">
- <title>Alias Menu</title>
-
- <para>
- The alias menu is used to help users finding the recipients
- of messages. For users who need to contact many people, there's
- no need to remember addresses or names completely because it
- allows for searching, too. The alias mechanism and thus the
- alias menu also features grouping several addresses by a shorter
- nickname, the actual alias, so that users don't have to select
- each single recipient manually.
- </para>
-
- <para>
-
- </para>
-
- </sect2>
-
- <sect2 id="intro-attach">
- <title>Attachment Menu</title>
-
- <para>
- As will be later discussed in detail, Madmutt features a good
- and stable MIME implementation, that is, is greatly supports
- sending and receiving messages of arbitrary type. The
- attachment menu displays a message's structure in detail: what
- content parts are attached to which parent part (which gives a
- true tree structure), which type is of what type and what size.
- Single parts may saved, deleted or modified to offer great and
- easy access to message's internals.
- </para>
-
- <para>
-
- </para>
-
- </sect2>
-
- <sect2 id="intro-keysel">
- <title>Key Menu</title>
-
- <para>
- <literal>FIXME</literal>
- </para>
-
- <para>
-
- </para>
-
- <para>
-
- </para>
-
- </sect2>
-
- </sect1>
- <!--}}}-->
-
- <sect1 id="moving"> <!--{{{-->
- <title>Moving Around in Menus</title>
-
- <para>
- Information is presented in menus, very similar to ELM. Here is a
- tableshowing the common keys used to navigate menus in Madmutt.
- </para>
-
- <para>
-
- <table frame="none" rowsep="1" texstr="l|l|l">
- <title>Most commonly used movement bindings</title>
- <tgroup cols="3" align="left" colsep="1" rowsep="1">
- <thead>
- <row>
- <entry>Key</entry>
- <entry>Function</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><madmutt-doc:key>j</madmutt-doc:key> or <madmutt-doc:key>Down</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="next-entry"/></entry>
- <entry>move to the next entry</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>k</madmutt-doc:key> or <madmutt-doc:key>Up</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="previous-entry"/></entry>
- <entry>move to the previous entry</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>z</madmutt-doc:key> or <madmutt-doc:key>PageDn</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="page-down"/></entry>
- <entry>go to the next page</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>Z</madmutt-doc:key> or <madmutt-doc:key>PageUp</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="page-up"/></entry>
- <entry>go to the previous page</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>=</madmutt-doc:key> or <madmutt-doc:key>Home</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="first-entry"/></entry>
- <entry>jump to the first entry</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>*</madmutt-doc:key> or <madmutt-doc:key>End</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="last-entry"/></entry>
- <entry>jump to the last entry</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>q</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="quit"/></entry>
- <entry>exit the current menu</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>?</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="help"/></entry>
- <entry>list all key bindings for the current menu</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
-
- </para>
-
- <para>
-
- </para>
-
- </sect1>
- <!--}}}-->
-
- <sect1 id="editing"> <!--{{{-->
- <title>Editing Input Fields</title>
-
- <para>
- Madmutt has a builtin line editor which is used as the primary way to
- input
- textual data such as email addresses or filenames. The keys used to
- move
- around while editing are very similar to those of Emacs.
- </para>
-
- <para>
-
- <table frame="none" rowsep="1" texstr="l|l|l">
- <title>Line Editor Functions</title>
- <tgroup cols="3" align="left" colsep="1" rowsep="1">
- <thead>
- <row>
- <entry>Key</entry>
- <entry>Function</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><madmutt-doc:key mod="C">A</madmutt-doc:key> or <madmutt-doc:key>Home</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="bol"/></entry>
- <entry>move to the start of the line</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="C">B</madmutt-doc:key> or <madmutt-doc:key>Left</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="backward-char"/>
- </entry><entry>move back one char</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="E">B</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="backward-word"/></entry>
- <entry>move back one word</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="C">D</madmutt-doc:key> or <madmutt-doc:key>Delete</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="delete-char"/></entry>
- <entry>delete the char under the cursor</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="C">E</madmutt-doc:key> or <madmutt-doc:key>End</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="eol"/></entry>
- <entry>move to the end of the line</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="C">F</madmutt-doc:key> or <madmutt-doc:key>Right</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="forward-char"/></entry>
- <entry>move forward one char</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="E">F</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="forward-word"/></entry>
- <entry>move forward one word</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>Tab</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="complete"/></entry>
- <entry>complete filename or alias</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="C">T</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="complete-query"/></entry>
- <entry>complete address with query</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="C">K</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="kill-eol"/></entry>
- <entry>delete to the end of the line</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="E">d</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="kill-eow"/></entry>
- <entry>delete to the end of the word</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="C">W</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="kill-word"/></entry>
- <entry>kill the word in front of the cursor</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="C">U</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="kill-line"/></entry>
- <entry>delete entire line</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="C">V</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="quote-char"/></entry>
- <entry>quote the next typed key</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>Up</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="history-up"/></entry>
- <entry>recall previous string from history</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>Down</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="history-down"/></entry>
- <entry>recall next string from history</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>BackSpace</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="backspace"/></entry>
- <entry>kill the char in front of the cursor</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="E">u</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="upcase-word"/></entry>
- <entry>convert word to upper case</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="E">l</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="downcase-word"/></entry>
- <entry>convert word to lower case</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="E">c</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="capitalize-word"/></entry>
- <entry>capitalize the word</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="C">G</madmutt-doc:key></entry>
- <entry></entry>
- <entry>abort</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>Return</madmutt-doc:key></entry>
- <entry></entry>
- <entry>finish editing</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- </para>
-
- <para>
- You can remap the <emphasis>editor</emphasis> functions using the
- <madmutt-doc:cmdref name="bind"/> command. For example, to make
- the <emphasis>Delete</emphasis> key delete the character in front
- of the cursor rather than under, you could use
- </para>
-
- <para>
- <literal>bind editor <delete> backspace</literal>
- </para>
-
- </sect1>
- <!--}}}-->
-
- <sect1 id="reading"> <!--{{{-->
- <title>Reading Mail - The Index and Pager</title>
-
- <para>
- Similar to many other mail clients, there are two modes in which mail
- isread in Madmutt. The first is the index of messages in the mailbox,
- which is
- called the ``index'' in Madmutt. The second mode is the display of the
- message contents. This is called the ``pager.''
- </para>
-
- <para>
- The next few sections describe the functions provided in each of these
- modes.
- </para>
-
- <sect2 id="reading-index">
- <title>The Message Index</title>
-
- <para>
-
- <table frame="none" rowsep="1" texstr="l|l|l">
- <title>Most commonly used Index Bindings</title>
- <tgroup cols="3" align="left" colsep="1" rowsep="1">
- <thead>
- <row>
- <entry>Key</entry>
- <entry>Function</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><madmutt-doc:key>c</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>change to a different mailbox</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="E">c</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>change to a folder in read-only mode</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>C</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>copy the current message to another mailbox</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="E">C</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>decode a message and copy it to a folder</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="E">s</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>decode a message and save it to a folder</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>D</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>delete messages matching a pattern</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>d</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>delete the current message</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>F</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>mark as important</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>l</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>show messages matching a pattern</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>N</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>mark message as new</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>o</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>change the current sort method</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>O</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>reverse sort the mailbox</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>q</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>save changes and exit</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>s</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>save-message</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>T</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>tag messages matching a pattern</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>t</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>toggle the tag on a message</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="E">t</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>toggle tag on entire message thread</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>U</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>undelete messages matching a pattern</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>u</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>undelete-message</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>v</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>view-attachments</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>x</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>abort changes and exit</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>Return</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>display-message</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>Tab</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>jump to the next new or unread message</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>@</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>show the author's full e-mail address</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>$</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>save changes to mailbox</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>/</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>search</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="E">/</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>search-reverse</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="C">L</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>clear and redraw the screen</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="C">T</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>untag messages matching a pattern</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- </para>
-
- <sect3>
- <title>Status Flags</title> <!--{{{-->
-
- <para>
- In addition to who sent the message and the subject, a short
- summary of
- the disposition of each message is printed beside the message
- number.
- Zero or more of the following ``flags'' may appear, which mean:
- </para>
-
- <para>
-
- <variablelist>
-
- <varlistentry>
- <term>D</term>
- <listitem>
- <para>
- message is deleted (is marked for deletion)
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>d</term>
- <listitem>
- <para>
- message have attachments marked for deletion
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>K</term>
- <listitem>
- <para>
- contains a PGP public key
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>N</term>
- <listitem>
- <para>
- message is new
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>O</term>
- <listitem>
- <para>
- message is old
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>P</term>
- <listitem>
- <para>
- message is PGP encrypted
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>r</term>
- <listitem>
- <para>
- message has been replied to
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>S</term>
- <listitem>
- <para>
- message is signed, and the signature is succesfully
- verified
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>s</term>
- <listitem>
- <para>
- message is signed
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>!</term>
- <listitem>
- <para>
- message is flagged
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>*</term>
- <listitem>
- <para>
- message is tagged
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
-
- <para>
- Some of the status flags can be turned on or off using
-
- <itemizedlist>
- <listitem>
-
- <para>
- <emphasis role="bold">set-flag</emphasis> (default: w)
- </para>
- </listitem>
- <listitem>
-
- <para>
- <emphasis role="bold">clear-flag</emphasis> (default: W)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </para>
-
- <para>
- Furthermore, the following flags reflect who the message is
- addressed
- to. They can be customized with the
- <madmutt-doc:varref name="to-chars"/> variable.
- </para>
-
- <para>
- <variablelist>
-
- <varlistentry>
- <term>+</term>
- <listitem>
- <para>
- message is to you and you only
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>T</term>
- <listitem>
- <para>
- message is to you, but also to or cc'ed to others
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>C</term>
- <listitem>
- <para>
- message is cc'ed to you
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>F</term>
- <listitem>
- <para>
- message is from you
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>L</term>
- <listitem>
- <para>
- message is sent to a subscribed mailing list
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
-
- </sect3>
-
- </sect2>
-
- <sect2 id="reading-pager">
- <title>The Pager</title>
-
- <para>
- By default, Madmutt uses its builtin pager to display the body of
- messages.
- The pager is very similar to the Unix program <emphasis>less</emphasis> though not nearly as
- featureful.
- </para>
-
- <para>
-
- <table frame="none" rowsep="1" texstr="l|l|l">
- <title>Most commonly used Pager Bindings</title>
- <tgroup cols="3" align="left" colsep="1" rowsep="1">
- <thead>
- <row>
- <entry>Key</entry>
- <entry>Function</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><madmutt-doc:key>Return</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>go down one line</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>Space</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>display the next page (or next message if at the end of a message)</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>-</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>go back to the previous page</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>n</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>search for next match</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>S</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>skip beyond quoted text</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>T</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>toggle display of quoted text</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>?</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>show key bindings</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>/</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>search for a regular expression (pattern)</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="E">/</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>search backwards for a regular expression</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>\</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>toggle search pattern coloring</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>^</madmutt-doc:key></entry>
- <entry><literal></literal></entry>
- <entry>jump to the top of the message</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
-
- </para>
-
- <para>
- In addition, many of the functions from the <emphasis>index</emphasis> are available in
- the pager, such as <emphasis>delete-message</emphasis> or <emphasis>
- copy-message
- </emphasis>
- (this is one
- advantage over using an external pager to view messages).
- </para>
-
- <para>
- Also, the internal pager supports a couple other advanced
- features. For one, it will accept and translate the
- ``standard'' nroff sequences forbold and underline. These
- sequences are a series of either the letter, backspace
- (<madmutt-doc:key mod="C">H</madmutt-doc:key>), the letter again for bold
- or the letter, backspace, <madmutt-doc:key>_</madmutt-doc:key> for denoting
- underline. Madmutt will attempt to display these in bold and
- underline respectively if your terminal supports them. If not,
- you can use the bold and underline <madmutt-doc:cmdref
- name="color"/> objects to specify a color or mono attribute
- for them.
- </para>
-
- <para>
- Additionally, the internal pager supports the ANSI escape
- sequences for character attributes. Madmutt translates them
- into the correct color and character settings. The sequences
- Madmutt supports are: <literal>ESC [ Ps;Ps;Ps;...;Ps
- m</literal> (see table below for possible values for
- <literal>Ps</literal>).
- </para>
-
- <para>
-
- <table frame="none" rowsep="1" texstr="l|l">
- <title>ANSI Escape Sequences</title>
- <tgroup cols="2" align="left" colsep="1" rowsep="1">
- <thead>
- <row>
- <entry>Value</entry>
- <entry>Attribute</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><literal>0</literal></entry>
- <entry>All Attributes Off</entry>
- </row>
- <row>
- <entry><literal>1</literal></entry>
- <entry>Bold on</entry>
- </row>
- <row>
- <entry><literal>4</literal></entry>
- <entry>Underline on</entry>
- </row>
- <row>
- <entry><literal>5</literal></entry>
- <entry>Blink on</entry>
- </row>
- <row>
- <entry><literal>7</literal></entry>
- <entry>Reverse video on</entry>
- </row>
- <row>
- <entry><literal>3x</literal></entry>
- <entry>Foreground color is x (see table below)</entry>
- </row>
- <row>
- <entry><literal>4x</literal></entry>
- <entry>Background color is x (see table below)</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
-
- <table frame="none" rowsep="1" texstr="l|l">
- <title>ANSI Colors</title>
- <tgroup cols="2" align="left" colsep="1" rowsep="1">
- <thead>
- <row>
- <entry>Number</entry>
- <entry>Color</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><literal>0</literal></entry>
- <entry>black</entry>
- </row>
- <row>
- <entry><literal>1</literal></entry>
- <entry>red</entry>
- </row>
- <row>
- <entry><literal>2</literal></entry>
- <entry>green</entry>
- </row>
- <row>
- <entry><literal>3</literal></entry>
- <entry>yellow</entry>
- </row>
- <row>
- <entry><literal>4</literal></entry>
- <entry>blue</entry>
- </row>
- <row>
- <entry><literal>5</literal></entry>
- <entry>magenta</entry>
- </row>
- <row>
- <entry><literal>6</literal></entry>
- <entry>cyan</entry>
- </row>
- <row>
- <entry><literal>7</literal></entry>
- <entry>white</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
-
- </para>
-
- <para>
- Madmutt uses these attributes for handling text/enriched messages,
- and they
- can also be used by an external <madmutt-doc:cmdref name="auto_view"/>
- script for highlighting purposes. <emphasis role="bold">Note:</emphasis> If you change the colors for your
- display, for example by changing the color associated with color2 for
- your xterm, then that color will be used instead of green.
- </para>
-
- </sect2>
-
- <sect2 id="threads">
- <title>Threaded Mode</title>
-
- <para>
- When the mailbox is <link linkend="sort">sorted</link> by <emphasis>
- threads
- </emphasis>
- ,there are
- a few additional functions available in the <emphasis>index</emphasis> and <emphasis>
- pager
- </emphasis>
- modes.
- </para>
-
- <para>
-
- <table frame="none" rowsep="1" texstr="l|l|l">
- <title>Most commonly used thread-related bindings</title>
- <tgroup cols="3" align="left" colsep="1" rowsep="1">
- <thead>
- <row>
- <entry>Key</entry>
- <entry>Function</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><madmutt-doc:key mod="C">D</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="delete-thread"/></entry>
- <entry>delete all messages in the current thread</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="C">U</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="undelete-thread"/></entry>
- <entry>undelete all messages in the current thread</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="C">N</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="next-thread"/></entry>
- <entry>jump to the start of the next thread</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="C">P</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="previous-thread"/></entry>
- <entry>jump to the start of the previous thread</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="C">R</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="read-thread"/></entry>
- <entry>mark the current thread as read</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="E">d</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="delete-subthread"/></entry>
- <entry>delete all messages in the current subthread</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="E">u</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="undelete-subthread"/></entry>
- <entry>undelete all messages in the current subthread</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="E">n</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="next-subthread"/></entry>
- <entry>jump to the start of the next subthread</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="E">p</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="previous-subthread"/></entry>
- <entry>jump to the start of the previous subthread</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="E">r</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="read-subthread"/></entry>
- <entry>mark the current subthread as read </entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="E">t</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="tag-thread"/></entry>
- <entry>toggle the tag on the current thread</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="E">v</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="collapse-thread"/></entry>
- <entry>toggle collapse for the current thread</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="E">V</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="collapse-all"/></entry>
- <entry>toggle collapse for all threads</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>P</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="parent-message"/></entry>
- <entry>jump to parent message in thread</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
-
- </para>
-
- <para>
- <emphasis role="bold">Note:</emphasis> Collapsing a thread displays
- only the first message
- in the thread and hides the others. This is useful when threads
- contain so many messages that you can only see a handful of threads
- onthe screen. See <literal>%M</literal> in
- <madmutt-doc:varref name="index-format"/>.
- </para>
-
- <para>
- For example, you could use
- <literal>%?M?(#%03M)&(%4l)?</literal> in <madmutt-doc:varref name="index-format"/>
- to optionally
- display the number of hidden messages if the thread is collapsed.
- </para>
-
- <para>
- See also the <madmutt-doc:varref name="strict-threads"/> variable.
- </para>
-
- </sect2>
-
- <sect2 id="pager-functions">
- <title>Miscellaneous Functions</title>
-
- <para>
- <madmutt-doc:funcdef name="create-alias"><madmutt-doc:key>a</madmutt-doc:key></madmutt-doc:funcdef>
- </para>
-
- <para>
- Creates a new alias based upon the current message (or prompts for a
- new one). Once editing is complete, an <madmutt-doc:cmdref name="alias"/>
- command is added to the file specified by the <madmutt-doc:varref name="alias-file"/>
- variable for future use. <emphasis role="bold">Note:</emphasis>
- Specifying an <madmutt-doc:varref name="alias-file"/>
- does not add the aliases specified there-in, you must also <madmutt-doc:cmdref name="source"/>
- the file.
- </para>
-
- <para>
- <madmutt-doc:funcdef name="check-traditional-pgp"><madmutt-doc:key mod="E">P</madmutt-doc:key></madmutt-doc:funcdef>
- </para>
-
- <para>
- This function will search the current message for content signed or
- encrypted with PGP the "traditional" way, that is, without proper
- MIME tagging. Technically, this function will temporarily change
- the MIME content types of the body parts containing PGP data; this
- is similar to the <madmutt-doc:funcref name="edit-type"/>
- function's
- effect.
- </para>
-
- <para>
- <madmutt-doc:funcdef name="display-toggle-weed"><madmutt-doc:key>h</madmutt-doc:key></madmutt-doc:funcdef>
- </para>
-
- <para>
- Toggles the weeding of message header fields specified by <madmutt-doc:cmdref name="ignore"/>
- commands.
- </para>
-
- <para>
- <madmutt-doc:funcdef name="edit"><madmutt-doc:key>e</madmutt-doc:key></madmutt-doc:funcdef>
- </para>
-
- <para>
- This command (available in the ``index'' and ``pager'') allows you to
- edit the raw current message as it's present in the mail folder.
- After you have finished editing, the changed message will be
- appended to the current folder, and the original message will be
- marked for deletion.
- </para>
-
- <para>
- <madmutt-doc:funcdef name="edit-type"/>
- (default: <madmutt-doc:key mod="C">E</madmutt-doc:key> on the attachment menu, and in the pager and index
- menus; <madmutt-doc:key mod="C">T</madmutt-doc:key> on the compose menu)
- </para>
-
- <para>
- This command is used to temporarily edit an attachment's content
- type to fix, for instance, bogus character set parameters. When
- invoked from the index or from the pager, you'll have the
- opportunity to edit the top-level attachment's content type. On the
- <link linkend="attach-menu">attach-menu</link>, you can change any
- attachment's content type. These changes are not persistent, and get
- lost upon changing folders.
- </para>
-
- <para>
- Note that this command is also available on the <link linkend="compose-menu">compose-menu</link>
- .There, it's used to
- fine-tune the properties of attachments you are going to send.
- </para>
-
- <para>
- <madmutt-doc:funcdef name="enter-command"><madmutt-doc:key>:</madmutt-doc:key></madmutt-doc:funcdef>
- </para>
-
- <para>
- This command is used to execute any command you would normally put in
- a
- configuration file. A common use is to check the settings of
- variables, or
- in conjunction with <madmutt-doc:cmdref name="macro"/> to change
- settings on the
- fly.
- </para>
-
- <para>
- <madmutt-doc:funcdef name="extract-keys"><madmutt-doc:key mod="C">K</madmutt-doc:key></madmutt-doc:funcdef>
- </para>
-
- <para>
- This command extracts PGP public keys from the current or tagged
- message(s) and adds them to your PGP public key ring.
- </para>
-
- <para>
- <madmutt-doc:funcdef name="forget-passphrase"><madmutt-doc:key mod="C">F</madmutt-doc:key></madmutt-doc:funcdef>
- </para>
-
- <para>
- This command wipes the passphrase(s) from memory. It is useful, if
- you misspelled the passphrase.
- </para>
-
- <para>
- <madmutt-doc:funcdef name="list-reply"><madmutt-doc:key>L</madmutt-doc:key></madmutt-doc:funcdef>
- </para>
-
- <para>
- Reply to the current or tagged message(s) by extracting any addresses
- which
- match the regular expressions given by the <madmutt-doc:cmdref name="lists"/>
- commands, but also honor any <literal>Mail-Followup-To</literal>
- header(s) if the
- <madmutt-doc:varref name="honor-followup-to"/>
- configuration variable is set. Using this when replying to messages
- posted
- to mailing lists helps avoid duplicate copies being sent to the
- author of
- the message you are replying to.
- </para>
-
- <para>
- <madmutt-doc:funcdef name="pipe-message" default="|"/>
- </para>
-
- <para>
- Asks for an external Unix command and pipes the current or
- tagged message(s) to it. The variables
- <madmutt-doc:varref name="pipe-decode"/>,
- <madmutt-doc:varref name="pipe-split"/>,
- <madmutt-doc:varref name="pipe-decode"/> and
- <madmutt-doc:varref name="wait-key"/>
- control the exact behavior of this function.
- </para>
-
- <para>
- <madmutt-doc:funcdef name="resend-message"><madmutt-doc:key mod="E">e</madmutt-doc:key></madmutt-doc:funcdef>
- </para>
-
- <para>
- With resend-message, mutt takes the current message as a template for
- a
- new message. This function is best described as "recall from
- arbitrary
- folders". It can conveniently be used to forward MIME messages while
- preserving the original mail structure. Note that the amount of
- headers
- included here depends on the value of the <madmutt-doc:varref name="weed"/>
- variable.
- </para>
-
- <para>
- This function is also available from the attachment menu. You can use
- this
- to easily resend a message which was included with a bounce message
- as a message/rfc822 body part.
- </para>
-
- <para>
- <madmutt-doc:funcdef name="shell-escape"><madmutt-doc:key>!</madmutt-doc:key></madmutt-doc:funcdef>
- </para>
-
- <para>
- Asks for an external Unix command and executes it. The
- <madmutt-doc:varref name="wait-key"/>
- can be used to control
- whether Madmutt will wait for a key to be pressed when the command
- returns
- (presumably to let the user read the output of the command), based on
- the return status of the named command.
- </para>
-
- <para>
- <madmutt-doc:funcdef name="toggle-quoted"><madmutt-doc:key>T</madmutt-doc:key></madmutt-doc:funcdef>
- </para>
-
- <para>
- The <emphasis>pager</emphasis> uses the
- <madmutt-doc:varref name="quote-regexp"/>
- variable to detect quoted text when
- displaying the body of the message. This function toggles the
- displayof the quoted material in the message. It is particularly
- useful when
- are interested in just the response and there is a large amount of
- quoted text in the way.
- </para>
-
- <para>
- <madmutt-doc:funcdef name="skip-quoted"><madmutt-doc:key>S</madmutt-doc:key></madmutt-doc:funcdef>
- </para>
-
- <para>
- This function will go to the next line of non-quoted text which come
- after a line of quoted text in the internal pager.
- </para>
-
- <para>
-
- </para>
-
- </sect2>
-
- </sect1>
- <!--}}}-->
-
- <sect1 id="sending"> <!--{{{-->
- <title>Sending Mail</title>
-
- <para>
- The following bindings are available in the <emphasis>index</emphasis>
- for sending
- messages.
- </para>
-
- <para>
-
- <table frame="none" rowsep="1" texstr="l|l|l">
- <title>Most commonly used Mail Composition Bindings</title>
- <tgroup cols="3" align="left" colsep="1" rowsep="1">
- <thead>
- <row>
- <entry>Key</entry>
- <entry>Function</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><madmutt-doc:key>m</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="compose"/></entry>
- <entry>compose a new message</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>r</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="reply"/></entry>
- <entry>reply to sender</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>g</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="group-reply"/></entry>
- <entry>reply to all recipients</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>L</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="list-reply"/></entry>
- <entry>reply to mailing list address</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>f</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="forward"/></entry>
- <entry>forward message</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>b</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="bounce"/></entry>
- <entry>bounce (remail) message</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="E">k</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="mail-key"/></entry>
- <entry>mail a PGP public key to someone</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- </para>
-
- <para>
- Bouncing a message sends the message as is to the recipient you
- specify. Forwarding a message allows you to add comments or
- modify the message you are forwarding. These items are discussed
- in greater detail in the next chapter <link linkend="forwarding-mail">forwarding-mail</link>.
- </para>
-
- <sect2 id="sending-compose">
- <title>Composing new messages</title>
-
- <para>
- When you want to send an email using Madmutt, simply press <madmutt-doc:key>m</madmutt-doc:key> on
- your keyboard. Then, Madmutt asks for the recipient via a prompt in
- the last line:
- </para>
-
- <para>
-
- <madmutt-doc:lstmail>
-To:</madmutt-doc:lstmail>
-
- </para>
-
- <para>
- After you've finished entering the recipient(s), press return. If you
- want to send an email to more than one recipient, separate the email
- addresses using the comma "<literal>,</literal>". Madmutt then asks
- you for the email
- subject. Again, press return after you've entered it. After that,
- Madmutt
- got the most important information from you, and starts up an editor
- where you can then enter your email.
- </para>
-
- <para>
- The editor that is called is selected in the following way: you
- can e.g. set it in the Madmutt configuration:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-set editor = "vim +/^$/ -c ':set tw=72'"
-set editor = "nano"
-set editor = "emacs"</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- If you don't set your preferred editor in your configuration, Madmutt
- first looks whether the environment variable <madmutt-doc:envvar name="VISUAL"/> is set, and if
- so, it takes its value as editor command. Otherwise, it has a look
- at <madmutt-doc:envvar name="EDITOR"/> and takes its value if it is set. If no
- editor command
- can be found, Madmutt simply assumes <madmutt-doc:man name="vi"/> to be the
- default editor,
- since it's the most widespread editor in the Unix world and it's
- pretty
- safe to assume that it is installed and available.
- </para>
-
- <para>
- When you've finished entering your message, save it and quit your
- editor. Madmutt will then present you with a summary screen, the
- compose menu.
- On the top, you see a summary of the most important available key
- commands.
- Below that, you see the sender, the recipient(s), Cc and/or Bcc
- recipient(s), the subject, the reply-to address, and optionally
- information where the sent email will be stored and whether it should
- be digitally signed and/or encrypted.
- </para>
-
- <para>
- Below that, you see a list of "attachments". The mail you've just
- entered before is also an attachment, but due to its special type
- (it's plain text), it will be displayed as the normal message on
- the receiver's side.
- </para>
-
- <para>
- At this point, you can add more attachments, pressing <madmutt-doc:key>a</madmutt-doc:key>, you
- can edit the recipient addresses, pressing <madmutt-doc:key>t</madmutt-doc:key> for
- the "To:" field,
- <madmutt-doc:key>c</madmutt-doc:key> for the "Cc:" field, and <madmutt-doc:key>b</madmutt-doc:key>
- for the "Bcc: field. You can
- also edit the subject the subject by simply pressing <madmutt-doc:key>s</madmutt-doc:key> or the
- email message that you've entered before by pressing <madmutt-doc:key>e</madmutt-doc:key>. You will
- then again return to the editor. You can even edit the sender, by
- pressing
- <literal><esc>f</literal>, but this shall only be used with
- caution.
- </para>
-
- <para>
- Alternatively, you can configure Madmutt in a way that most of the
- above settings can be edited using the editor. Therefore, you only
- need to add the following to your configuration:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-set edit_headers</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- Once you have finished editing the body of your mail message, you are
- returned to the <emphasis>compose</emphasis> menu. The following
- options are available:
- </para>
-
- <para>
-
- <table frame="none" rowsep="1" texstr="l|l|l">
- <title>Most commonly used Compose Menu Bindings</title>
- <tgroup cols="3" align="left" colsep="1" rowsep="1">
- <thead>
- <row>
- <entry>Key</entry>
- <entry>Function</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><madmutt-doc:key>a</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="attach-file"/></entry>
- <entry>attach a file</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>A</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="attach-message"/></entry>
- <entry>attach message(s) to the message</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="E">k</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="attach-key"/></entry>
- <entry>attach a PGP public key</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>d</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="edit-description"/></entry>
- <entry>edit description on attachment</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>D</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="detach-file"/></entry>
- <entry>detach a file</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>t</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="edit-to"/></entry>
- <entry>edit the To field</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="E">f</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="edit-from"/></entry>
- <entry>edit the From field</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>r</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="edit-reply-to"/></entry>
- <entry>edit the Reply-To field</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>c</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="edit-cc"/></entry>
- <entry>edit the Cc field</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>b</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="edit-bcc"/></entry>
- <entry>edit the Bcc field</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>y</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="send-message"/></entry>
- <entry>send the message</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>s</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="edit-subject"/></entry>
- <entry>edit the Subject</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>S</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="smime-menu"/></entry>
- <entry>select S/MIME options</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>f</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="edit-fcc"/></entry>
- <entry>specify an ``Fcc'' mailbox</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>p</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="pgp-menu"/></entry>
- <entry>select PGP options</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>P</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="postpone-message"/></entry>
- <entry>postpone this message until later</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>q</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="quit"/></entry>
- <entry>quit (abort) sending the message</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>w</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="write-fcc"/></entry>
- <entry>write the message to a folder</entry>
- </row>
- <row>
- <entry><madmutt-doc:key>i</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="ispell"/></entry>
- <entry>check spelling (if available on your system)</entry>
- </row>
- <row>
- <entry><madmutt-doc:key mod="C">F</madmutt-doc:key></entry>
- <entry><madmutt-doc:funcref name="forget-passphrase"/></entry>
- <entry>wipe passphrase(s) from memory</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- </para>
-
- <para>
- <emphasis role="bold">Note:</emphasis> The attach-message function
- will prompt you for a folder to
- attach messages from. You can now tag messages in that folder and
- theywill be attached to the message you are sending. Note that
- certainoperations like composing a new mail, replying, forwarding,
- etc. are
- not permitted when you are in that folder. The <literal>%r</literal>
- in <madmutt-doc:varref name="status-format"/>
- will change to
- a 'A' to indicate that you are in attach-message mode.
- </para>
-
- <para>
-
- </para>
-
- </sect2>
-
- <sect2 id="sending-reply">
- <title>Replying</title>
-
- <sect3 id="sending-simple-reply">
- <title>Simple Replies</title>
-
- <para>
- When you want to reply to an email message, select it in the index
- menu and then press <madmutt-doc:key>r</madmutt-doc:key>. Madmutt's behaviour is
- then similar to the
- behaviour when you compose a message: first, you will be asked for
- the recipient, then for the subject, and then, Madmutt will start
- the editor with the quote attribution and the quoted message. This
- can e.g. look like the example below.
- </para>
-
- <para>
-
- <madmutt-doc:lstmail>
-On Mon, Mar 07, 2005 at 05:02:12PM +0100, Michael Svensson wrote:
-> Bill, can you please send last month's progress report to Mr.
-> Morgan? We also urgently need the cost estimation for the new
-> production server that we want to set up before our customer's
-> project will go live.</madmutt-doc:lstmail>
-
- </para>
-
- <para>
- You can start editing the email message. It is strongly
- recommended to put your answer <emphasis>below</emphasis> the
- quoted text and to
- only quote what is really necessary and that you refer to. Putting
- your answer on top of the quoted message, is, although very
- widespread, very often not considered to be a polite way to answer
- emails.
- </para>
-
- <para>
- The quote attribution is configurable, by default it is set to
-
- <madmutt-doc:lstconf>
-set attribution = "On %d, %n wrote:"</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- It can also be set to something more compact, e.g.
-
- <madmutt-doc:lstconf>
-set attribution = "attribution="* %n <%a> [%(%y-%m-%d %H:%M)]:"</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- The example above results in the following attribution:
-
- <madmutt-doc:lstmail>
-* Michael Svensson <svensson@foobar.com> [05-03-06 17:02]:
-> Bill, can you please send last month's progress report to Mr.
-> Morgan? We also urgently need the cost estimation for the new
-> production server that we want to set up before our customer's
-> project will go live.</madmutt-doc:lstmail>
-
- </para>
-
- <para>
- Generally, try to keep your attribution short yet
- information-rich. It is <emphasis>not</emphasis> the right place
- for witty quotes,
- long "attribution" novels or anything like that: the right place
- for such things is - if at all - the email signature at the very
- bottom of the message.
- </para>
-
- <para>
- When you're done with writing your message, save and quit the
- editor. As before, you will return to the compose menu, which is
- used in the same way as before.
- </para>
-
- <para>
-
- </para>
-
- </sect3>
-
- <sect3 id="sending-group-reply">
- <title>Group Replies</title>
-
- <para>
- In the situation where a group of people uses email as a
- discussion, most of the emails will have one or more recipients,
- and probably several "Cc:" recipients. The group reply
- functionalityensures that when you press <madmutt-doc:key>g</madmutt-doc:key>
- instead of <madmutt-doc:key>r</madmutt-doc:key> to do a reply,
- each and every recipient that is contained in the original message
- will receive a copy of the message, either as normal recipient or
- as "Cc:" recipient.
- </para>
-
- <para>
-
- </para>
-
- </sect3>
-
- <sect3 id="sending-list-reply">
- <title>List Replies</title>
-
- <para>
- When you use mailing lists, it's generally better to send your
- reply to a message only to the list instead of the list and the
- original author. To make this easy to use, Madmutt features list
- replies.
- </para>
-
- <para>
- To do a list reply, simply press <madmutt-doc:key>L</madmutt-doc:key>. If the email
- contains
- a <literal>Mail-Followup-To:</literal> header, its value will be
- used as reply
- address. Otherwise, Madmutt searches through all mail addresses in
- the original message and tries to match them a list of regular
- expressions which can be specified using the <literal>lists</literal> command.
- If any of the regular expression matches, a mailing
- list address has been found, and it will be used as reply address.
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-lists linuxevent@luga\.at vuln-dev@ Madmutt-users@</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- Nowadays, most mailing list software like GNU Mailman adds a
- <literal>Mail-Followup-To:</literal> header to their emails anyway,
- so setting
- <literal>lists</literal> is hardly ever necessary in practice.
- </para>
-
- <para>
-
- </para>
-
- <para>
-
- </para>
-
- </sect3>
-
- </sect2>
-
- <sect2 id="sending-edit-header">
- <title>Editing the message header</title>
-
- <para>
- When editing the header of your outgoing message, there are a couple
- of
- special features available.
- </para>
-
- <para>
- If you specify
-
- <literal>Fcc:</literal> <emphasis>filename</emphasis>
-
- Madmutt will pick up <emphasis>filename</emphasis>
- just as if you had used the <emphasis>edit-fcc</emphasis> function in
- the <emphasis>compose</emphasis> menu.
- </para>
-
- <para>
- You can also attach files to your message by specifying
-
- <madmutt-doc:lstmail>
-Attach: filename [description]</madmutt-doc:lstmail>
-
- where <emphasis>filename</emphasis> is the file to attach and <emphasis>
- description
- </emphasis>
- is an
- optional string to use as the description of the attached file.
- </para>
-
- <para>
- When replying to messages, if you remove the <emphasis>In-Reply-To:</emphasis> field from
- the header field, Madmutt will not generate a <emphasis>References:</emphasis> field, which
- allows you to create a new message thread.
- </para>
-
- <para>
- Also see the <madmutt-doc:varref name="edit-headers"/> and
- <madmutt-doc:varref name="editor-headers"/> variables
- </para>
-
- <para>
-
- </para>
-
- </sect2>
-
- <sect2 id="sending-crypto">
- <title>Using Madmutt with PGP</title>
-
- <para>
- If you want to use PGP, you can specify
-
- <madmutt-doc:lstmail>
-Pgp: [E | S | S id]</madmutt-doc:lstmail>
-
- ``E'' encrypts, ``S'' signs and
- ``S<id>'' signs with the given key, setting
- <madmutt-doc:varref name="pgp-sign-as"/>
- permanently.
- </para>
-
- <para>
- If you have told mutt to PGP encrypt a message, it will guide you
- through a key selection process when you try to send the message.
- Madmutt will not ask you any questions about keys which have a
- certified user ID matching one of the message recipients' mail
- addresses. However, there may be situations in which there are
- several keys, weakly certified user ID fields, or where no matching
- keys can be found.
- </para>
-
- <para>
- In these cases, you are dropped into a menu with a list of keys from
- which you can select one. When you quit this menu, or mutt can't
- find any matching keys, you are prompted for a user ID. You can, as
- usually, abort this prompt using <madmutt-doc:key mod="C">G</madmutt-doc:key>. When
- you do so, mutt will
- return to the compose screen.
- </para>
-
- <para>
- Once you have successfully finished the key selection, the message
- will be encrypted using the selected public keys, and sent out.
- </para>
-
- <para>
- Most fields of the entries in the key selection menu (see also
- <madmutt-doc:varref name="pgp-entry-format"/>)
- have obvious meanings. But some explanations on the capabilities,
- flags,
- and validity fields are in order.
- </para>
-
- <para>
- The flags sequence (%f) will expand to one of the following
- flags:
-
-
- <table frame="none" rowsep="1" texstr="l|l">
- <title>PGP Key Menu Flags</title>
- <tgroup cols="2" align="left" colsep="1" rowsep="1">
- <thead>
- <row>
- <entry>Flag</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><literal>R</literal></entry>
- <entry>The key has been revoked and can't be used.</entry>
- </row>
- <row>
- <entry><literal>X</literal></entry>
- <entry>The key is expired and can't be used.</entry>
- </row>
- <row>
- <entry><literal>d</literal></entry>
- <entry>You have marked the key as disabled.</entry>
- </row>
- <row>
- <entry><literal>c</literal></entry>
- <entry>There are unknown critical self-signature packets.</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- </para>
-
- <para>
- The capabilities field (%c) expands to a two-character
- sequencerepresenting a key's capabilities. The first character gives
- the key's encryption capabilities: A minus sign (<emphasis role="bold">
- -
- </emphasis>
- )means
- that the key cannot be used for encryption. A dot (<emphasis role="bold">
- .
- </emphasis>
- )means that
- it's marked as a signature key in one of the user IDs, but may
- also be used for encryption. The letter <emphasis role="bold">e</emphasis> indicates that
- this key can be used for encryption.
- </para>
-
- <para>
- The second character indicates the key's signing capabilities. Once
- again, a ``<emphasis role="bold">-</emphasis>'' implies ``not for
- signing'', ``<emphasis role="bold">.</emphasis>'' implies
- that the key is marked as an encryption key in one of the user-ids,
- and
- ``<emphasis role="bold">s</emphasis>'' denotes a key which can be
- used for signing.
- </para>
-
- <para>
- Finally, the validity field (%t) indicates how well-certified
- a user-id
- is. A question mark (<emphasis role="bold">?</emphasis>) indicates
- undefined validity, a minus
- character (<emphasis role="bold">-</emphasis>) marks an untrusted
- association, a space character
- means a partially trusted association, and a plus character (<emphasis role="bold">
- +
- </emphasis>
- )
- indicates complete validity.
- </para>
-
- <para>
-
- </para>
-
- </sect2>
-
- <sect2 id="sending-mixmaster">
- <title>Sending anonymous messages via mixmaster</title>
-
- <para>
- You may also have configured mutt to co-operate with Mixmaster, an
- anonymous remailer. Mixmaster permits you to send your messages
- anonymously using a chain of remailers. Mixmaster support in mutt is
- for
- mixmaster version 2.04 (beta 45 appears to be the latest) and 2.03.
- It does not support earlier versions or the later so-called version 3
- betas,
- of which the latest appears to be called 2.9b23.
- </para>
-
- <para>
- To use it, you'll have to obey certain restrictions. Most
- important, you cannot use the <literal>Cc</literal> and <literal>Bcc</literal> headers. To tell
- Madmutt to use mixmaster, you have to select a remailer chain, using
- the mix function on the compose menu.
- </para>
-
- <para>
- 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.
- </para>
-
- <para>
- You can navigate in the chain using the <literal>chain-prev</literal>
- and
- <literal>chain-next</literal> functions, which are by default bound
- to the left
- and right arrows and to the <madmutt-doc:key>h</madmutt-doc:key> and <madmutt-doc:key>l</madmutt-doc:key> keys (think vi
- keyboard bindings). To insert a remailer at the current chain
- position, use the <literal>insert</literal> function. To append a
- remailer behind
- the current chain position, use <literal>select-entry</literal> or <literal>
- append
- </literal>
- .
- You can also delete entries from the chain, using the corresponding
- function. Finally, to abandon your changes, leave the menu, or
- <literal>accept</literal> them pressing (by default) the <literal>
- Return
- </literal>
- key.
- </para>
-
- <para>
- Note that different remailers do have different capabilities,
- indicated in the <literal>%c</literal> entry of the remailer menu lines (see
- <madmutt-doc:varref name="mix-entry-format"/>).
- Most important is
- the ``middleman'' capability, indicated by a capital ``M'': This
- means that the remailer in question cannot be used as the final
- element of a chain, but will only forward messages to other
- mixmaster remailers. For details on the other capabilities, please
- have a look at the mixmaster documentation.
- </para>
-
- <para>
-
- </para>
-
- <para>
-
- </para>
-
- </sect2>
-
- </sect1>
-
- <sect1 id="forwarding-mail">
- <title>Forwarding and Bouncing Mail</title>
-
- <para>
- Often, it is necessary to forward mails to other people.
- Therefore, Madmutt supports forwarding messages in two different
- ways.
- </para>
-
- <para>
- The first one is regular forwarding, as you probably know it from
- other mail clients. You simply press <madmutt-doc:key>f</madmutt-doc:key>, enter the
- recipient
- email address, the subject of the forwarded email, and then you can
- edit the message to be forwarded in the editor. The forwarded
- message is separated from the rest of the message via the two
- following markers:
- </para>
-
- <para>
-
- <madmutt-doc:lstmail>
------ Forwarded message from Lucas User <luser@example.com> -----
-
-From: Lucas User <luser@example.com>
-Date: Thu, 02 Dec 2004 03:08:34 +0100
-To: Michael Random <mrandom@example.com>
-Subject: Re: blackmail
-
-Pay me EUR 50,000.- cash or your favorite stuffed animal will die
-a horrible death.
-
------ End forwarded message -----</madmutt-doc:lstmail>
-
- </para>
-
- <para>
- When you're done with editing the mail, save and quit the editor,
- and you will return to the compose menu, the same menu you also
- encounter when composing or replying to mails.
- </para>
-
- <para>
- The second mode of forwarding emails with Madmutt is the
- so-called <emphasis>bouncing</emphasis>: when you bounce an email to
- another
- address, it will be sent in practically the same format you send it
- (except for headers that are created during transporting the
- message). To bounce a message, press <madmutt-doc:key>b</madmutt-doc:key> and enter the
- recipient
- email address. By default, you are then asked whether you really
- want to bounce the message to the specified recipient. If you answer
- with yes, the message will then be bounced.
- </para>
-
- <para>
- To the recipient, the bounced email will look as if he got it
- like a regular email where he was <literal>Bcc:</literal> recipient.
- The only
- possibility to find out whether it was a bounced email is to
- carefully study the email headers and to find out which host really
- sent the email.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="postponing-mail">
- <title>Postponing Mail</title>
-
- <para>
- At times it is desirable to delay sending a message that you have
- already begun to compose. When the <emphasis>postpone-message</emphasis> function is
- used in the <emphasis>compose</emphasis> menu, the body of your message
- and attachments
- are stored in the mailbox specified by the
- <madmutt-doc:varref name="postponed"/> variable. This means that you can recall the
- message even if you exit Madmutt and then restart it at a later time.
- </para>
-
- <para>
- Once a message is postponed, there are several ways to resume it. From
- the
- command line you can use the ``-p'' option, or if you <emphasis>compose</emphasis> a new
- message from the <emphasis>index</emphasis> or <emphasis>pager</emphasis> you will be prompted if postponed
- messages exist. If multiple messages are currently postponed, the
- <emphasis>postponed</emphasis> menu will pop up and you can select
- which message you would
- like to resume.
- </para>
-
- <para>
- <emphasis role="bold">Note:</emphasis> If you postpone a reply to a
- message, the reply setting of
- the message is only updated when you actually finish the message and
- send it. Also, you must be in the same folder with the message you
- replied to for the status of the message to be updated.
- </para>
-
- <para>
- See also the <madmutt-doc:varref name="postpone"/> quad-option.
- </para>
-
- <para>
-
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <!--}}}-->
-
-</chapter>
-<!--}}}-->
-
-<chapter id="configuration"> <!--{{{-->
- <title>Configuration</title>
-
- <sect1 id="configuration-files">
- <title>Locations of Configuration Files</title>
-
- <para>
- While the default configuration (or ``preferences'') make Madmutt
- usable right out
- of the box, it is often desirable to tailor Madmutt to suit your own
- tastes. When
- Madmutt is first invoked, it will attempt to read the ``system''
- configuration
- file (defaults set by your local system administrator), unless the
- ``-n'' <link linkend="commandline">commandline</link> option is
- specified. This file is
- typically <literal>/usr/local/share/madmutt/madmuttrc</literal> or <literal>
- /etc/madmuttrc
- </literal>
- ,
- Madmutt users will find this file in <literal>
- /usr/local/share/madmutt/Muttrc
- </literal>
- or
- <literal>/etc/madmuttrc</literal>. Mutt will next look for a file named <literal>
- .muttrc
- </literal>
- in your home directory, Madmutt will look for <literal>.madmuttrc</literal>. If this file
- does not exist and your home directory has a subdirectory named <literal>
- .mutt
- </literal>
- ,
- mutt try to load a file named <literal>.madmutt/madmuttrc</literal>.
- </para>
-
- <para>
- <literal>.muttrc</literal> (or <literal>.madmuttrc</literal> for
- Madmutt) is the file where you will
- usually place your <link linkend="commands">commands</link> to
- configure Madmutt.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="configuration-syntax">
- <title>Basic Syntax of Initialization Files</title>
-
- <para>
- An initialization file consists of a series of <link linkend="commands">commands</link>. Each line of the file may contain one or more commands.
- When multiple commands are used, they must be separated by a semicolon
- (;).
-
- <madmutt-doc:lstconf>
-set realname='Madmutt user' ; ignore x-</madmutt-doc:lstconf>
-
- The hash mark, or pound sign
- (``#''), is used as a ``comment'' character. You can use it to
- annotate your initialization file. All text after the comment character
- to the end of the line is ignored. For example,
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-my_hdr X-Disclaimer: Why are you listening to me? # This is a comment</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- Single quotes (') and double quotes (") can be used to quote
- strings
- which contain spaces or other special characters. The difference
- between
- the two types of quotes is similar to that of many popular shell
- programs,
- namely that a single quote is used to specify a literal string (one
- that is
- not interpreted for shell variables or quoting with a backslash
- (see
- next paragraph), while double quotes indicate a string for which
- should be evaluated. For example, backtics are evaluated inside of
- double
- quotes, but <emphasis role="bold">not</emphasis> for single quotes.
- </para>
-
- <para>
- \ quotes the next character, just as in shells such as bash and
- zsh.
- For example, if want to put quotes ``"'' inside of a string, you
- can use
- ``\'' to force the next character to be a literal instead of
- interpreted
- character.
-
- <madmutt-doc:lstconf>
-set realname="Michael \"MuttDude\" Elkins"</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- ``\\'' means to insert a literal ``\'' into the line.
- ``\n'' and ``\r'' have their usual C meanings of linefeed and
- carriage-return, respectively.
- </para>
-
- <para>
- A \ at the end of a line can be used to split commands over
- multiple lines, provided that the split points don't appear in the
- middle of command names.
- </para>
-
- <para>
- Please note that, unlike the various shells, Madmutt interprets a
- ``\''
- at the end of a line also in comments. This allows you to disable a
- command
- split over multiple lines with only one ``#''.
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-# folder-hook . \
-set realname="Michael \"MuttDude\" Elkins"</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- When testing your config files, beware the following caveat. The
- backslash
- at the end of the commented line extends the current line with the next
- line
- - then referred to as a ``continuation line''. As the first line is
- commented with a hash (#) all following continuation lines are also
- part of a comment and therefore are ignored, too. So take care of
- comments
- when continuation lines are involved within your setup files!
- </para>
-
- <para>
- Abstract example:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-line1\
-line2a # line2b\
-line3\
-line4
-line5</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- line1 ``continues'' until line4. however, the part after the # is a
- comment which includes line3 and line4. line5 is a new line of its own
- and
- thus is interpreted again.
- </para>
-
- <para>
- The commands understood by mutt are explained in the next paragraphs.
- For a complete list, see the <link linkend="commands">commands</link>.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="configuration-expansion">
- <title>Expansion within variables</title>
-
- <para>
- Besides just assign static content to variables, there's plenty of
- ways of adding external and more or less dynamic content.
- </para>
-
- <sect2 id="configuration-expansion-commands">
- <title>Commands' Output</title>
-
- <para>
- It is possible to substitute the output of a Unix command in an
- initialization file. This is accomplished by enclosing the command
- in backquotes (``) as in, for example:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-my_hdr X-Operating-System: `uname -a`</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- The output of the Unix command ``uname -a'' will be substituted
- before the line is parsed. Note that since initialization files are
- line oriented, only the first line of output from the Unix command
- will be substituted.
- </para>
-
- </sect2>
-
- <sect2 id="configuration-expansion-environment">
- <title>Environment Variables</title>
-
- <para>
- UNIX environments can be accessed like the way it is done in
- shells like sh and bash: Prepend the name of the environment by a
- ``$'' sign. For example,
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-set record=+sent_on_$HOSTNAME</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- sets the <madmutt-doc:varref name="record"/> variable to the
- string <emphasis>+sent_on_</emphasis> and appends the
- value of the evironment
- variable <madmutt-doc:envvar name="HOSTNAME"/>.
- </para>
-
- <para>
- <emphasis role="bold">Note:</emphasis> There will be no warning if an
- environment variable
- is not defined. The result will of the expansion will then be empty.
- </para>
-
- </sect2>
-
- <sect2 id="configuration-expansion-config">
- <title>Configuration Variables</title>
-
- <para>
- As for environment variables, the values of all configuration
- variables as string can be used in the same way, too. For example,
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-set imap_home_namespace = $folder</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- would set the value of <madmutt-doc:varref name="imap-home-namespace"/>
- to the value to which <madmutt-doc:varref name="folder"/>
- is <emphasis>currently</emphasis> set to.
- </para>
-
- <para>
- <emphasis role="bold">Note:</emphasis> There're no logical links
- established in such cases so
- that the the value for <madmutt-doc:varref name="imap-home-namespace"/>
- won't change even
- if <madmutt-doc:varref name="folder"/> gets changed.
- </para>
-
- <para>
- <emphasis role="bold">Note:</emphasis> There will be no warning if a
- configuration variable
- is not defined or is empty. The result will of the expansion will
- then be empty.
- </para>
-
- </sect2>
-
- <sect2 id="configuration-expansion-self">
- <title>Self-Defined Variables</title>
-
- <para>
- Madmutt flexibly allows users to define their own variables. To
- avoid conflicts with the standard set and to prevent misleading
- error messages, there's a reserved namespace for them: all
- user-defined variables must be prefixed with <literal>user_</literal> and can be
- used just like any ordinary configuration or environment
- variable.
- </para>
-
- <para>
- For example, to view the manual, users can either define two
- macros like the following
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-macro generic <F1> "!less -r /path/to/manual" "Show manual"
-macro pager <F1> "!less -r /path/to/manual" "Show manual"</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- for <literal>generic</literal>, <literal>pager</literal> and <literal>
- index
- </literal>
- .The alternative is to
- define a custom variable like so:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-set user_manualcmd = "!less -r /path/to_manual"
-macro generic <F1> "$user_manualcmd<enter>" "Show manual"
-macro pager <F1> "$user_manualcmd<enter>" "Show manual"
-macro index <F1> "$user_manualcmd<enter>" "Show manual"</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- to re-use the command sequence as in:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-macro index <F2> "$user_manualcmd | grep '\^[ ]\\+~. '" "Show Patterns"</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- Using this feature, arbitrary sequences can be defined once and
- recalled and reused where necessary. More advanced scenarios could
- include to save a variable's value at the beginning of macro
- sequence and restore it at end.
- </para>
-
- <para>
- When the variable is first defined, the first value it gets
- assigned is also the initial value to which it can be reset using
- the <literal>reset</literal> command.
- </para>
-
- <para>
- The complete removal is done via the <literal>unset</literal>
- keyword.
- </para>
-
- <para>
- After the following sequence:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-set user_foo = 42
-set user_foo = 666</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- the variable <literal>$user_foo</literal> has a current value
- of 666 and an
- initial of 42. The query
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-set ?user_foo</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- will show 666. After doing the reset via
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-reset user_foo</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- a following query will give 42 as the result. After unsetting it
- via
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-unset user_foo</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- any query or operation (except the noted expansion within other
- statements) will lead to an error message.
- </para>
-
- </sect2>
-
- <sect2 id="configuration-expansion-predef">
- <title>Pre-Defined Variables</title>
-
- <para>
- In order to allow users to share one setup over a number of
- different machines without having to change its contents, there's a
- number of pre-defined variables. These are prefixed with
- <literal>madmutt_</literal> and are read-only, i.e. they cannot
- be set, unset or
- reset. The reference chapter lists all available variables.
- </para>
-
- <para>
- <emphasis> Please consult the local copy of your manual for their
- values as they may differ from different manual sources.
- </emphasis>
- Where
- the manual is installed in can be queried (already using such a
- variable) by running:
- </para>
-
- <para>
-
- <madmutt-doc:lstshell>
-$ madmutt -Q madmutt_docdir</madmutt-doc:lstshell>
-
- </para>
-
- <para>
- To extend the example for viewing the manual via self-defined
- variables, it can be made more readable and more portable by
- changing the real path in:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-set user_manualcmd = '!less -r /path/to_manual'</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- to:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-set user_manualcmd = "!less -r $madmutt_docdir/manual.txt"</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- which works everywhere if a manual is installed.
- </para>
-
- <para>
- Please note that by the type of quoting, madmutt determines when
- to expand these values: when it finds double quotes, the value will
- be expanded during reading the setup files but when it finds single
- quotes, it'll expand it at runtime as needed.
- </para>
-
- <para>
- For example, the statement
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-folder-hook . "set user_current_folder = $madmutt_folder_name"</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- will be already be translated to the following when reading the
- startup files:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-folder-hook . "set user_current_folder = some_folder"</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- with <literal>some_folder</literal> being the name of the
- first folder madmutt
- opens. On the contrary,
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-folder-hook . 'set user_current_folder = $madmutt_folder_name'</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- will be executed at runtime because of the single quotes so that
- <literal>user_current_folder</literal> will always have
- the value of the currently
- opened folder.
- </para>
-
- <para>
- A more practical example is:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-folder-hook . 'source ~/.mutt/score-$madmutt_folder_name'</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- which can be used to source files containing score commands
- depending on the folder the user enters.
- </para>
-
- </sect2>
-
- <sect2 id="configuration-expansion-typeconv">
- <title>Type Conversions</title>
-
- <para>
- A note about variable's types during conversion: internally
- values are stored in internal types but for any dump/query or set
- operation they're converted to and from string. That means that
- there's no need to worry about types when referencing any variable.
- As an example, the following can be used without harm (besides
- makeing madmutt very likely behave strange):
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-set read_inc = 100
-set folder = $read_inc
-set read_inc = $folder
-set user_magic_number = 42
-set folder = $user_magic_number</madmutt-doc:lstconf>
-
- </para>
-
- </sect2>
-
- </sect1>
-
- <sect1>
- <title>Defining/Using aliases</title>
-
- <para>
- <madmutt-doc:cmddef name="alias">
- key address [, address,...]
- </madmutt-doc:cmddef>
- </para>
-
- <para>
- It's usually very cumbersome to remember or type out the address of
- someone
- you are communicating with. Madmutt allows you to create ``aliases''
- which map
- a short string to a full address.
- </para>
-
- <para>
- <emphasis role="bold">Note:</emphasis> if you want to create an alias
- for a group (by specifying more than
- one address), you <emphasis role="bold">must</emphasis> separate the
- addresses with a comma (``,'').
- </para>
-
- <para>
- To remove an alias or aliases (``*'' means all aliases):
- </para>
-
- <para>
- <madmutt-doc:cmddef name="unalias">
- [* | key ... ]
- </madmutt-doc:cmddef>
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-alias muttdude me@cs.hmc.edu (Michael Elkins)
-alias theguys manny, moe, jack</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- Unlike other mailers, Madmutt doesn't require aliases to be defined
- in a special file. The <literal>alias</literal> command can appear
- anywhere in
- a configuration file, as long as this file is <madmutt-doc:cmdref name="source"/>.
- Consequently, you can have multiple alias files, or
- you can have all aliases defined in your muttrc.
- </para>
-
- <para>
- On the other hand, the <madmutt-doc:funcref name="create-alias"/>
- function can use only one file, the one pointed to by the
- <madmutt-doc:varref name="alias-file"/>
- variable (which is
- <literal>~/.muttrc</literal> by default). This file is not
- special either,
- in the sense that Madmutt will happily append aliases to any file, but
- in
- order for the new aliases to take effect you need to explicitly <madmutt-doc:cmdref name="source"/>
- this file too.
- </para>
-
- <para>
- For example:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-source /usr/local/share/Madmutt.aliases
-source ~/.mail_aliases
-set alias_file=~/.mail_aliases</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- To use aliases, you merely use the alias at any place in mutt where
- muttprompts for addresses, such as the <emphasis>To:</emphasis> or <emphasis>
- Cc:
- </emphasis>
- prompt. You can
- also enter aliases in your editor at the appropriate headers if you
- have the
- <madmutt-doc:varref name="editor-headers"/>
- variable set.
- </para>
-
- <para>
- In addition, at the various address prompts, you can use the tab
- character
- to expand a partial alias to the full alias. If there are multiple
- matches,
- mutt will bring up a menu with the matching aliases. In order to be
- presented with the full list of aliases, you must hit tab with out a
- partial
- alias, such as at the beginning of the prompt or after a comma denoting
- multiple addresses.
- </para>
-
- <para>
- In the alias menu, you can select as many aliases as you want with the
- <emphasis>select-entry</emphasis> key (default: RET), and use the <emphasis>
- exit
- </emphasis>
- key
- (default: q) to return to the address prompt.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1>
- <title>Changing the default key bindings</title>
-
- <para>
- <madmutt-doc:cmddef name="bind">
- map key function
- </madmutt-doc:cmddef>
- </para>
-
- <para>
- This command allows you to change the default key bindings (operation
- invoked when pressing a key).
- </para>
-
- <para>
- <emphasis>map</emphasis> specifies in which menu the binding belongs.
- Multiple maps may
- be specified by separating them with commas (no additional whitespace
- isallowed). The currently defined maps are:
- </para>
-
- <para>
- <anchor id="maps"/>
- <variablelist>
-
- <varlistentry>
- <term>generic</term>
- <listitem>
- <para>
- This is not a real menu, but is used as a fallback for all of
- the other
- menus except for the pager and editor modes. If a key is not
- defined in
- another menu, Madmutt will look for a binding to use in this
- menu. This allows
- you to bind a key to a certain function in multiple menus
- instead of having
- multiple bind statements to accomplish the same task.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>alias</term>
- <listitem>
- <para>
- The alias menu is the list of your personal aliases as defined
- in your
- muttrc. It is the mapping from a short alias name to the full
- email
- address(es) of the recipient(s).
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>attach</term>
- <listitem>
- <para>
- The attachment menu is used to access the attachments on
- received messages.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>browser</term>
- <listitem>
- <para>
- The browser is used for both browsing the local directory
- structure, and for
- listing all of your incoming mailboxes.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>editor</term>
- <listitem>
- <para>
- The editor is the line-based editor the user enters text data.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>index</term>
- <listitem>
- <para>
- The index is the list of messages contained in a mailbox.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>compose</term>
- <listitem>
- <para>
- The compose menu is the screen used when sending a new message.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>pager</term>
- <listitem>
- <para>
- The pager is the mode used to display message/attachment data,
- and help
- listings.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>pgp</term>
- <listitem>
- <para>
- The pgp menu is used to select the OpenPGP keys used for
- encrypting outgoing
- messages.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>postpone</term>
- <listitem>
- <para>
- The postpone menu is similar to the index menu, except is used
- when
- recalling a message the user was composing, but saved until
- later.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
-
- <para>
- <emphasis>key</emphasis> is the key (or key sequence) you wish to bind.
- To specify a
- control character, use the sequence <emphasis>\Cx</emphasis>,
- where <emphasis>x</emphasis> is the
- letter of the control character (for example, to specify control-A use
- ``\Ca''). Note that the case of <emphasis>x</emphasis> as well as
- <emphasis>\C</emphasis> is
- ignored, so that <emphasis>\CA</emphasis>, <emphasis>\Ca</emphasis>, <emphasis>
- \cA
- </emphasis>
- and <emphasis>\ca</emphasis> are all
- equivalent. An alternative form is to specify the key as a three digit
- octal number prefixed with a ``\'' (for example <emphasis>
- \177
- </emphasis>
- is
- equivalent to <emphasis>\c?</emphasis>).
- </para>
-
- <para>
- In addition, <emphasis>key</emphasis> may consist of:
- </para>
-
- <para>
-
- <table frame="none" rowsep="1" texstr="l|l">
- <title>Alternative Key Names</title>
- <tgroup cols="2" align="left" colsep="1" rowsep="1">
- <thead>
- <row>
- <entry>Sequence</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><literal>\t</literal></entry>
- <entry>tab</entry>
- </row>
- <row>
- <entry><literal><tab></literal></entry>
- <entry>tab</entry>
- </row>
- <row>
- <entry><literal><backtab></literal></entry>
- <entry>backtab / shift-tab</entry>
- </row>
- <row>
- <entry><literal>\r</literal></entry>
- <entry>carriage return</entry>
- </row>
- <row>
- <entry><literal>\n</literal></entry>
- <entry>newline</entry>
- </row>
- <row>
- <entry><literal>\e</literal></entry>
- <entry>escape</entry>
- </row>
- <row>
- <entry><literal><esc></literal></entry>
- <entry>escape</entry>
- </row>
- <row>
- <entry><literal><up></literal></entry>
- <entry>up arrow</entry>
- </row>
- <row>
- <entry><literal><down></literal></entry>
- <entry>down arrow</entry>
- </row>
- <row>
- <entry><literal><left></literal></entry>
- <entry>left arrow</entry>
- </row>
- <row>
- <entry><literal><right></literal></entry>
- <entry>right arrow</entry>
- </row>
- <row>
- <entry><literal><pageup></literal></entry>
- <entry>Page Up</entry>
- </row>
- <row>
- <entry><literal><pagedown></literal></entry>
- <entry>Page Down</entry>
- </row>
- <row>
- <entry><literal><backspace></literal></entry>
- <entry>Backspace</entry>
- </row>
- <row>
- <entry><literal><delete></literal></entry>
- <entry>Delete</entry>
- </row>
- <row>
- <entry><literal><insert></literal></entry>
- <entry>Insert</entry>
- </row>
- <row>
- <entry><literal><enter></literal></entry>
- <entry>Enter</entry>
- </row>
- <row>
- <entry><literal><return></literal></entry>
- <entry>Return</entry>
- </row>
- <row>
- <entry><literal><home></literal></entry>
- <entry>Home</entry>
- </row>
- <row>
- <entry><literal><end></literal></entry>
- <entry>End</entry>
- </row>
- <row>
- <entry><literal><space></literal></entry>
- <entry>Space bar</entry>
- </row>
- <row>
- <entry><literal><f1></literal></entry>
- <entry>function key 1</entry>
- </row>
- <row>
- <entry><literal><f10></literal></entry>
- <entry>function key 10</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- </para>
-
- <para>
- <emphasis>key</emphasis> does not need to be enclosed in quotes unless
- it contains a
- space (`` '').
- </para>
-
- <para>
- <emphasis>function</emphasis> specifies which action to take when <emphasis>
- key
- </emphasis>
- is pressed.
- For a complete list of functions, see the <link linkend="functions">functions</link>.
- The special function <literal>noop</literal> unbinds the specified key
- sequence.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="charset-hook">
- <title>Defining aliases for character sets</title>
-
- <anchor id="iconv-hook"/>
- <para>
- Usage: <madmutt-doc:hook name="charset"/> <emphasis>alias</emphasis> <emphasis> charset</emphasis>
- </para>
- <para>
- Usage: <madmutt-doc:hook name="iconv"/> <emphasis>charset</emphasis> <emphasis> local-charset </emphasis>
- </para>
-
- <para>
- The <madmutt-doc:hook name="charset"/> command defines an alias for a
- character set.
- This is useful to properly display messages which are tagged with a
- character set name not known to mutt.
- </para>
-
- <para>
- The <madmutt-doc:hook name="iconv"/> command defines a system-specific
- name for a
- character set. This is helpful when your systems character
- conversion library insists on using strange, system-specific names
- for character sets.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="folder-hook">
- <title>Setting variables based upon mailbox</title>
-
- <para>
- Usage: <madmutt-doc:hook name="folder"/> [!]<emphasis>regexp</emphasis> <emphasis>command</emphasis>
- </para>
-
- <para>
- It is often desirable to change settings based on which mailbox you are
- reading. The <madmutt-doc:hook name="folder"/> command provides a method by which you can
- execute
- any configuration command. <emphasis>regexp</emphasis> is a regular
- expression specifying
- in which mailboxes to execute <emphasis>command</emphasis> before
- loading. If a mailbox
- matches multiple <madmutt-doc:hook name="folder"/>'s, they are executed in the order given in
- the
- muttrc.
- </para>
-
- <para>
- <emphasis role="bold">Note:</emphasis> if you use the ``!'' shortcut
- for <madmutt-doc:varref name="spoolfile"/> at the beginning of the
- pattern, you must place it
- inside of double or single quotes in order to distinguish it from the
- logical <emphasis>not</emphasis> operator for the expression.
- </para>
-
- <para>
- Note that the settings are <emphasis>not</emphasis> restored when you
- leave the mailbox.
- For example, a command action to perform is to change the sorting
- methodbased upon the mailbox being read:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-folder-hook mutt set sort=threads</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- However, the sorting method is not restored to its previous value when
- reading a different mailbox. To specify a <emphasis>default</emphasis>
- command, use the
- pattern ``.'':
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-folder-hook . set sort=date-sent</madmutt-doc:lstconf>
-
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1>
- <title>Keyboard macros</title>
-
- <para>
- <madmutt-doc:cmddef name="macro">
- menu key sequence [description]
- </madmutt-doc:cmddef>
- </para>
-
- <para>
- Macros are useful when you would like a single key to perform a series
- of
- actions. When you press <emphasis>key</emphasis> in menu <emphasis>
- menu
- </emphasis>
- ,Madmutt will behave as if
- you had typed <emphasis>sequence</emphasis>. So if you have a common
- sequence of commands
- you type, you can create a macro to execute those commands with a
- singlekey.
- </para>
-
- <para>
- <emphasis>menu</emphasis> is the <link linkend="maps">maps</link> which
- the macro will be bound.
- Multiple maps may be specified by separating multiple menu arguments by
- commas. Whitespace may not be used in between the menu arguments and
- thecommas separating them.
- </para>
-
- <para>
- <emphasis>key</emphasis> and <emphasis>sequence</emphasis> are
- expanded by the same rules as the <madmutt-doc:cmdref
- name="bind"/>. There are some additions however. The first
- is that control characters in <emphasis>sequence</emphasis> can
- also be specified as <literal>^x</literal>. In order to get a
- caret (`^'') you need to specify it twice. Secondly,
- to specify a certain key such as <emphasis>up</emphasis> or to
- invoke a function directly, you can use the format
- <emphasis><key name></emphasis> and <emphasis><function
- name> </emphasis> .For a listing of key names see the
- section on <madmutt-doc:cmdref name="bind"/>. Functions are
- listed in the <link linkend="functions">functions</link>.
- </para>
-
- <para>
- The advantage with using function names directly is that the macros
- willwork regardless of the current key bindings, so they are not
- dependent on
- the user having particular key definitions. This makes them more
- robustand portable, and also facilitates defining of macros in files
- used by more
- than one user (eg. the system madmuttrc).
- </para>
-
- <para>
- Optionally you can specify a descriptive text after <emphasis>sequence</emphasis>,
- which is shown in the help screens.
- </para>
-
- <para>
- <emphasis role="bold">Note:</emphasis> Macro definitions (if any)
- listed in the help screen(s), are
- silently truncated at the screen width, and are not wrapped.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1>
- <title>Using color and mono video attributes</title>
-
- <para>
- <madmutt-doc:cmddef name="color">object foreground background [regexp]</madmutt-doc:cmddef>
- </para>
- <para>
- <madmutt-doc:cmddef name="color" noanchor="1">index foreground pattern</madmutt-doc:cmddef>
- </para>
- <para>
- <madmutt-doc:cmddef name="uncolor">index pattern [pattern ...]</madmutt-doc:cmddef>
- </para>
-
- <para>
- If your terminal supports color, you can spice up Madmutt by creating
- your own
- color scheme. To define the color of an object (type of information),
- you
- must specify both a foreground color <emphasis role="bold">and</emphasis> a background color (it is not
- possible to only specify one or the other).
- </para>
-
- <para>
- <emphasis>object</emphasis> can be one of:
- </para>
-
- <para>
-
- <itemizedlist>
- <listitem>
-
- <para>
- attachment
- </para>
- </listitem>
- <listitem>
-
- <para>
- body (match <emphasis>regexp</emphasis> in the body of messages)
- </para>
- </listitem>
- <listitem>
-
- <para>
- bold (highlighting bold patterns in the body of messages)
- </para>
- </listitem>
- <listitem>
-
- <para>
- error (error messages printed by Madmutt)
- </para>
- </listitem>
- <listitem>
-
- <para>
- header (match <emphasis>regexp</emphasis> in the message header)
- </para>
- </listitem>
- <listitem>
-
- <para>
- hdrdefault (default color of the message header in the pager)
- </para>
- </listitem>
- <listitem>
-
- <para>
- index (match <emphasis>pattern</emphasis> in the message index)
- </para>
- </listitem>
- <listitem>
-
- <para>
- indicator (arrow or bar used to indicate the current item in a
- menu)
- </para>
- </listitem>
- <listitem>
-
- <para>
- markers (the ``+'' markers at the beginning of wrapped lines in
- the pager)
- </para>
- </listitem>
- <listitem>
-
- <para>
- message (informational messages)
- </para>
- </listitem>
- <listitem>
-
- <para>
- normal
- </para>
- </listitem>
- <listitem>
-
- <para>
- quoted (text matching <madmutt-doc:varref name="quote-regexp"/> in the body of a message)
- </para>
- </listitem>
- <listitem>
-
- <para>
- quoted1, quoted2, ..., quoted<emphasis role="bold">N</emphasis>
- (higher levels of quoting)
- </para>
- </listitem>
- <listitem>
-
- <para>
- search (highlighting of words in the pager)
- </para>
- </listitem>
- <listitem>
-
- <para>
- signature
- </para>
- </listitem>
- <listitem>
-
- <para>
- status (mode lines used to display info about the mailbox or
- message)
- </para>
- </listitem>
- <listitem>
-
- <para>
- tilde (the ``~'' used to pad blank lines in the pager)
- </para>
- </listitem>
- <listitem>
-
- <para>
- tree (thread tree drawn in the message index and attachment menu)
- </para>
- </listitem>
- <listitem>
-
- <para>
- underline (highlighting underlined patterns in the body of
- messages)
- </para>
- </listitem>
-
- </itemizedlist>
-
- </para>
-
- <para>
- <emphasis>foreground</emphasis> and <emphasis>background</emphasis> can
- be one of the following:
- </para>
-
- <para>
-
- <itemizedlist>
- <listitem>
-
- <para>
- white
- </para>
- </listitem>
- <listitem>
-
- <para>
- black
- </para>
- </listitem>
- <listitem>
-
- <para>
- green
- </para>
- </listitem>
- <listitem>
-
- <para>
- magenta
- </para>
- </listitem>
- <listitem>
-
- <para>
- blue
- </para>
- </listitem>
- <listitem>
-
- <para>
- cyan
- </para>
- </listitem>
- <listitem>
-
- <para>
- yellow
- </para>
- </listitem>
- <listitem>
-
- <para>
- red
- </para>
- </listitem>
- <listitem>
-
- <para>
- default
- </para>
- </listitem>
- <listitem>
-
- <para>
- color<emphasis>x</emphasis>
- </para>
- </listitem>
-
- </itemizedlist>
-
- </para>
-
- <para>
- <emphasis>foreground</emphasis> can optionally be prefixed with the
- keyword <literal>bright</literal> to make
- the foreground color boldfaced (e.g., <literal>brightred</literal>).
- </para>
-
- <para>
- If your terminal supports it, the special keyword <emphasis>default</emphasis> can be
- used as a transparent color. The value <emphasis>brightdefault</emphasis> is also valid.
- If Madmutt is linked against the <emphasis>S-Lang</emphasis> library,
- you also need to set
- the <madmutt-doc:envvar name="COLORFGBG"/> environment variable to the default
- colors of your
- terminal for this to work; for example (for Bourne-like shells):
- </para>
-
- <para>
-
- <madmutt-doc:lstshell>
-set COLORFGBG="green;black"
-export COLORFGBG</madmutt-doc:lstshell>
-
- </para>
-
- <para>
- <emphasis role="bold">Note:</emphasis> The <emphasis>S-Lang</emphasis>
- library requires you to use the <emphasis>lightgray</emphasis>
- and <emphasis>brown</emphasis> keywords instead of <emphasis>white</emphasis> and <emphasis>
- yellow
- </emphasis>
- when
- setting this variable.
- </para>
-
- <para>
- <emphasis role="bold">Note:</emphasis> The uncolor command can be
- applied to the index object only. It
- removes entries from the list. You <emphasis role="bold">must</emphasis> specify the same pattern
- specified in the color command for it to be removed. The pattern ``*''
- is
- a special token which means to clear the color index list of all
- entries.
- </para>
-
- <para>
- Madmutt also recognizes the keywords <emphasis>color0</emphasis>, <emphasis>
- color1
- </emphasis>
- ,...,
- <emphasis>color</emphasis><emphasis role="bold">N-1</emphasis> (<emphasis role="bold">
- N
- </emphasis>
- being the number of colors supported
- by your terminal). This is useful when you remap the colors for your
- display (for example by changing the color associated with <emphasis>
- color2
- </emphasis>
- for your xterm), since color names may then lose their normal meaning.
- </para>
-
- <para>
- If your terminal does not support color, it is still possible change
- the video
- attributes through the use of the ``mono'' command:
- </para>
-
- <para>
- <madmutt-doc:cmddef name="mono">object attribute [regexp]</madmutt-doc:cmddef>
- </para>
- <para>
- <madmutt-doc:cmddef name="mono" noanchor="1">index attribute pattern</madmutt-doc:cmddef>
- </para>
- <para>
- <madmutt-doc:cmddef name="unmono">index pattern [pattern ...]</madmutt-doc:cmddef>
- </para>
-
- <para>
- where <emphasis>attribute</emphasis> is one of the following:
- </para>
-
- <para>
-
- <itemizedlist>
- <listitem>
-
- <para>
- none
- </para>
- </listitem>
- <listitem>
-
- <para>
- bold
- </para>
- </listitem>
- <listitem>
-
- <para>
- underline
- </para>
- </listitem>
- <listitem>
-
- <para>
- reverse
- </para>
- </listitem>
- <listitem>
-
- <para>
- standout
- </para>
- </listitem>
-
- </itemizedlist>
-
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1>
- <title>Ignoring (weeding) unwanted message headers</title>
-
- <para>
- <madmutt-doc:cmddef name="ignore">pattern [pattern ...]</madmutt-doc:cmddef>
- </para>
-
- <para>
- <madmutt-doc:cmddef name="unignore">pattern [pattern ...]</madmutt-doc:cmddef>
- </para>
-
- <para>
- Messages often have many header fields added by automatic processing
- systems,
- or which may not seem useful to display on the screen. This command
- allows
- you to specify header fields which you don't normally want to see.
- </para>
-
- <para>
- You do not need to specify the full header field name. For example,
- ``ignore content-'' will ignore all header fields that begin with the
- pattern
- ``content-''. ``ignore *'' will ignore all headers.
- </para>
-
- <para>
- To remove a previously added token from the list, use the ``unignore''
- command.
- The ``unignore'' command will make Madmutt display headers with the
- given pattern.
- For example, if you do ``ignore x-'' it is possible to ``unignore
- x-mailer''.
- </para>
-
- <para>
- ``unignore *'' will remove all tokens from the ignore list.
- </para>
-
- <para>
- For example:
-
- <madmutt-doc:lstconf>
-# Sven's draconian header weeding
-ignore *
-unignore from date subject to cc
-unignore organization organisation x-mailer: x-newsreader: x-mailing-list:
-unignore posted-to:</madmutt-doc:lstconf>
-
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1>
- <title>Alternative addresses</title>
-
- <para>
- <madmutt-doc:cmddef name="alternates">regexp [regexp ...]</madmutt-doc:cmddef>
- </para>
-
- <para>
- <madmutt-doc:cmddef name="unalternates">regexp [regexp ...]</madmutt-doc:cmddef>
- </para>
-
- <para>
- With various functions, mutt will treat messages differently,
- depending on whether you sent them or whether you received them from
- someone else. For instance, when replying to a message that you
- sent to a different party, mutt will automatically suggest to send
- the response to the original message's recipients--responding to
- yourself won't make much sense in many cases.
- (See <madmutt-doc:varref name="reply-to"/>.)
- </para>
-
- <para>
- Many users receive e-mail under a number of different addresses. To
- fully use mutt's features here, the program must be able to
- recognize what e-mail addresses you receive mail under. That's the
- purpose of the <literal>alternates</literal> command: It takes a list
- of regular
- expressions, each of which can identify an address under which you
- receive e-mail.
- </para>
-
- <para>
- The <literal>unalternates</literal> command can be used to write
- exceptions to
- <literal>alternates</literal> patterns. If an address matches something
- in an
- <literal>alternates</literal> command, but you nonetheless do not think
- it is
- from you, you can list a more precise pattern under an <literal>
- unalternates
- </literal>
- command.
- </para>
-
- <para>
- To remove a regular expression from the <literal>alternates</literal>
- list, use the
- <literal>unalternates</literal> command with exactly the same <emphasis>
- regexp
- </emphasis>
- .
- Likewise, if the <emphasis>regexp</emphasis> for a <literal>alternates</literal> command matches
- an entry on the <literal>unalternates</literal> list, that <literal>
- unalternates
- </literal>
- entry will be removed. If the <emphasis>regexp</emphasis> for <literal>
- unalternates
- </literal>
- is ``*'', <emphasis>all entries</emphasis> on <literal>alternates</literal> will be removed.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="format-flowed">
- <title>Format = Flowed</title>
-
- <sect2 id="format-flowed-intro">
- <title>Introduction</title>
-
- <para>
- Madmutt contains support for so-called <literal>format=flowed</literal> messages.
- In the beginning of email, each message had a fixed line width, and
- it was enough for displaying them on fixed-size terminals. But times
- changed, and nowadays hardly anybody still uses fixed-size terminals:
- more people nowaydays use graphical user interfaces, with dynamically
- resizable windows. This led to the demand of a new email format that
- makes it possible for the email client to make the email look nice
- in a resizable window without breaking quoting levels and creating
- an incompatible email format that can also be displayed nicely on
- old fixed-size terminals.
- </para>
-
- <para>
- For introductory information on <literal>format=flowed</literal>
- messages, see
- <madmutt-doc:web url="http://www.joeclark.org/ffaq.html"/>.
- </para>
-
- </sect2>
-
- <sect2 id="format-flowed-display">
- <title>Receiving: Display Setup</title>
-
- <para>
- When you receive emails that are marked as <literal>format=flowed</literal>
- messages, and is formatted correctly, Madmutt will try to reformat
- the message to optimally fit on your terminal. If you want a fixed
- margin on the right side of your terminal, you can set the
- following:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-set wrapmargin = 10</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- The code above makes the line break 10 columns before the right
- side of the terminal.
- </para>
-
- <para>
- If your terminal is so wide that the lines are embarrassingly long,
- you can also set a maximum line length:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-set max_line_length = 120</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- The example above will give you lines not longer than 120
- characters.
- </para>
-
- <para>
- When you view at <literal>format=flowed</literal> messages, you will
- often see
- the quoting hierarchy like in the following example:
- </para>
-
- <para>
-
- <madmutt-doc:lstmail>
->Bill, can you please send last month's progress report to Mr.
->Morgan? We also urgently need the cost estimation for the new
->production server that we want to set up before our customer's
->project will go live.</madmutt-doc:lstmail>
-
- </para>
-
- <para>
- This obviously doesn't look very nice, and it makes it very
- hard to differentiate between text and quoting character. The
- solution is to configure Madmutt to "stuff" the quoting:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-set stuff_quoted</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- This will lead to a nicer result that is easier to read:
- </para>
-
- <para>
-
- <madmutt-doc:lstmail>
-> Bill, can you please send last month's progress report to Mr.
-> Morgan? We also urgently need the cost estimation for the new
-> production server that we want to set up before our customer's
-> project will go live.</madmutt-doc:lstmail>
-
- </para>
-
- </sect2>
-
- <sect2 id="format-flowed-send">
- <title>Sending</title>
-
- <para>
- If you want Madmutt to send emails with <literal>format=flowed</literal> set, you
- need to explicitly set it:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-set text_flowed</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- Additionally, you have to use an editor which supports writing
- <literal>format=flowed</literal>-conforming emails. For <madmutt-doc:man name="vim"/>, this is
- done by
- adding <literal>w</literal> to the formatoptions (see <literal>:h
- formatoptions
- </literal>
- and
- <literal>:h fo-table</literal>) when writing emails.
- </para>
-
- <para>
- Also note that <emphasis>format=flowed</emphasis> knows about
- ``space-stuffing'',
- that is, when sending messages, some kinds of lines have to be
- indented with a single space on the sending side. On the receiving
- side, the first space (if any) is removed. As a consequence and in
- addition to the above simple setting, please keep this in mind when
- making manual formattings within the editor. Also note that Madmutt
- currently violates the standard (<madmutt-doc:rfc num="3676"/>) as it does not
- space-stuff lines starting with:
- </para>
-
- <para>
-
- <itemizedlist>
- <listitem>
- <para>
- <literal>></literal> This is <emphasis>not</emphasis> the
- quote character but a right
- angle used for other reasons
-
- </para>
- </listitem>
- </itemizedlist>
-
- </para>
-
- <para>
- Please make sure that you manually prepend a space to each of them.
- </para>
-
- </sect2>
-
- <sect2 id="format-flowed-notes">
- <title>Additional Notes</title>
-
- <para>
- For completeness, the <madmutt-doc:varref name="delete-space"/> variable provides the mechanism
- to generate a <literal>DelSp=yes</literal> parameter on <emphasis>
- outgoing
- </emphasis>
- messages.
- According to the standard, clients receiving a <literal>format=flowed</literal>
- messages should delete the last space of a flowed line but still
- interpret the line as flowed. Because flowed lines usually contain
- only one space at the end, this parameter would make the receiving
- client concatenate the last word of the previous with the first of
- the current line <emphasis>without</emphasis> a space. This makes
- ordinary text
- unreadable and is intended for languages rarely using spaces. So
- please use this setting only if you're sure what you're doing.
- </para>
-
- <para>
-
- </para>
-
- </sect2>
-
- </sect1>
-
- <sect1>
- <title>Mailing lists</title>
-
- <para>
- <madmutt-doc:cmddef name="lists">regexp [regexp ...]</madmutt-doc:cmddef>
- </para>
- <para>
- <madmutt-doc:cmddef name="unlists">regexp [regexp ...]</madmutt-doc:cmddef>
- </para>
- <para>
- <madmutt-doc:cmddef name="subscribe">regexp [regexp ...]</madmutt-doc:cmddef>
- </para>
- <para>
- <madmutt-doc:cmddef name="unsubscribe">regexp [regexp ...]</madmutt-doc:cmddef>
- </para>
-
- <para>
- Madmutt has a few nice features for <link linkend="using-lists">using-lists</link>.
- In order to take advantage of them, you must
- specify which addresses belong to mailing lists, and which mailing
- lists you are subscribed to. Once you have done this, the
- <link linkend="func-list-reply">list-reply</link>
- function will work for all known lists.
- Additionally, when you send a message to a subscribed list, mutt will
- add a Mail-Followup-To header to tell other users' mail user agents
- not to send copies of replies to your personal address. Note that
- the Mail-Followup-To header is a non-standard extension which is not
- supported by all mail user agents. Adding it is not bullet-proof
- against
- receiving personal CCs of list messages. Also note that the generation
- of the Mail-Followup-To header is controlled by the
- <madmutt-doc:varref name="followup-to"/>
- configuration variable.
- </para>
-
- <para>
- More precisely, Madmutt maintains lists of patterns for the addresses
- of known and subscribed mailing lists. Every subscribed mailing
- list is known. To mark a mailing list as known, use the ``lists''
- command. To mark it as subscribed, use ``subscribe''.
- </para>
-
- <para>
- You can use regular expressions with both commands. To mark all
- messages sent to a specific bug report's address on mutt's bug
- tracking system as list mail, for instance, you could say
- ``subscribe [0-9]*@bugs.guug.de''. Often, it's sufficient to just
- give a portion of the list's e-mail address.
- </para>
-
- <para>
- Specify as much of the address as you need to to remove ambiguity. For
- example, if you've subscribed to the Madmutt mailing list, you will
- receive mail
- addressed to <emphasis>mutt-users@mutt.org</emphasis>. So, to tell
- Madmutt that this is a
- mailing list, you could add ``lists mutt-users'' to your
- initialization file. To tell mutt that you are subscribed to it,
- add ``subscribe mutt-users'' to your initialization file instead.
- If you also happen to get mail from someone whose address is
- <emphasis>mutt-users@example.com</emphasis>, you could use ``lists
- mutt-users@mutt\\.org''
- or ``subscribe mutt-users@mutt\\.org'' to
- match only mail from the actual list.
- </para>
-
- <para>
- The ``unlists'' command is used to remove a token from the list of
- known and subscribed mailing-lists. Use ``unlists *'' to remove all
- tokens.
- </para>
-
- <para>
- To remove a mailing list from the list of subscribed mailing lists,
- but keep it on the list of known mailing lists, use ``unsubscribe''.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="mbox-hook">
- <title>Using Multiple spool mailboxes</title>
-
- <para>
- Usage: <madmutt-doc:hook name="mbox"/> [!]<emphasis>pattern</emphasis> <emphasis>mailbox</emphasis>
- </para>
-
- <para>
- This command is used to move read messages from a specified mailbox to
- adifferent mailbox automatically when you quit or change folders.
- <emphasis>pattern</emphasis> is a regular expression specifying the
- mailbox to treat as a
- ``spool'' mailbox and <emphasis>mailbox</emphasis> specifies where mail
- should be saved when
- read.
- </para>
-
- <para>
- Unlike some of the other <emphasis>hook</emphasis> commands, only the <emphasis>
- first
- </emphasis>
- matching
- pattern is used (it is not possible to save read mail in more than a
- single
- mailbox).
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1>
- <title>Defining mailboxes which receive mail</title>
-
- <para>
- <madmutt-doc:cmddef name="mailboxes"> [!]filename [filename ... ]</madmutt-doc:cmddef>
- </para>
- <para>
- <madmutt-doc:cmddef name="unmailboxes"> [!]filename [filename ... ]</madmutt-doc:cmddef>
- </para>
-
- <para>
- This command specifies folders which can receive mail and
- which will be checked for new messages. By default, the
- main menu status bar displays how many of these folders have
- new messages.
- </para>
-
- <para>
- When changing folders, pressing <emphasis>space</emphasis> will cycle
- through folders with new mail.
- </para>
-
- <para>
- Pressing TAB in the directory browser will bring up a menu showing the
- files
- specified by the <literal>mailboxes</literal> command, and indicate
- which contain new
- messages. Madmutt will automatically enter this mode when invoked from
- the
- command line with the <literal>-y</literal> option.
- </para>
-
- <para>
- The ``unmailboxes'' command is used to remove a token from the list
- of folders which receive mail. Use ``unmailboxes *'' to remove all
- tokens.
- </para>
-
- <para>
- <emphasis role="bold">Note:</emphasis> new mail is detected by
- comparing the last modification time to
- the last access time. Utilities like <literal>biff</literal> or <literal>
- frm
- </literal>
- or any other
- program which accesses the mailbox might cause Madmutt to never detect
- new mail
- for that mailbox if they do not properly reset the access time. Backup
- tools are another common reason for updated access times.
- </para>
-
- <para>
- <emphasis role="bold">Note:</emphasis> the filenames in the <literal>
- mailboxes
- </literal>
- command are resolved when
- the command is executed, so if these names contain <link linkend="shortcuts">shortcuts</link>
- (such as ``='' and ``!''), any variable
- definition that affect these characters (like <madmutt-doc:varref name="folder"/>
- and <madmutt-doc:varref name="spoolfile"/>)
- should be executed before the <literal>mailboxes</literal> command.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1>
- <title>User defined headers</title>
-
- <para>
- <madmutt-doc:cmddef name="my_hdr">string</madmutt-doc:cmddef>
- </para>
- <para>
- <madmutt-doc:cmddef name="unmy_hdr">field [field ...]</madmutt-doc:cmddef>
- </para>
-
- <para>
- The ``my_hdr'' command allows you to create your own header
- fields which will be added to every message you send.
- </para>
-
- <para>
- For example, if you would like to add an ``Organization:'' header field
- to
- all of your outgoing messages, you can put the command
- </para>
-
- <para>
- <madmutt-doc:lstconf>
-my_hdr Organization: A Really Big Company, Anytown, USA</madmutt-doc:lstconf>
- </para>
-
- <para>
- in your <literal>.muttrc</literal>.
- </para>
-
- <para>
- <emphasis role="bold">Note:</emphasis> space characters are <emphasis>
- not
- </emphasis>
- allowed between the keyword and
- the colon (``:''). The standard for electronic mail (<madmutt-doc:rfc num="822"/>) says that
- space is illegal there, so Madmutt enforces the rule.
- </para>
-
- <para>
- If you would like to add a header field to a single message, you should
- either set the <madmutt-doc:varref name="edit-headers"/>
- variable,
- or use the <emphasis>edit-headers</emphasis> function (default: ``E'')
- in the send-menu so
- that you can edit the header of your message along with the body.
- </para>
-
- <para>
- To remove user defined header fields, use the ``unmy_hdr''
- command. You may specify an asterisk (``*'') to remove all header
- fields, or the fields to remove. For example, to remove all ``To'' and
- ``Cc'' header fields, you could use:
- </para>
-
- <para>
- <madmutt-doc:lstconf>
-unmy_hdr to cc</madmutt-doc:lstconf>
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1>
- <title>Defining the order of headers when viewing messages</title>
-
- <para>
- <madmutt-doc:cmddef name="hdr_order">header header [header ...]</madmutt-doc:cmddef>
- </para>
-
- <para>
- <madmutt-doc:cmddef name="unhdr_order">[ * | header header ...]</madmutt-doc:cmddef>
- </para>
-
- <para>
- With this command, you can specify an order in which mutt will attempt
- to present headers to you when viewing messages.
- </para>
-
- <para>
- ``unhdr_order *'' will clear all previous headers from the order
- list,
- thus removing the header order effects set by the system-wide startup
- file.
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-hdr_order From Date: From: To: Cc: Subject:</madmutt-doc:lstconf>
-
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="save-hook">
- <title>Specify default save filename</title>
-
- <para>
- Usage: <madmutt-doc:hook name="save"/> [!]<emphasis>pattern</emphasis> <emphasis>filename</emphasis>
- </para>
-
- <para>
- This command is used to override the default filename used when saving
- messages. <emphasis>filename</emphasis> will be used as the default
- filename if the message is
- <emphasis>From:</emphasis> an address matching <emphasis>regexp</emphasis> or if you are the author and the
- message is addressed <emphasis>to:</emphasis> something matching <emphasis>
- regexp
- </emphasis>
- .
- </para>
-
- <para>
- See <madmutt-doc:hook name="pattern"/> for information on
- the exact format of <emphasis>pattern</emphasis>.
- </para>
-
- <para>
- Examples:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-save-hook me@(turing\\.)?cs\\.hmc\\.edu$ +elkins
-save-hook aol\\.com$ +spam</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- Also see the <madmutt-doc:hook name="fcc-save"/>
- command.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="fcc-hook">
- <title>Specify default Fcc: mailbox when composing</title>
-
- <para>
- Usage: <madmutt-doc:hook name="fcc"/> [!]<emphasis>pattern</emphasis> <emphasis>mailbox</emphasis>
- </para>
-
- <para>
- This command is used to save outgoing mail in a mailbox other than
- <madmutt-doc:varref name="record"/>. Madmutt searches the initial
- list of
- message recipients for the first matching <emphasis>regexp</emphasis>
- and uses <emphasis>mailbox</emphasis>
- as the default Fcc: mailbox. If no match is found the message will be
- saved
- to <madmutt-doc:varref name="record"/> mailbox.
- </para>
-
- <para>
- See <madmutt-doc:hook name="pattern"/> for information on
- the exact format of <emphasis>pattern</emphasis>.
- </para>
-
- <para>
- Example:
- </para>
-
- <para>
- <madmutt-doc:lstconf>
-fcc-hook [@.]aol\\.com$ +spammers</madmutt-doc:lstconf>
- </para>
-
- <para>
- The above will save a copy of all messages going to the aol.com
- domain to the `+spammers' mailbox by default. Also see the
- <madmutt-doc:hook name="fcc-save"/> command.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="fcc-save-hook">
- <title>Specify default save filename and default Fcc: mailbox at once</title>
-
- <para>
- Usage: <literal><madmutt-doc:hook name="fcc-save"/></literal> [!]<emphasis>pattern</emphasis> <emphasis>mailbox</emphasis>
- </para>
-
- <para>
- This command is a shortcut, equivalent to doing both a <madmutt-doc:hook name="fcc"/>
- and a <madmutt-doc:hook name="save"/> with its arguments.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="send-hook">
- <title>Change settings based upon message recipients</title>
-
- <anchor id="reply-hook"/>
- <anchor id="send2-hook"/>
- <para>
- Usage: <madmutt-doc:hook name="reply"/> [!]<emphasis>pattern</emphasis> <emphasis>command</emphasis>
- </para>
- <para>
- Usage: <madmutt-doc:hook name="send"/> [!]<emphasis>pattern</emphasis> <emphasis>command</emphasis>
- </para>
- <para>
- Usage: <madmutt-doc:hook name="send2"/> [!]<emphasis>pattern</emphasis> <emphasis>command</emphasis>
- </para>
-
- <para>
- These commands can be used to execute arbitrary configuration commands
- based
- upon recipients of the message. <emphasis>pattern</emphasis> is a
- regular expression
- matching the desired address. <emphasis>command</emphasis> is executed
- when <emphasis>regexp</emphasis>
- matches recipients of the message.
- </para>
-
- <para>
- <madmutt-doc:hook name="reply"/> is matched against the message you are <emphasis>
- replying
- </emphasis>
- <emphasis role="bold">to</emphasis>, instead of the message you are <emphasis>
- sending
- </emphasis>
- .<madmutt-doc:hook name="send"/> is
- matched against all messages, both <emphasis>new</emphasis> and <emphasis>
- replies
- </emphasis>
- .<emphasis role="bold">Note:</emphasis>
- <madmutt-doc:hook name="reply"/>s are matched <emphasis role="bold">before</emphasis> the
- <madmutt-doc:hook name="send"/>, <emphasis role="bold">regardless</emphasis>
- of the order specified in the users's configuration file.
- </para>
-
- <para>
- <madmutt-doc:hook name="send2"/> is matched every time a message is
- changed, either
- by editing it, or by using the compose menu to change its recipients
- or subject. <madmutt-doc:hook name="send2"/> is executed after <madmutt-doc:hook name="send"/>
- ,and
- can, e.g., be used to set parameters such as the <madmutt-doc:varref name="sendmail"/>
- variable depending on the message's sender
- address.
- </para>
-
- <para>
- For each type of <madmutt-doc:hook name="send"/> or <madmutt-doc:hook name="reply"/>, when multiple matches
- occur, commands are executed in the order they are specified in the
- muttrc
- (for that type of hook).
- </para>
-
- <para>
- See <madmutt-doc:hook name="pattern"/> for information on
- the exact format of <emphasis>pattern</emphasis>.
- </para>
-
- <para>
- Example: <literal>send-hook mutt "set mime_forward
- signature=''"
- </literal>
- </para>
-
- <para>
- Another typical use for this command is to change the values of the
- <madmutt-doc:varref name="attribution"/>,
- <madmutt-doc:varref name="signature"/> and <madmutt-doc:varref
- name="locale"/>
- variables in order to change the language of the attributions and
- signatures based upon the recipients.
- </para>
-
- <para>
- <emphasis role="bold">Note:</emphasis> the <madmutt-doc:hook name="send"/>'s are only
- executed ONCE after getting the initial
- list of recipients. Adding a recipient after replying or editing the
- message will NOT cause any <madmutt-doc:hook name="send"/> to be executed. Also note that
- my_hdr commands which modify recipient headers, or the message's
- subject, don't have any effect on the current message when executed
- from a <madmutt-doc:hook name="send"/>.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="message-hook">
- <title>Change settings before formatting a message</title>
-
- <para>
- Usage: <madmutt-doc:hook name="message"/> [!]<emphasis>pattern</emphasis> <emphasis>command</emphasis>
- </para>
-
- <para>
- This command can be used to execute arbitrary configuration commands
- before viewing or formatting a message based upon information about the
- message.
- <emphasis>command</emphasis> is executed if the <emphasis>pattern</emphasis> matches the message to be
- displayed. When multiple matches occur, commands are executed in the
- order
- they are specified in the muttrc.
- </para>
-
- <para>
- See <madmutt-doc:hook name="pattern"/> for
- information on the exact format of <emphasis>pattern</emphasis>.
- </para>
-
- <para>
- Example:
-
- <madmutt-doc:lstconf>
-message-hook ~A 'set pager=builtin'
-message-hook '~f freshmeat-news' 'set pager="less \"+/^ subject:.*\""'</madmutt-doc:lstconf>
-
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="crypt-hook">
- <title>Choosing the cryptographic key of the recipient</title>
-
- <para>
- Usage: <madmutt-doc:hook name="crypt"/> <emphasis>pattern</emphasis> <emphasis>keyid</emphasis>
- </para>
-
- <para>
- When encrypting messages with PGP or OpenSSL, you may want to associate
- a certain
- key with a given e-mail address automatically, either because the
- recipient's public key can't be deduced from the destination address,
- or because, for some reasons, you need to override the key Madmutt
- wouldnormally use. The <madmutt-doc:hook name="crypt"/> command provides a method by which
- you can
- specify the ID of the public key to be used when encrypting messages to
- a certain recipient.
- </para>
-
- <para>
- The meaning of "key id" is to be taken broadly in this context: You
- can either put a numerical key ID here, an e-mail address, or even
- just a real name.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1>
- <title>Adding key sequences to the keyboard buffer</title>
-
- <para>
- <madmutt-doc:cmddef name="push">string</madmutt-doc:cmddef>
- </para>
-
- <para>
-
- This command adds the named string to the keyboard buffer. The
- string may contain control characters, key names and function
- names like the sequence string in the <madmutt-doc:cmdref name="macro"/> command. You may use it to
- automatically run a sequence of commands at startup, or when
- entering certain folders. For example, the following command
- will automatically collapse all threads when entering a folder:
-
- <madmutt-doc:lstconf>
-folder-hook . 'push <collapse-all>'</madmutt-doc:lstconf>
-
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1>
- <title>Executing functions</title>
-
- <para>
- <madmutt-doc:cmddef name="exec">function [function ... ]</madmutt-doc:cmddef>
- </para>
-
- <para>
- This command can be used to execute any function. Functions are
- listed in the <link linkend="functions">functions</link>.
- ``exec function'' is equivalent to ``push <function>''.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1>
- <title>Message Scoring</title>
-
- <para>
- <madmutt-doc:cmddef name="score">pattern value</madmutt-doc:cmddef>
- </para>
- <para>
- <madmutt-doc:cmddef name="unscore">pattern [pattern ... ]</madmutt-doc:cmddef>
- </para>
-
- <para>
- In situations where you have to cope with a lot of emails, e.g.
- when you read many different mailing lists, and take part in
- discussions, it is always useful to have the important messages
- marked and the annoying messages or the ones that you aren't
- interested in deleted. For this purpose, Madmutt features a
- mechanism called ``scoring''.
- </para>
-
- <para>
- When you use scoring, every message has a base score of 0. You
- can then use the <literal>score</literal> command to define patterns
- and a
- positive or negative value associated with it. When a pattern
- matches a message, the message's score will be raised or lowered by
- the amount of the value associated with the pattern.
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-score "~f nion@madmutt\.org" 50
-score "~f @sco\.com" -100</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- If the pattern matches, it is also possible to set the score
- value of the current message to a certain value and then stop
- evaluation:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-score "~f santaclaus@northpole\.int" =666</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- What is important to note is that negative score values will be
- rounded up to 0.
- </para>
-
- <para>
- To make scoring actually useful, the score must be applied in
- some way. That's what the <emphasis>score thresholds</emphasis> are
- for. Currently,
- there are three score thresholds:
- </para>
-
- <para>
-
- <itemizedlist>
- <listitem>
-
- <para>
- flag threshold: when a message has a score value equal or higher
- than the flag threshold, it will be flagged.
-
- </para>
- </listitem>
- <listitem>
-
- <para>
- read threshold: when a message has a score value equal or lower
- than the read threshold, it will be marked as read.
-
- </para>
- </listitem>
- <listitem>
-
- <para>
- delete threshold: when a message has a score value equal or
- lower than the delete threshold, it will be marked as deleted.
-
- </para>
- </listitem>
-
- </itemizedlist>
-
- </para>
-
- <para>
- These three thresholds can be set via the variables
- <madmutt-doc:varref name="score-threshold-read"/>,
- <madmutt-doc:varref name="score-threshold-flag"/> and
- <madmutt-doc:varref name="score-threshold-delete"/>.
- </para>
- <para>
- By default,
- <madmutt-doc:varref name="score-threshold-read"/> and
- <madmutt-doc:varref name="score-threshold-delete"/>
- are set to
- <literal>-1</literal>, which means that in the default threshold
- configuration no
- message will ever get marked as read or deleted.
- </para>
-
- <para>
- Scoring gets especially interesting when combined with the <literal>
- color
- </literal>
- command
- and the <madmutt-doc:pattern name="n"/> pattern:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-color index black yellow "~n 10-"
-color index red yellow "~n 100-"</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- The rules above mark all messages with a score between 10 and 99
- with black and yellow, and messages with a score greater or equal
- 100 with red and yellow. This might be unusual to you if you're used
- to e.g. slrn's scoring mechanism, but it is more flexible, as it
- visually marks different scores.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1>
- <title>Spam detection</title>
-
- <para>
- <madmutt-doc:cmddef name="spam">pattern format</madmutt-doc:cmddef>
- </para>
- <para>
- <madmutt-doc:cmddef name="nospam">pattern</madmutt-doc:cmddef>
- </para>
-
- <para>
- Madmutt has generalized support for external spam-scoring filters.
- By defining your spam patterns with the <literal>spam</literal> and <literal>
- nospam
- </literal>
- commands, you can <emphasis>limit</emphasis>, <emphasis>search</emphasis>, and <emphasis>
- sort
- </emphasis>
- your
- mail based on its spam attributes, as determined by the external
- filter. You also can display the spam attributes in your index
- display using the <literal>%H</literal> selector in the
- <madmutt-doc:varref name="index-format"/>
- variable. (Tip: try <literal>%?H?[%H] ?</literal>
- to display spam tags only when they are defined for a given message.)
- </para>
-
- <para>
- Your first step is to define your external filter's spam patterns using
- the <literal>spam</literal> command. <emphasis>pattern</emphasis>
- should be a regular expression
- that matches a header in a mail message. If any message in the mailbox
- matches this regular expression, it will receive a ``spam tag'' or
- ``spam attribute'' (unless it also matches a <literal>nospam</literal>
- pattern -- see
- below.) The appearance of this attribute is entirely up to you, and is
- governed by the <emphasis>format</emphasis> parameter. <emphasis>format</emphasis> can be any static
- text, but it also can include back-references from the <emphasis>
- pattern
- </emphasis>
- expression. (A regular expression ``back-reference'' refers to a
- sub-expression contained within parentheses.) <literal>%1</literal> is replaced with
- the first back-reference in the regex, <literal>%2</literal>
- with the second, etc.
- </para>
-
- <para>
- If you're using multiple spam filters, a message can have more than
- one spam-related header. You can define <literal>spam</literal>
- patterns for each
- filter you use. If a message matches two or more of these patterns, and
- the $spam_separator variable is set to a string, then the
- message's spam tag will consist of all the <emphasis>format</emphasis>
- strings joined
- together, with the value of $spam_separator separating
- them.
- </para>
-
- <para>
- For example, suppose I use DCC, SpamAssassin, and PureMessage. I might
- define these spam settings:
-
- <madmutt-doc:lstconf>
-spam "X-DCC-.*-Metrics:.*(....)=many" "90+/DCC-%1"
-spam "X-Spam-Status: Yes" "90+/SA"
-spam "X-PerlMX-Spam: .*Probability=([0-9]+)%" "%1/PM"
-set spam_separator=", "</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- If I then received a message that DCC registered with ``many'' hits
- under the ``Fuz2'' checksum, and that PureMessage registered with a
- 97% probability of being spam, that message's spam tag would
- read<literal>90+/DCC-Fuz2, 97/PM</literal>. (The four characters before
- ``=many'' in a
- DCC report indicate the checksum used -- in this case, ``Fuz2''.)
- </para>
-
- <para>
- If the $spam_separator variable is unset, then each
- spam pattern match supersedes the previous one. Instead of getting
- joined <emphasis>format</emphasis> strings, you'll get only the last
- one to match.
- </para>
-
- <para>
- The spam tag is what will be displayed in the index when you use
- <literal>%H</literal> in the <literal>
- $index_format
- </literal>
- variable. It's also the
- string that the <madmutt-doc:pattern name="H"/> pattern-matching expression
- matches against for
- <emphasis>search</emphasis> and <emphasis>limit</emphasis> functions.
- And it's what sorting by spam
- attribute will use as a sort key.
- </para>
-
- <para>
- That's a pretty complicated example, and most people's actual
- environments will have only one spam filter. The simpler your
- configuration, the more effective mutt can be, especially when it comes
- to sorting.
- </para>
-
- <para>
- Generally, when you sort by spam tag, mutt will sort <emphasis>
- lexically
- </emphasis>
- --
- that is, by ordering strings alphnumerically. However, if a spam tag
- begins with a number, mutt will sort numerically first, and lexically
- only when two numbers are equal in value. (This is like UNIX's
- <literal>sort -n</literal>.) A message with no spam attributes at all
- -- that is, one
- that didn't match <emphasis>any</emphasis> of your <literal>spam</literal> patterns -- is sorted at
- lowest priority. Numbers are sorted next, beginning with 0 and ranging
- upward. Finally, non-numeric strings are sorted, with ``a'' taking
- lowerpriority than ``z''. Clearly, in general, sorting by spam tags is
- most
- effective when you can coerce your filter to give you a raw number. But
- in case you can't, mutt can still do something useful.
- </para>
-
- <para>
- The <literal>nospam</literal> command can be used to write exceptions
- to <literal>spam</literal>
- patterns. If a header pattern matches something in a <literal>spam</literal> command,
- but you nonetheless do not want it to receive a spam tag, you can list
- amore precise pattern under a <literal>nospam</literal> command.
- </para>
-
- <para>
- If the <emphasis>pattern</emphasis> given to <literal>nospam</literal>
- is exactly the same as the
- <emphasis>pattern</emphasis> on an existing <literal>spam</literal>
- list entry, the effect will be to
- remove the entry from the spam list, instead of adding an exception.
- Likewise, if the <emphasis>pattern</emphasis> for a <literal>spam</literal> command matches an entry
- on the <literal>nospam</literal> list, that <literal>nospam</literal>
- entry will be removed. If the
- <emphasis>pattern</emphasis> for <literal>nospam</literal> is ``*'', <emphasis>
- all entries on both lists
- </emphasis>
- will be removed. This might be the default action if you use <literal>
- spam
- </literal>
- and <literal>nospam</literal> in conjunction with a <madmutt-doc:hook name="folder"/>.
- </para>
-
- <para>
- You can have as many <literal>spam</literal> or <literal>nospam</literal> commands as you like.
- You can even do your own primitive spam detection within mutt -- for
- example, if you consider all mail from <literal>MAILER-DAEMON</literal>
- to be spam,
- you can use a <literal>spam</literal> command like this:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-spam "^From: .*MAILER-DAEMON" "999"</madmutt-doc:lstconf>
-
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1>
- <title>Setting variables</title>
-
- <para>
- <madmutt-doc:cmddef name="set">[no|inv]variable [=value] [variable...]</madmutt-doc:cmddef>
- </para>
- <para>
- <madmutt-doc:cmddef name="toggle">variable [variable ...]</madmutt-doc:cmddef>
- </para>
- <para>
- <madmutt-doc:cmddef name="unset">variable [variable ...]</madmutt-doc:cmddef>
- </para>
- <para>
- <madmutt-doc:cmddef name="reset">variable [variable ...]</madmutt-doc:cmddef>
- </para>
-
- <para>
- This command is used to set (and unset) <link linkend="variables">variables</link>.
- There are four basic types of variables:
- boolean, number, string and quadoption. <emphasis>boolean</emphasis>
- variables can be
- <emphasis>set</emphasis> (true) or <emphasis>unset</emphasis> (false).
- <emphasis>number</emphasis> variables can be
- assigned a positive integer value.
- </para>
-
- <para>
- <emphasis>string</emphasis> variables consist of any number of
- printable characters.
- <emphasis>strings</emphasis> must be enclosed in quotes if they contain
- spaces or tabs. You
- may also use the ``C'' escape sequences <emphasis role="bold">\n</emphasis> and <emphasis role="bold">
- \t
- </emphasis>
- for
- newline and tab, respectively.
- </para>
-
- <para>
- <emphasis>quadoption</emphasis> variables are used to control whether
- or not to be prompted
- for certain actions, or to specify a default action. A value of <emphasis>
- yes
- </emphasis>
- will cause the action to be carried out automatically as if you had
- answered
- yes to the question. Similarly, a value of <emphasis>no</emphasis>
- will cause the the
- action to be carried out as if you had answered ``no.'' A value of
- <emphasis>ask-yes</emphasis> will cause a prompt with a default answer
- of ``yes'' and
- <emphasis>ask-no</emphasis> will provide a default answer of ``no.''
- </para>
-
- <para>
- Prefixing a variable with ``no'' will unset it. Example: <literal>set
- noaskbcc
- </literal>
- .
- </para>
-
- <para>
- For <emphasis>boolean</emphasis> variables, you may optionally prefix
- the variable name with
- <literal>inv</literal> to toggle the value (on or off). This is useful
- when writing
- macros. Example: <literal>set invsmart_wrap</literal>.
- </para>
-
- <para>
- The <literal>toggle</literal> command automatically prepends the <literal>
- inv
- </literal>
- prefix to all
- specified variables.
- </para>
-
- <para>
- The <literal>unset</literal> command automatically prepends the <literal>
- no
- </literal>
- prefix to all
- specified variables.
- </para>
-
- <para>
- Using the enter-command function in the <emphasis>index</emphasis>
- menu, you can query the
- value of a variable by prefixing the name of the variable with a
- question
- mark:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-set ?allow_8bit</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- The question mark is actually only required for boolean and quadoption
- variables.
- </para>
-
- <para>
- The <literal>reset</literal> command resets all given variables to the
- compile time
- defaults (hopefully mentioned in this manual). If you use the command
- <literal>set</literal> and prefix the variable with ``&'' this has
- the same
- behavior as the reset command.
- </para>
-
- <para>
- With the <literal>reset</literal> command there exists the special
- variable ``all'',
- which allows you to reset all variables to their system defaults.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1>
- <title>Reading initialization commands from another file</title>
-
- <para>
- <madmutt-doc:cmddef name="source">filename [filename ...]</madmutt-doc:cmddef>
- </para>
-
- <para>
- This command allows the inclusion of initialization commands
- from other files. For example, I place all of my aliases in
- <literal>~/.mail_aliases</literal> so that I can make my
- <literal>~/.muttrc</literal> readable and keep my aliases
- private.
- </para>
-
- <para>
- If the filename begins with a tilde (``~''), it will be expanded
- to the
- path of your home directory.
- </para>
-
- <para>
- If the filename ends with a vertical bar (|), then <emphasis>
- filename
- </emphasis>
- is
- considered to be an executable program from which to read input (eg.
- <literal>source ~/bin/myscript|</literal>).
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1>
- <title>Removing hooks</title>
-
- <para>
- <madmutt-doc:cmddef name="unhook">[* | hook-type]</madmutt-doc:cmddef>
- </para>
-
- <para>
- This command permits you to flush hooks you have previously defined.
- You can either remove all hooks by giving the ``*'' character as an
- argument, or you can remove all hooks of a specific type by saying
- something like <literal>unhook send</literal>.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="share">
- <title>Sharing Setups</title>
-
- <sect2 id="share-charset">
- <title>Character Sets</title>
-
- <para>
- As users may run Madmutt on different systems, the configuration
- must be maintained because it's likely that people want to use the
- setup everywhere they use Madmutt. And Madmutt tries to help where it
- can.
- </para>
-
- <para>
- To not produce conflicts with different character sets, Madmutt
- allows users to specify in which character set their configuration
- files are encoded. Please note that while reading the configuration
- files, this is only respected after the corresponding declaration
- appears. It's advised to put the following at the very beginning of a
- users madmuttrc:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-set config_charset = "..."</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- and replacing the dots with the actual character set. To avoid
- problems while maintaining the setup, <madmutt-doc:man name="vim"/> user's may want to use
- modelines as show in:
- </para>
-
- <para>
-
- <screen>
-# vim:fileencoding=...:</screen>
-
- </para>
-
- <para>
- while, again, replacing the dots with the appropriate name. This
- tells <madmutt-doc:man name="vim"/> as which character set to read and save the file.
- </para>
-
- <para>
-
- </para>
-
- </sect2>
-
- <sect2 id="share-modularization">
- <title>Modularization</title>
-
- <para>
- ``Modularization'' means to divide the setup into several files
- while sorting the options or commands by topic. Especially for
- longer setups (e.g. with many hooks), this helps maintaining it
- and solving trouble.
- </para>
-
- <para>
- When using separation, setups may be, as a whole or in
- fractions, shared over different systems.
- </para>
-
- <para>
-
- </para>
-
- </sect2>
-
- <sect2 id="share-conditional">
- <title>Conditional parts</title>
-
- <para>
- When using a configuration on different systems, the user may not
- always have influence on how Madmutt is installed and which features
- it includes.
- </para>
-
- <para>
- To solve this, Madmutt contain a feature based on the ``ifdef''
- patch written for mutt. Its basic syntax is:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-ifdef <item> <command>
-ifndef <item> <command></madmutt-doc:lstconf>
-
- </para>
-
- <para>
- ...whereby <literal><item></literal> can be one of:
- </para>
-
- <para>
-
- <itemizedlist>
- <listitem>
-
- <para>
- a function name
-
- </para>
- </listitem>
- <listitem>
-
- <para>
- a variable name
-
- </para>
- </listitem>
- <listitem>
-
- <para>
- a menu name
-
- </para>
- </listitem>
- <listitem>
-
- <para>
- a feature name
-
- </para>
- </listitem>
-
- </itemizedlist>
-
- </para>
-
- <para>
- All available functions, variables and menus are documented
- elsewhere in this manual but ``features'' is specific to these
- two commands. To test for one, prefix one of the following
- keywords with <literal>feature_</literal>: ncurses,
- slang, iconv, idn, dotlock, standalone, pop, nntp, imap, ssl,
- gnutls, sasl, sasl2, libesmtp, compressed, color, classic_pgp,
- classic_smime, gpgme, header_cache
- </para>
-
- <para>
- As an example, one can use the following in
- <literal>~/.madmuttrc</literal>:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-ifdef feature_imap 'source ~/.Madmutt/setup-imap'
-ifdef feature_pop 'source ~/.Madmutt/setup-pop'
-ifdef feature_nntp 'source ~/.Madmutt/setup-nntp'</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- ...to only source <literal>~/.Madmutt/setup-imap</literal> if
- IMAP
- support is built in, only source <literal>~/.Madmutt/setup-pop</literal>
- if POP support is built in and only source
- <literal>~/.Madmutt/setup-nntp</literal> if NNTP support is
- built in.
- </para>
-
- <para>
- An example for testing for variable names can be used if users
- use different revisions of Madmutt whereby the older one may not
- have a certain variable. To test for the availability of
- <madmutt-doc:varref name="imap-mail-check"/>
- use:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-ifdef imap_mail_check 'set imap_mail_check = 300'</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- Provided for completeness is the test for menu names. To set
- <madmutt-doc:varref name="pager-index-lines"
- />
- only if the pager
- menu is available, use:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-ifdef pager 'set pager_index_lines = 10'</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- For completeness, too, the opposite of <literal>ifdef</literal> is
- provided:
- <literal>ifndef</literal> which only executes the command if the test
- fails. For
- example, the following two examples are equivalent:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-ifdef feature_ncurses 'source ~/.Madmutt/setup-ncurses'
-ifndef feature_ncurses 'source ~/.Madmutt/setup-slang'</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- ...and...
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-ifdef feature_slang 'source ~/.Madmutt/setup-slang'
-ifndef feature_slang 'source ~/.Madmutt/setup-ncurses'</madmutt-doc:lstconf>
-
- </para>
-
- <para>
-
- </para>
-
- <para>
-
- </para>
-
- </sect2>
-
- </sect1>
-
- <sect1 id="vars-obsolete">
- <title>Obsolete Variables</title>
-
- <para>
- In the process of ensuring and creating more consistency, many
- variables have been renamed and some of the old names were already
- removed. Please see <link linkend="sect-obsolete">sect-obsolete</link>
- for a complete list.
- </para>
-
- <para>
-
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- </chapter>
- <!--}}}-->
-
- <chapter id="advanced-usage"> <!--{{{-->
- <title>Advanced Usage</title>
-
- <sect1 id="advanced-regexp">
- <title>Regular Expressions</title>
-
- <para>
- All string patterns in Madmutt including those in more complex
- <link linkend="tab-patterns">patterns</link> must be specified
- using regular expressions (regexp) in the ``POSIX extended'' syntax
- (which
- is more or less the syntax used by egrep and GNU awk). For your
- convenience, we have included below a brief description of this syntax.
- </para>
-
- <para>
- The search is case sensitive if the pattern contains at least one upper
- case letter, and case insensitive otherwise. Note that ``\''
- must be quoted if used for a regular expression in an initialization
- command: ``\\''.
- </para>
-
- <para>
- A regular expression is a pattern that describes a set of strings.
- Regular expressions are constructed analogously to arithmetic
- expressions, by using various operators to combine smaller expressions.
- </para>
-
- <para>
- Note that the regular expression can be enclosed/delimited by either
- "
- or ' which is useful if the regular expression includes a white-space
- character. See <link linkend="configuration-syntax">muttrc-syntax</link>
- for more information on " and ' delimiter processing. To match a
- literal " or ' you must preface it with \ (backslash).
- </para>
-
- <para>
- The fundamental building blocks are the regular expressions that match
- a single character. Most characters, including all letters and digits,
- are regular expressions that match themselves. Any metacharacter with
- special meaning may be quoted by preceding it with a backslash.
- </para>
-
- <para>
- The period ``.'' matches any single character. The caret ``^''
- andthe dollar sign ``$'' are metacharacters that respectively
- match
- the empty string at the beginning and end of a line.
- </para>
-
- <para>
- A list of characters enclosed by ``]'' and ``]'' matches any
- single character in that list; if the first character of the list
- is a caret ``^'' then it matches any character <emphasis role="bold">
- not
- </emphasis>
- in the
- list. For example, the regular expression <emphasis role="bold">
- ]0123456789]
- </emphasis>
- matches any single digit. A range of ASCII characters may be specified
- by giving the first and last characters, separated by a hyphen
- ``-''. Most metacharacters lose their special meaning inside
- lists. To include a literal ``]'' place it first in the list.
- Similarly, to include a literal ``^'' place it anywhere but first.
- Finally, to include a literal hyphen ``-'' place it last.
- </para>
-
- <para>
- Certain named classes of characters are predefined. Character classes
- consist of ``[:'', a keyword denoting the class, and ``:]''.
- The following classes are defined by the POSIX standard:
- </para>
-
- <para>
- <variablelist>
-
- <varlistentry>
- <term>[:alnum:]</term>
- <listitem>
- <para>
- Alphanumeric characters.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>[:alpha:]</term>
- <listitem>
- <para>
- Alphabetic characters.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>[:blank:]</term>
- <listitem>
- <para>
- Space or tab characters.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>[:cntrl:]</term>
- <listitem>
- <para>
- Control characters.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>[:digit:]</term>
- <listitem>
- <para>
- Numeric characters.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>[:graph:]</term>
- <listitem>
- <para>
- Characters that are both printable and visible. (A space is
- printable,
- but not visible, while an ``a'' is both.)
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>[:lower:]</term>
- <listitem>
- <para>
- Lower-case alphabetic characters.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>[:print:]</term>
- <listitem>
- <para>
- Printable characters (characters that are not control
- characters.)
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>[:punct:]</term>
- <listitem>
- <para>
- Punctuation characters (characters that are not letter, digits,
- control
- characters, or space characters).
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>[:space:]</term>
- <listitem>
- <para>
- Space characters (such as space, tab and formfeed, to name a
- few).
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>[:upper:]</term>
- <listitem>
- <para>
- Upper-case alphabetic characters.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>[:xdigit:]</term>
- <listitem>
- <para>
- Characters that are hexadecimal digits.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
-
- <para>
- A character class is only valid in a regular expression inside the
- brackets of a character list. Note that the brackets in these
- class names are part of the symbolic names, and must be included
- in addition to the brackets delimiting the bracket list. For
- example, <emphasis role="bold">[[:digit:]]</emphasis> is equivalent to
- <emphasis role="bold">[0-9]</emphasis>.
- </para>
-
- <para>
- Two additional special sequences can appear in character lists. These
- apply to non-ASCII character sets, which can have single symbols
- (calledcollating elements) that are represented with more than one
- character,
- as well as several characters that are equivalent for collating or
- sorting purposes:
- </para>
-
- <para>
- <variablelist>
-
- <varlistentry>
- <term>Collating Symbols</term>
- <listitem>
- <para>
- A collating symbol is a multi-character collating element
- enclosed in
- ``[.'' and ``.]''. For example, if ``ch'' is a
- collating
- element, then <emphasis role="bold">
- [[.ch.]]
- </emphasis>
- is a regexp that matches
- this collating element, while <emphasis role="bold">
- [ch]
- </emphasis>
- is a regexp that
- matches either ``c'' or ``h''.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Equivalence Classes</term>
- <listitem>
- <para>
- An equivalence class is a locale-specific name for a list of
- characters that are equivalent. The name is enclosed in
- ``[=''
- and ``=]''. For example, the name ``e'' might be used to
- represent all of ``è'' ``é'' and ``e''. In this
- case,
- <emphasis role="bold">[[=e=]]</emphasis> is
- a regexp that matches any of
- ``è'', ``é'' and ``e''.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
-
- <para>
- A regular expression matching a single character may be followed by one
- of several repetition operators:
- </para>
-
- <para>
- <variablelist>
-
- <varlistentry>
- <term>?</term>
- <listitem>
- <para>
- The preceding item is optional and matched at most once.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>*</term>
- <listitem>
- <para>
- The preceding item will be matched zero or more times.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>+</term>
- <listitem>
- <para>
- The preceding item will be matched one or more times.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>{n}</term>
- <listitem>
- <para>
- The preceding item is matched exactly <emphasis>n</emphasis>
- times.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>{n,}</term>
- <listitem>
- <para>
- The preceding item is matched <emphasis>n</emphasis> or more
- times.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>{,m}</term>
- <listitem>
- <para>
- The preceding item is matched at most <emphasis>m</emphasis>
- times.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>{n,m}</term>
- <listitem>
- <para>
- The preceding item is matched at least <emphasis>n</emphasis>
- times, but no more than
- <emphasis>m</emphasis> times.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
-
- <para>
- Two regular expressions may be concatenated; the resulting regular
- expression matches any string formed by concatenating two substrings
- that respectively match the concatenated subexpressions.
- </para>
-
- <para>
- Two regular expressions may be joined by the infix operator
- ``|'';
- the resulting regular expression matches any string matching either
- subexpression.
- </para>
-
- <para>
- Repetition takes precedence over concatenation, which in turn takes
- precedence over alternation. A whole subexpression may be enclosed in
- parentheses to override these precedence rules.
- </para>
-
- <para>
- <emphasis role="bold">Note:</emphasis> If you compile Madmutt with the
- GNU <emphasis>rx</emphasis> package, the
- following operators may also be used in regular expressions:
- </para>
-
- <para>
- <variablelist>
-
- <varlistentry>
- <term>\\y</term>
- <listitem>
- <para>
- Matches the empty string at either the beginning or the end of
- a word.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>\\B</term>
- <listitem>
- <para>
- Matches the empty string within a word.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>\\<</term>
- <listitem>
- <para>
- Matches the empty string at the beginning of a word.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>\\></term>
- <listitem>
- <para>
- Matches the empty string at the end of a word.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>\\w</term>
- <listitem>
- <para>
- Matches any word-constituent character (letter, digit, or
- underscore).
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>\\W</term>
- <listitem>
- <para>
- Matches any character that is not word-constituent.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>\\`</term>
- <listitem>
- <para>
- Matches the empty string at the beginning of a buffer (string).
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>\\'</term>
- <listitem>
- <para>
- Matches the empty string at the end of a buffer.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
-
- <para>
- Please note however that these operators are not defined by POSIX, so
- they may or may not be available in stock libraries on various systems.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="advanced-patterns">
- <title>Patterns</title>
-
- <para>
- Madmutt's pattern language provides a simple yet effective way to
- set up rules to match messages, e.g. for operations like tagging and
- scoring. A pattern consists of one or more sub-pattern, which can be
- logically grouped, ORed, and negated. For a complete listing of
- these patterns, please refer to table <link linkend="tab-patterns">patterns</link> in the Reference chapter.
- </para>
-
- <para>
- It must be noted that in this table, <literal>EXPR</literal> is
- a regular expression. For ranges, the forms
- <literal><[MAX]</literal>, <literal>>>[MIN]</literal>,
- <literal> [MIN]-</literal> and <literal>-[MAX]</literal> are
- also possible.
- </para>
-
- <sect2 id="patterns-complex">
- <title>Complex Patterns</title>
-
- <para>
- It is possible to combine several sub-patterns to a more complex
- pattern. The most simple possibility is to logically AND several
- patterns by stringing them together:
- </para>
-
- <para>
-
- <screen>
-<madmutt-doc:pattern name="s"/> 'SPAM' <madmutt-doc:pattern name="U"/></screen>
-
- </para>
-
- <para>
- The pattern above matches all messages that contain ``SPAM'' in
- the subject and are unread.
- </para>
-
- <para>
- To logical OR patterns, simply use the <literal>|</literal>
- operator. This one
- especially useful when using local groups:
- </para>
-
- <para>
-
- <screen>
-<madmutt-doc:pattern name="f"/> ("nion@madmutt\.org"|"ak@madmutt\.org"|"pdmef@madmutt\.org")
-(<madmutt-doc:pattern name="b"/> Madmutt|<madmutt-doc:pattern name="s"/> Madmutt)
-!<madmutt-doc:pattern name="x"/> '@synflood\.at'</screen>
-
- </para>
-
- <para>
- The first pattern matches all messages that were sent by one of
- the Madmutt maintainers, while the seconds pattern matches all
- messages that contain ``Madmutt'' in the message body or ``Madmutt''
- in the subject. The third pattern matches all messages that do not
- contain ``@synflood\.at'' in the <literal>References:</literal>
- header, i.e.
- messages that are not an (indirect) reply to one of my messages. A
- pattern can be logicall negated using the <literal>!</literal>
- operator.
- </para>
-
- </sect2>
-
- <sect2 sect="patterns-dates">
- <title>Patterns and Dates</title>
-
- <para>
- When using dates in patterns, the dates must be specified in a
- special format, i.e. <literal>DD/MM/YYYY</literal>. If you don't
- specify
- month or year, they default to the current month or year. When using
- date ranges, and you specify only the minimum or the maximum, the
- specified date will be excluded, e.g. <literal>01/06/2005-</literal>
- matches
- against all messages <emphasis>after</emphasis> Juni 1st, 2005.
- </para>
-
- <para>
- It is also possible to use so-called ``error margins'' when
- specifying date ranges. You simply specify a date, and then the
- error margin. This margin needs to contain the information whether
- it goes ``forth'' or ``back'' in time, by using <literal>+</literal>
- and <literal>-</literal>.
- Then follows a number and a unit, i.e. <literal>y</literal> for
- years, <literal>m</literal> for
- months, <literal>w</literal> for weeks and <literal>d</literal> for
- days. If you use the special
- <literal>*</literal> sign, it means that the error margin goes to
- both``directions'' in time.
- </para>
-
- <para>
-
- <screen>
-<madmutt-doc:pattern name="d"/> 01/01/2005+1y
-<madmutt-doc:pattern name="d"/> 18/10/2004-2w
-<madmutt-doc:pattern name="d"/> 28/12/2004*1d</screen>
-
- </para>
-
- <para>
- The first pattern matches all dates between January 1st, 2005 and
- January 1st 2006. The second pattern matches all dates between
- October 18th, 2004 and October 4th 2004 (2 weeks before 18/10/2004),
- while the third pattern matches all dates 1 day around December
- 28th, 2004 (i.e. Dec 27th, 28th and 29th).
- </para>
-
- <para>
- Relative dates are also very important, as they make it possible
- to specify date ranges between a fixed number of units and the
- current date. How this works can be seen in the following example:
- </para>
-
- <para>
-
- <screen>
-<madmutt-doc:pattern name="d"/> >2w # messages older than two weeks
-<madmutt-doc:pattern name="d"/> <3d # messages newer than 3 days
-<madmutt-doc:pattern name="d"/> =1m # messages that are exactly one month old</screen>
-
- </para>
-
- <para>
-
- </para>
-
- </sect2>
-
- </sect1>
-
- <sect1 id="formatstrings">
- <title>Format Strings</title>
-
- <sect2 id="formatstrings-intro">
- <title>Introduction</title>
-
- <para>
- The so called <emphasis>Format Strings</emphasis> offer great
- flexibility when
- configuring Madmutt. In short, they describe what items to print
- out how in menus and status messages.
- </para>
-
- <para>
- Basically, they work as this: for different menus and bars,
- there's a variable specifying the layout. For every item
- available, there is a so called <emphasis>expando</emphasis>.
- </para>
-
- <para>
- For example, when running Madmutt on different machines or
- different versions for testing purposes, it may be interesting to
- have the following information always printed on screen when one
- is in the index:
- </para>
-
- <para>
-
- <itemizedlist>
- <listitem>
-
- <para>
- the current hostname
-
- </para>
- </listitem>
- <listitem>
-
- <para>
- the current Madmutt version number
-
- </para>
- </listitem>
-
- </itemizedlist>
-
- </para>
-
- <para>
- The setting for the status bar of the index is controlled via the
- <madmutt-doc:varref name="status-format"/>
- variable. For the hostname and version string, there's an expando
- for <literal>$status_format</literal>: <literal>
- %h
- </literal>
- expands to the
- hostname and <literal>%v</literal> to the version string. When
- just configuring:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-set status_format = "%v on %h: ..."</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- Madmutt will replace the sequence <literal>%v</literal> with
- the version string
- and <literal>%h</literal> with the host's name. When you are,
- for example, running
- Madmutt version <literal>1.5.9i</literal> on host <literal>mailhost</literal>, you'll see the
- following when you're in the index:
- </para>
-
- <para>
-
- <screen>
-Madmutt 1.5.9i on mailhost: ...</screen>
-
- </para>
-
- <para>
- In the index, there're more useful information one could want to
- see:
- </para>
-
- <para>
-
- <itemizedlist>
- <listitem>
-
- <para>
- which mailbox is open
-
- </para>
- </listitem>
- <listitem>
-
- <para>
- how man new, flagged or postponed messages
-
- </para>
- </listitem>
- <listitem>
-
- <para>
- ...
-
- </para>
- </listitem>
-
- </itemizedlist>
-
- </para>
-
- <para>
- To include the mailbox' name is as easy as:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-set status_format = "%v on %h: %B: ...</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- When the currently opened mailbox is <literal>Inbox</literal>, this
- will be expanded
- to:
- </para>
-
- <para>
-
- <screen>
-Madmutt 1.5.9i on mailhost: Inbox: ...</screen>
-
- </para>
-
- <para>
- For the number of certain types of messages, one more feature of the
- format
- strings is extremely useful. If there aren't messages of a certain
- type, it
- may not be desired to print just that there aren't any but instead
- only
- print something if there are any.
- </para>
-
- <para>
-
- </para>
-
- </sect2>
-
- <sect2 id="formatstrings-conditional">
- <title>Conditional Expansion</title>
-
- <para>
- To only print the number of messages if there are new messages in
- the current mailbox, further extend
- <literal>$status_format</literal> to:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-set status_format = "%v on %h: %B %?n?%n new? ...</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- This feature is called <emphasis>nonzero-printing</emphasis> and
- works as this:
- some expandos may be optionally printed nonzero, i.e. a portion
- of the format string is only evaluated if the value of the expando
- is different from zero. The basic syntax is:
- </para>
-
- <para>
-
- <screen>
-%?<item>?<string if nonzero>?</screen>
-
- </para>
-
- <para>
- which tells Madmutt to only look at <literal><string if
- nonzero>
- </literal>
- if the value of the <literal>%<item%gt;</literal>
- expando is different from zero. In our example, we used <literal>n</literal> as
- the expando to check for and <literal>%n new</literal> as the
- optional nonzero
- string.
- </para>
-
- <para>
- But this is not all: this feature only offers one alternative:
- ``print something if not zero.'' Madmutt does, as you might guess,
- also provide a logically complete version: ``if zero, print
- something and else print something else.'' This is achieved by the
- following syntax for those expandos which may be printed nonzero:
- </para>
-
- <para>
-
- <screen>
-%?<item>?<string if nonzero>&<string if zero>?</screen>
-
- </para>
-
- <para>
- Using this we can make Madmutt to do the following:
- </para>
-
- <para>
-
- <itemizedlist>
- <listitem>
-
- <para>
- make it print ``<emphasis>n</emphasis> new messages'' whereby <emphasis>
- n
- </emphasis>
- is the
- count but only if there new ones
-
- </para>
- </listitem>
- <listitem>
-
- <para>
- and make it print ``no new messages'' if there aren't any
-
- </para>
- </listitem>
-
- </itemizedlist>
-
- </para>
-
- <para>
- The corresponding configuration is:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-set status_format = "%v on %h: %B: %?n?%n new messages&no new messages? ...</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- This doubles the use of the ``new messages'' string because it'll get
- always printed. Thus, it can be shortened to:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-set status_format = "%v on %h: %B: %?n?%n&no? new messages ...</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- As you might see from this rather simple example, one can create
- very complex but fancy status messages. Please see the reference
- chapter for expandos and those which may be printed nonzero.
- </para>
-
- <para>
-
- </para>
-
- </sect2>
-
- <sect2 id="formatstrings-padding">
- <title>Modifications and Padding</title>
-
- <para>
- Besides the information given so far, there're even more features of
- format strings:
- </para>
-
- <para>
-
- <itemizedlist>
- <listitem>
-
- <para>
- When specifying <literal>%_<item></literal>
- instead of
- just <literal>%<item></literal>, Madmutt will
- convert all
- characters in the expansion of <literal><item></literal>
- to
- lowercase.
-
- </para>
- </listitem>
- <listitem>
-
- <para>
- When specifying <literal>%:<item></literal>
- instead of just
- <literal>%<item></literal>, Madmutt will convert
- all dots in the
- expansion of <literal><item></literal> to underscores
- (<literal>_</literal>).
-
- </para>
- </listitem>
-
- </itemizedlist>
-
- </para>
-
- <para>
- Also, there's a feature called <emphasis>Padding</emphasis> supplied
- by the
- following two expandos: <literal>%|X</literal> and <literal>
- %>X
- </literal>
- .
- </para>
-
- <para>
- <variablelist>
-
- <varlistentry>
- <term>
- <literal>%|X</literal>
- </term>
- <listitem>
- <para>
- When this occurs, Madmutt will fill the
- rest of the line with the character <literal>X</literal>. In
- our example,
- filling the rest of the line with dashes is done by setting:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-set status_format = "%v on %h: %B: %?n?%n&no? new messages %|-"</madmutt-doc:lstconf>
-
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>
- <literal>%>X</literal>
- </term>
- <listitem>
- <para>
- Since the previous expando stops at
- the end of line, there must be a way to fill the gap between
- two items via the <literal>%>X</literal> expando:
- it puts as many
- characters <literal>X</literal> in between two items so that
- the rest of
- the line will be right-justified. For example, to not put the
- version string and hostname of our example on the left but on
- the right and fill the gap with spaces, one might use (note
- the space after <literal>%></literal>):
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-set status_format = "%B: %?n?%n&no? new messages %> (%v on %h)"</madmutt-doc:lstconf>
-
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
-
- <para>
-
- </para>
-
- <para>
-
- </para>
-
- </sect2>
-
- </sect1>
-
- <sect1 id="using-tags">
- <title>Using Tags</title>
-
- <para>
- Sometimes it is desirable to perform an operation on a group of
- messages all at once rather than one at a time. An example might be
- to save messages to a mailing list to a separate folder, or to
- delete all messages with a given subject. To tag all messages
- matching a pattern, use the tag-pattern function, which is bound to
- ``shift-T'' by default. Or you can select individual messages by
- hand using the ``tag-message'' function, which is bound to ``t'' by
- default. See <link linkend="tab-patterns">patterns</link> for Madmutt's
- pattern
- matching syntax.
- </para>
-
- <para>
- Once you have tagged the desired messages, you can use the
- ``tag-prefix'' operator, which is the ``;'' (semicolon) key by default.
- When the ``tag-prefix'' operator is used, the <emphasis role="bold">
- next
- </emphasis>
- operation will
- be applied to all tagged messages if that operation can be used in that
- manner. If the <madmutt-doc:varref name="auto-tag"/>
- variable is set, the next operation applies to the tagged messages
- automatically, without requiring the ``tag-prefix''.
- </para>
-
- <para>
- In <madmutt-doc:cmdref name="macro"/> or <madmutt-doc:cmdref name="push"/> commands,
- you can use the ``tag-prefix-cond'' operator. If there are no tagged
- messages, mutt will "eat" the rest of the macro to abort it's
- execution.Madmutt will stop "eating" the macro when it encounters the
- ``end-cond''
- operator; after this operator the rest of the macro will be executed
- asnormal.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="hooks">
- <title>Using Hooks</title>
-
- <para>
- A <emphasis>hook</emphasis> is a concept borrowed from the EMACS editor
- which allows you to
- execute arbitrary commands before performing some operation. For
- example,
- you may wish to tailor your configuration based upon which mailbox you
- are
- reading, or to whom you are sending mail. In the Madmutt world, a <emphasis>
- hook
- </emphasis>
- consists of a <link linkend="advanced-regexp">regexp</link> or
- <link linkend="tab-patterns">patterns</link> along with a
- configuration option/command. See
-
- <itemizedlist>
- <listitem>
-
- <para>
- <madmutt-doc:hook name="folder"/>
- </para>
- </listitem>
- <listitem>
-
- <para>
- <madmutt-doc:hook name="send"/>
- </para>
- </listitem>
- <listitem>
-
- <para>
- <madmutt-doc:hook name="message"/>
- </para>
- </listitem>
- <listitem>
-
- <para>
- <madmutt-doc:hook name="save"/>
- </para>
- </listitem>
- <listitem>
-
- <para>
- <madmutt-doc:hook name="mbox"/>
- </para>
- </listitem>
- <listitem>
-
- <para>
- <madmutt-doc:hook name="fcc"/>
- </para>
- </listitem>
- <listitem>
-
- <para>
- <madmutt-doc:hook name="fcc-save"/>
- </para>
- </listitem>
-
- </itemizedlist>
-
- for specific details on each type of <emphasis>hook</emphasis>
- available.
- </para>
-
- <para>
- <emphasis role="bold">Note:</emphasis> if a hook changes configuration
- settings, these changes remain
- effective until the end of the current mutt session. As this is
- generally
- not desired, a default hook needs to be added before all other hooks to
- restore configuration defaults. Here is an example with <madmutt-doc:hook name="send"/> and
- the
- my_hdr directive:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-send-hook . 'unmy_hdr From:'
-send-hook '~C ^b@b\.b$' my-hdr from: c@c.c</madmutt-doc:lstconf>
-
- </para>
-
- <sect2 id="pattern-hook">
- <title>Message Matching in Hooks</title>
-
- <para>
- Hooks that act upon messages (<literal><madmutt-doc:hook name="send"/>, <madmutt-doc:hook name="save"/>,
- <madmutt-doc:hook name="fcc"/>,<madmutt-doc:hook name="message"/>
- </literal>
- )are evaluated in a slightly different manner. For the other
- types of hooks, a <link linkend="advanced-regexp">regexp</link> is
- sufficient. But in dealing with messages a finer grain of control is
- needed for matching since for different purposes you want to match
- different criteria.
- </para>
-
- <para>
- Madmutt allows the use of the <link linkend="tab-patterns">patterns</link>
- language for matching messages in hook commands. This works in
- exactly the same way as it would when <emphasis>limiting</emphasis>
- or<emphasis>searching</emphasis> the mailbox, except that you are
- restricted to those
- operators which match information mutt extracts from the header of
- the message (i.e. from, to, cc, date, subject, etc.).
- </para>
-
- <para>
- For example, if you wanted to set your return address based upon
- sending
- mail to a specific address, you could do something like:
-
- <madmutt-doc:lstconf>
-send-hook '~t ^me@cs\.hmc\.edu$' 'my-hdr From: Madmutt User <user@host>'</madmutt-doc:lstconf>
-
- which would execute the given command when sending mail to
- <emphasis>me@cs.hmc.edu</emphasis>.
- </para>
-
- <para>
- However, it is not required that you write the pattern to match using
- the
- full searching language. You can still specify a simple <emphasis>
- regular
- expression
- </emphasis>
- like the other hooks, in which case Madmutt will translate your
- pattern into the full language, using the translation specified by
- the
- <madmutt-doc:hook name="default"/> variable. The
- pattern is translated at the time the hook is declared, so the value
- of
- <madmutt-doc:hook name="default"/> that is in effect
- at that time will be used.
- </para>
-
- <para>
-
- </para>
-
- </sect2>
-
- </sect1>
-
- <sect1 id="sidebar">
- <title>Using the sidebar</title>
-
- <para>
- The sidebar, a feature specific to Madmutt, allows you to use a mailbox
- listing
- which looks very similar to the ones you probably know from GUI mail
- clients.
- The sidebar lists all specified mailboxes, shows the number in each
- and highlights the ones with new email
- Use the following configuration commands:
-
- <madmutt-doc:lstconf>
-set sidebar_visible="yes"
-set sidebar_width=25</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- If you want to specify the mailboxes you can do so with:
-
- <madmutt-doc:lstconf>
-set mbox='=INBOX'
-mailboxes INBOX \
-MBOX1 \
-MBOX2 \
-...</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- You can also specify the colors for mailboxes with new mails by using:
-
- <madmutt-doc:lstconf>
-color sidebar_new red black
-color sidebar white black</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- Reasonable key bindings look e.g. like this:
-
- <madmutt-doc:lstconf>
-bind index \Cp sidebar-prev
-bind index \Cn sidebar-next
-bind index \Cb sidebar-open
-bind pager \Cp sidebar-prev
-bind pager \Cn sidebar-next
-bind pager \Cb sidebar-open
-
-macro index B ':toggle sidebar_visible^M'
-macro pager B ':toggle sidebar_visible^M'</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- You can then go up and down by pressing Ctrl-P and Ctrl-N, and
- switch on and off the sidebar simply by pressing 'B'.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="query">
- <title>External Address Queries</title>
-
- <para>
- Madmutt supports connecting to external directory databases such as
- LDAP,
- ph/qi, bbdb, or NIS through a wrapper script which connects to mutt
- using a simple interface. Using the
- <madmutt-doc:varref name="query-command"/>
- variable, you specify the wrapper
- command to use. For example:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-set query_command = "mutt_ldap_query.pl '%s'"</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- The wrapper script should accept the query on the command-line. It
- should return a one line message, then each matching response on a
- single line, each line containing a tab separated address then name
- thensome other optional information. On error, or if there are no
- matching
- addresses, return a non-zero exit code and a one line error message.
- </para>
-
- <para>
- An example multiple response output:
-
- <screen>
-Searching database ... 20 entries ... 3 matching:
-me@cs.hmc.edu Michael Elkins mutt dude
-blong@fiction.net Brandon Long mutt and more
-roessler@guug.de Thomas Roessler mutt pgp</screen>
-
- </para>
-
- <para>
- There are two mechanisms for accessing the query function of mutt. One
- is to do a query from the index menu using the query function (default:
- Q).
- This will prompt for a query, then bring up the query menu which will
- list the matching responses. From the query menu, you can select
- addresses to create aliases, or to mail. You can tag multiple
- addressesto mail, start a new query, or have a new query appended to
- the current
- responses.
- </para>
-
- <para>
- The other mechanism for accessing the query function is for address
- completion, similar to the alias completion. In any prompt for address
- entry, you can use the complete-query function (default: ^T) to
- run a
- query based on the current address you have typed. Like aliases, mutt
- will look for what you have typed back to the last space or comma. If
- there is a single response for that query, mutt will expand the address
- in place. If there are multiple responses, mutt will activate the
- querymenu. At the query menu, you can select one or more addresses to
- be
- added to the prompt.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="mailbox-formats">
- <title>Mailbox Formats</title>
-
- <para>
- Madmutt supports reading and writing of four different mailbox formats:
- mbox, MMDF, MH and Maildir. The mailbox type is autodetected, so there
- is no need to use a flag for different mailbox types. When creating
- newmailboxes, Madmutt uses the default specified with the
- <madmutt-doc:varref name="mbox-type"/>
- variable.
- </para>
-
- <para>
- <emphasis role="bold">mbox</emphasis>. This is the most widely used
- mailbox format for UNIX. All
- messages are stored in a single file. Each message has a line of the
- form:
- </para>
-
- <para>
-
- <madmutt-doc:lstmail>
-From me@cs.hmc.edu Fri, 11 Apr 1997 11:44:56 PST</madmutt-doc:lstmail>
-
- </para>
-
- <para>
- to denote the start of a new message (this is often referred to as the
- ``From_'' line).
- </para>
-
- <para>
- <emphasis role="bold">MMDF</emphasis>. This is a variant of the <emphasis>
- mbox
- </emphasis>
- format. Each message is
- surrounded by lines containing ``^A^A^A^A'' (four
- control-A's).
- </para>
-
- <para>
- <emphasis role="bold">MH</emphasis>. A radical departure from <emphasis>
- mbox
- </emphasis>
- and <emphasis>MMDF</emphasis>, a mailbox
- consists of a directory and each message is stored in a separate file.
- The filename indicates the message number (however, this is may not
- correspond to the message number Madmutt displays). Deleted messages
- arerenamed with a comma (,) prepended to the filename. <emphasis role="bold">
- Note:
- </emphasis>
- Mutt
- detects this type of mailbox by looking for either <literal>
- .mh_sequences
- </literal>
- or <literal>.xmhcache</literal> (needed to distinguish normal
- directories from MH
- mailboxes).
- </para>
-
- <para>
- <emphasis role="bold">Maildir</emphasis>. The newest of the mailbox
- formats, used by the Qmail MTA (a
- replacement for sendmail). Similar to <emphasis>MH</emphasis>, except
- that it adds three
- subdirectories of the mailbox: <emphasis>tmp</emphasis>, <emphasis>new</emphasis> and <emphasis>
- cur
- </emphasis>
- .Filenames
- for the messages are chosen in such a way they are unique, even when
- twoprograms are writing the mailbox over NFS, which means that no file
- locking
- is needed.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="shortcuts">
- <title>Mailbox Shortcuts</title>
-
- <para>
- There are a number of built in shortcuts which refer to specific
- mailboxes.
- These shortcuts can be used anywhere you are prompted for a file or
- mailbox
- path.
- </para>
-
- <para>
-
- <itemizedlist>
- <listitem>
-
- <para>
- ! -- refers to your <madmutt-doc:varref name="spoolfile"/>
- (incoming) mailbox
- </para>
- </listitem>
- <listitem>
-
- <para>
- > -- refers to your <madmutt-doc:varref name="mbox"/> file
- </para>
- </listitem>
- <listitem>
-
- <para>
- < -- refers to your <madmutt-doc:varref name="record"/> file
- </para>
- </listitem>
- <listitem>
-
- <para>
- ^ -- refers to the current mailbox
- </para>
- </listitem>
- <listitem>
-
- <para>
- - or !! -- refers to the file you've last visited
- </para>
- </listitem>
- <listitem>
-
- <para>
- ~ -- refers to your home directory
- </para>
- </listitem>
- <listitem>
-
- <para>
- = or + -- refers to your <madmutt-doc:varref name="folder"/>
- directory
- </para>
- </listitem>
- <listitem>
-
- <para>
- @<emphasis>alias</emphasis> -- refers to the <madmutt-doc:hook name="save"/>
- as determined by the address of the alias
- </para>
- </listitem>
-
- </itemizedlist>
-
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="using-lists">
- <title>Handling Mailing Lists</title>
-
- <para>
- Madmutt has a few configuration options that make dealing with large
- amounts of mail easier. The first thing you must do is to let Mutt
- know what addresses you consider to be mailing lists (technically
- this does not have to be a mailing list, but that is what it is most
- often used for), and what lists you are subscribed to. This is
- accomplished through the use of the <madmutt-doc:cmdref name="lists"/>
- commands in your muttrc.
- </para>
-
- <para>
- Now that Madmutt knows what your mailing lists are, it can do several
- things, the first of which is the ability to show the name of a list
- through which you received a message (i.e., of a subscribed list) in
- the <emphasis>index</emphasis> menu display. This is useful to
- distinguish between
- personal and list mail in the same mailbox. In the
- <madmutt-doc:varref name="index-format"/>
- variable, the escape ``%L''
- will return the string ``To <list>'' when ``list'' appears in the
- ``To'' field, and ``Cc <list>'' when it appears in the ``Cc''
- field (otherwise it returns the name of the author).
- </para>
-
- <para>
- Often times the ``To'' and ``Cc'' fields in mailing list messages
- tend to get quite large. Most people do not bother to remove the
- author of the message they are reply to from the list, resulting in
- two or more copies being sent to that person. The ``list-reply''
- function, which by default is bound to ``L'' in the <emphasis>index</emphasis> menu
- and <emphasis>pager</emphasis>, helps reduce the clutter by only
- replying to the
- known mailing list addresses instead of all recipients (except as
- specified by <literal>Mail-Followup-To</literal>, see below).
- </para>
-
- <para>
- Madmutt also supports the <literal>Mail-Followup-To</literal> header.
- When you send
- a message to a list of recipients which includes one or several
- subscribed mailing lists, and if the <madmutt-doc:varref name="followup-to"/>
- option is set, mutt will generate
- a Mail-Followup-To header which contains all the recipients to whom
- you send this message, but not your address. This indicates that
- group-replies or list-replies (also known as ``followups'') to this
- message should only be sent to the original recipients of the
- message, and not separately to you - you'll receive your copy through
- one of the mailing lists you are subscribed to.
- </para>
-
- <para>
- Conversely, when group-replying or list-replying to a message which
- has a <literal>Mail-Followup-To</literal> header, mutt will respect
- this header if
- the <madmutt-doc:varref name="honor-followup-to"/>
- configuration
- variable is set. Using list-reply will in this case also make sure
- that the reply goes to the mailing list, even if it's not specified
- in the list of recipients in the <literal>Mail-Followup-To</literal>.
- </para>
-
- <para>
- Note that, when header editing is enabled, you can create a
- <literal>Mail-Followup-To</literal> header manually. Madmutt will only
- auto-generate
- this header if it doesn't exist when you send the message.
- </para>
-
- <para>
- The other method some mailing list admins use is to generate a
- ``Reply-To'' field which points back to the mailing list address rather
- than the author of the message. This can create problems when trying
- to reply directly to the author in private, since most mail clients
- will automatically reply to the address given in the ``Reply-To''
- field. Madmutt uses the <madmutt-doc:varref name="reply-to"/>
- variable to help decide which address to use. If set to <emphasis>
- ask-yes
- </emphasis>
- or
- <emphasis>ask-no</emphasis>, you will be
- prompted as to whether or not you would like to use the address given
- inthe ``Reply-To'' field, or reply directly to the address given in the
- ``From'' field. When set to <emphasis>yes</emphasis>, the ``Reply-To''
- field will be used when
- present.
- </para>
-
- <para>
- The ``X-Label:'' header field can be used to further identify mailing
- lists or list subject matter (or just to annotate messages
- individually). The <madmutt-doc:varref name="index-format"/>
- variable's ``%y'' and
- ``%Y'' escapes can be used to expand ``X-Label:'' fields in the
- index, and Madmutt's pattern-matcher can match regular expressions to
- ``X-Label:'' fields with the ``<madmutt-doc:pattern name="y"/>'' selector. ``X-Label:'' is
- not a
- standard message header field, but it can easily be inserted by
- procmailand other mail filtering agents.
- </para>
-
- <para>
- Lastly, Madmutt has the ability to <link linkend="sort">sort</link> the
- mailbox into
- <link linkend="threads">threads</link>. A thread is a group of
- messages which all relate to the same
- subject. This is usually organized into a tree-like structure where a
- message and all of its replies are represented graphically. If you've
- ever
- used a threaded news client, this is the same concept. It makes
- dealingwith large volume mailing lists easier because you can easily
- delete
- uninteresting threads and quickly find topics of value.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="editing-threads">
- <title>Editing threads</title>
-
- <para>
- Madmutt has the ability to dynamically restructure threads that are
- broken
- either by misconfigured software or bad behavior from some
- correspondents. This allows to clean your mailboxes formats) from these
- annoyances which make it hard to follow a discussion.
- </para>
-
- <sect2 id="editing-threads-link">
- <title>Linking threads</title>
-
- <para>
- Some mailers tend to "forget" to correctly set the "In-Reply-To:" and
- "References:" headers when replying to a message. This results in
- broken
- discussions because Madmutt has not enough information to guess the
- correct
- threading.
- You can fix this by tagging the reply, then moving to the parent
- message
- and using the ``link-threads'' function (bound to & by default).
- The
- reply will then be connected to this "parent" message.
- </para>
-
- <para>
- You can also connect multiple children at once, tagging them and
- using the
- tag-prefix command (';') or the auto_tag option.
- </para>
-
- </sect2>
-
- <sect2 id="editing-threads-break">
- <title>Breaking threads</title>
-
- <para>
- On mailing lists, some people are in the bad habit of starting a new
- discussion by hitting "reply" to any message from the list and
- changing
- the subject to a totally unrelated one.
- You can fix such threads by using the ``break-thread'' function
- (boundby default to #), which will turn the subthread starting
- from the
- current message into a whole different thread.
- </para>
-
- <para>
-
- </para>
-
- </sect2>
-
- </sect1>
-
- <sect1 id="dsn">
- <title>Delivery Status Notification (DSN) Support</title>
-
- <para>
- <madmutt-doc:rfc num="1894"/> defines a set of MIME content types for relaying information
- about the status of electronic mail messages. These can be thought of
- as
- ``return receipts.''
- </para>
-
- <para>
- Users can make use of it in one of the following two ways:
- </para>
-
- <para>
-
- <itemizedlist>
- <listitem>
-
- <para>
- Berkeley sendmail 8.8.x currently has some command line options
- in which the mail client can make requests as to what type of
- status
- messages should be returned.
- </para>
- </listitem>
- <listitem>
-
- <para>
- The SMTP support via libESMTP supports it, too.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </para>
-
- <para>
- To support this, there are two variables:
- </para>
-
- <para>
-
- <itemizedlist>
- <listitem>
-
- <para>
- <madmutt-doc:varref name="dsn-notify"/> is used
- to request receipts for different results (such as failed
- message,message delivered, etc.).
-
- </para>
- </listitem>
- <listitem>
-
- <para>
- <madmutt-doc:varref name="dsn-return"/> requests
- how much of your message should be returned with the receipt
- (headers or full message).
-
- </para>
- </listitem>
-
- </itemizedlist>
-
- </para>
-
- <para>
- Please see the reference chapter for possible values.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="pop3">
- <title>POP3 Support (OPTIONAL)</title>
-
- <para>
- If Madmutt was compiled with POP3 support (by running the <emphasis>
- configure
- </emphasis>
- script with the <emphasis>--enable-pop</emphasis> flag), it has the
- ability to work
- with mailboxes located on a remote POP3 server and fetch mail for local
- browsing.
- </para>
-
- <para>
- You can access the remote POP3 mailbox by selecting the folder
- <literal>pop://popserver/</literal>.
- </para>
-
- <para>
- You can select an alternative port by specifying it with the server,
- i.e.:
- <literal>pop://popserver:port/</literal>.
- </para>
-
- <para>
- You can also specify different username for each folder, i.e.:
- <literal>pop://username@popserver[:port]/</literal>.
- </para>
-
- <para>
- Polling for new mail is more expensive over POP3 than locally. For this
- reason the frequency at which Madmutt will check for mail remotely can
- be
- controlled by the
- <madmutt-doc:varref name="pop-mail-check"/>
- variable, which defaults to every 60 seconds.
- </para>
-
- <para>
- If Madmutt was compiled with SSL support (by running the <emphasis>
- configure
- </emphasis>
- script with the <emphasis>--with-ssl</emphasis> flag), connections to
- POP3 servers
- can be encrypted. This naturally requires that the server supports
- SSL encrypted connections. To access a folder with POP3/SSL, you should
- use pops: prefix, ie:
- <literal>pops://[username@]popserver[:port]/</literal>.
- </para>
-
- <para>
- Another way to access your POP3 mail is the <emphasis>fetch-mail</emphasis> function
- (default: G). It allows to connect to <link
- linkend="pop-host">pop-host</link>
- ,fetch all your new mail and place it in the
- local <madmutt-doc:varref name="spoolfile"/>. After this
- point, Madmutt runs exactly as if the mail had always been local.
- </para>
-
- <para>
- <emphasis role="bold">Note:</emphasis> If you only need to fetch all
- messages to local mailbox
- you should consider using a specialized program, such as
- <madmutt-doc:man name="fetchmail"/>.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="imap">
- <title>IMAP Support (OPTIONAL)</title>
-
- <para>
- If Madmutt was compiled with IMAP support (by running the
- <emphasis>configure</emphasis> script with the
- <emphasis>--enable-imap</emphasis> flag), it has the
- ability to work with folders located on a remote IMAP server.
- </para>
-
- <para>
- You can access the remote inbox by selecting the folder via its
- URL:
- </para>
-
- <para>
- <screen>
-imap://imapserver/INBOX</screen>
- </para>
-
- <para>
- where <literal>imapserver</literal> is the name of the IMAP
- server and <literal>INBOX</literal> is the special name for your
- spool mailbox on the IMAP server. If you want to access another
- mail folder at the IMAP server, you should use
- </para>
-
- <para>
- <screen>
-imap://imapserver/path/to/folder</screen>
- </para>
-
- <para>
- where <literal>path/to/folder</literal> is the path
- of the folder you want to access. You can select an alternative
- port by specifying it with the server, i.e.:
- </para>
-
- <para>
- <screen>
-imap://imapserver:port/INBOX</screen>
- </para>
-
- <para>
- You can also specify different username for each folder by
- prenpending your username and an @ symbol to the server's name.
- </para>
-
- <para>
- If Madmutt was compiled with SSL support (by running the <emphasis>
- configure
- </emphasis>
- script with the <emphasis>--with-ssl</emphasis> flag), connections to
- IMAP servers
- can be encrypted. This naturally requires that the server supports
- SSL encrypted connections. To access a folder with IMAP/SSL, you only
- need to substitute the initial <literal>imap://</literal> by
- <literal>imaps://</literal> in the above examples.
- </para>
-
- <para>
- Note that not all servers use / as the hierarchy separator. Madmutt
- should
- correctly notice which separator is being used by the server and
- convertpaths accordingly.
- </para>
-
- <para>
- 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
- <emphasis>toggle-subscribed</emphasis> command. See also the
- <madmutt-doc:varref name="imap-list-subscribed"/>
- variable.
- </para>
-
- <para>
- Polling for new mail on an IMAP server can cause noticeable delays. So,
- you'll
- want to carefully tune the
- <madmutt-doc:varref name="imap-mail-check"/>
- and
- <madmutt-doc:varref name="timeout"/>
- variables.
- </para>
-
- <para>
- Note that if you are using mbox as the mail store on UW servers prior
- tov12.250, the server has been reported to disconnect a client if
- another client
- selects the same folder.
- </para>
-
- <sect2 id="imap-browser">
- <title>The Folder Browser</title>
-
- <para>
- 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:
-
- <itemizedlist>
- <listitem>
-
- <para>
- Instead of file permissions, mutt displays the string "IMAP",
- possibly followed by the symbol "+", indicating
- that the entry contains both messages and subfolders. On
- Cyrus-like servers folders will often contain both messages and
- subfolders.
- </para>
- </listitem>
- <listitem>
-
- <para>
- For the case where an entry can contain both messages and
- subfolders, the selection key (bound to <literal>enter</literal> by default)
- will choose to descend into the subfolder view. If you wish to
- view
- the messages in that folder, you must use <literal>view-file</literal> instead
- (bound to <literal>space</literal> by default).
- </para>
- </listitem>
- <listitem>
-
- <para>
- You can create, delete and rename mailboxes with the
- <literal>create-mailbox</literal>, <literal>delete-mailbox</literal>, and
- <literal>rename-mailbox</literal> commands (default bindings: <literal>
- C
- </literal>
- ,
- <literal>d</literal> and <literal>r</literal>, respectively).
- You may also
- <literal>subscribe</literal> and <literal>unsubscribe</literal>
- to mailboxes (normally
- these are bound to <literal>s</literal> and <literal>u</literal>, respectively).
- </para>
- </listitem>
-
- </itemizedlist>
-
- </para>
-
- </sect2>
-
- <sect2 id="imap-auth">
- <title>Authentication</title>
-
- <para>
- Madmutt supports four authentication methods with IMAP servers: SASL,
- GSSAPI, CRAM-MD5, and LOGIN (there is a patch by Grant Edwards to add
- NTLM authentication for you poor exchange users out there, but it has
- yet to be integrated into the main tree). There is also support for
- the pseudo-protocol ANONYMOUS, which allows you to log in to a public
- IMAP server without having an account. To use ANONYMOUS, simply make
- your username blank or "anonymous".
- </para>
-
- <para>
- SASL is a special super-authenticator, which selects among several
- protocols
- (including GSSAPI, CRAM-MD5, ANONYMOUS, and DIGEST-MD5) the most
- secure
- method available on your host and the server. Using some of these
- methods
- (including DIGEST-MD5 and possibly GSSAPI), your entire session will
- be
- encrypted and invisible to those teeming network snoops. It is the
- best
- option if you have it. To use it, you must have the Cyrus SASL
- libraryinstalled on your system and compile mutt with the <emphasis>
- --with-sasl
- </emphasis>
- flag.
- </para>
-
- <para>
- Madmutt will try whichever methods are compiled in and available on
- the server,
- in the following order: SASL, ANONYMOUS, GSSAPI, CRAM-MD5, LOGIN.
- </para>
-
- <para>
- There are a few variables which control authentication:
-
- <itemizedlist>
- <listitem>
-
- <para>
- <madmutt-doc:varref name="imap-user"/> - controls
- the username under which you request authentication on the IMAP
- server,
- for all authenticators. This is overridden by an explicit
- username in
- the mailbox path (i.e. by using a mailbox name of the form
- <literal>{user@host}</literal>).
- </para>
- </listitem>
- <listitem>
-
- <para>
- <madmutt-doc:varref name="imap-pass"/> - a
- password which you may preset, used by all authentication
- methods where
- a password is needed.
- </para>
- </listitem>
- <listitem>
-
- <para>
- <madmutt-doc:varref name="imap-authenticators"/>
- - a colon-delimited list of IMAP
- authentication methods to try, in the order you wish to try
- them. If
- specified, this overrides mutt's default (attempt everything,
- in the order
- listed above).
- </para>
- </listitem>
-
- </itemizedlist>
-
- </para>
-
- <para>
-
- </para>
-
- </sect2>
-
- </sect1>
-
- <sect1 id="nntp">
- <title>NNTP Support (OPTIONAL)</title>
-
- <para>
- If compiled with ``--enable-nntp'' option, Madmutt can read news from
- a newsserver via NNTP. You can open a newsgroup with the
- ``change-newsgroup'' function from the index/pager which is by default
- bound to <madmutt-doc:key>i</madmutt-doc:key>.
- </para>
-
- <para>
- The Default newsserver can be obtained from the <madmutt-doc:envvar name="NNTPSERVER"/>
- environment variable. Like other
- news readers,
- info about subscribed newsgroups is saved in a file as specified by the
- <madmutt-doc:varref name="nntp-newsrc"/> variable.
- Article headers are cached and can be loaded from a file when a
- newsgroup is entered instead loading from newsserver; currently, this
- caching mechanism still is different from the header caching for
- maildir/IMAP.
- </para>
-
- <sect2 id="nntp-scoring">
- <title>Again: Scoring</title>
-
- <para>
- Especially for Usenet, people often ask for advanced filtering
- and scoring functionality. Of course, Madmutt has scoring and
- allows a killfile, too. How to use a killfile has been discussed
- in <link linkend="command-score">Message Scoring</link>.
- </para>
-
- <para>
- What has not been discusses in detail is Madmutt's built-in
- realname filter. For may newsreaders including those for
- ``advanced users'' like <emphasis>slrn</emphasis> or <emphasis>tin</emphasis>, there are frequent
- request for such functionality. The solutions offered often are
- complicated regular expressions.
- </para>
-
- <para>
- In Madmutt this is as easy as
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-score ~* =42</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- This tells Madmutt to apply a score of 42 to all messages whose
- sender specified a valid realname and a valid email address. Using
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-score !~* =42</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- on the contrary applies a score of 42 to all messages <emphasis>not</emphasis>
- matching those criteria which are very strict:
- </para>
-
- <para>
-
- <itemizedlist>
- <listitem>
-
- <para>
- Email addresses must be valid according to <madmutt-doc:rfc num="2822"/>
- </para>
- </listitem>
- <listitem>
-
- <para>
- the name must consist of at least 2 fields whereby a field
- must not end in a dot. This means that ``Joe User'' and ``Joe
- A.User'' are valid while ``J. User'' and ``J. A. User'' aren't.
-
- </para>
- </listitem>
- <listitem>
-
- <para>
- it's assumed that users are interested in reading their
- own mail and mail from people who they have defined an alias
- forso that those 2 groups of messages are excluded from the
- strict
- rules.
-
- </para>
- </listitem>
-
- </itemizedlist>
-
- </para>
-
- <para>
-
- </para>
-
- <para>
-
- </para>
-
- </sect2>
-
- </sect1>
-
- <sect1 id="smtp">
- <title>SMTP Support (OPTIONAL)</title>
-
- <para>
- Madmutt can be built using a library called ``libESMTP'' which
- provides SMTP functionality. When <literal>configure</literal> was
- called with
- <literal>--with-libesmtp</literal> or the output <literal>madmutt -v</literal> contains
- <literal>+USE_LIBESMTP</literal>, this will be or is the case
- already. The SMTP
- support includes support for Delivery Status Notification
- (see <link linkend="dsn">dsn</link> section) as well as
- handling the <literal>8BITMIME</literal> flag controlled via
- <madmutt-doc:varref name="use-8bitmime"/>.
- </para>
-
- <para>
- To enable sending mail directly via SMTP without an MTA such as
- Postfix or SSMTP and the like, simply set the <madmutt-doc:varref name="smtp-host"/>
- variable pointing to your SMTP server.
- </para>
-
- <para>
- Authentication mechanisms are available via the <madmutt-doc:varref name="smtp-user"/>
- and <madmutt-doc:varref name="smtp-pass"/> variables.
- </para>
-
- <para>
- Transport Encryption via the StartTLS command is also available. For
- this to work, first of all Madmutt must be built with SSL or GNUTLS.
- Secondly, the <madmutt-doc:varref name="smtp-use-tls"/> variable
- must be either set
- to ``enabled'' or ``required.'' In both cases, StartTLS will be used if
- the server supports it: for the second case, the connection will fail
- ifit doesn't while switching back to unencrypted communication for the
- first one.
- </para>
-
- <para>
- Some mail providers require user's to set a particular envelope
- sender, i.e. they allow for only one value which may not be what the
- user wants to send as the <literal>From:</literal> header. In this
- case, the variable
- <madmutt-doc:varref name="smtp-envelope"/> may be used
- to set the envelope different from the <literal>From:</literal> header.
- </para>
-
- </sect1>
-
- <sect1 id="account-hook">
- <title>Managing multiple IMAP/POP/NNTP accounts (OPTIONAL)</title>
-
- <para>
- If you happen to have accounts on multiple IMAP and/or POP servers,
- you may find managing all the authentication settings inconvenient and
- error-prone. The <madmutt-doc:hook name="account"/> command may help. This hook works like
- <madmutt-doc:hook name="folder"/> but is invoked whenever you access a remote mailbox
- (including inside the folder browser), not just when you open the
- mailbox.
- </para>
-
- <para>
- Some examples:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-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"'</madmutt-doc:lstconf>
-
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="urlview">
- <title>Start a WWW Browser on URLs (EXTERNAL)</title>
-
- <para>
- If a message contains URLs (<emphasis>unified resource locator</emphasis> = address in the
- WWW space like <emphasis>http://www.mutt.org/</emphasis>), it is
- efficient to get
- a menu with all the URLs and start a WWW browser on one of them. This
- functionality is provided by the external urlview program which can be
- retrieved at <madmutt-doc:web url="ftp://ftp.mutt.org/mutt/contrib/"/>
- and the configuration commands:
-
- <madmutt-doc:lstconf>
-macro index \cb |urlview\n
-macro pager \cb |urlview\n</madmutt-doc:lstconf>
-
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="compressed-folders">
- <title>Compressed folders Support (OPTIONAL)</title>
-
- <para>
- If Madmutt was compiled with compressed folders support (by running the
- <emphasis>configure</emphasis> script with the <emphasis>
- --enable-compressed
- </emphasis>
- flag), Mutt
- can open folders stored in an arbitrary format, provided that the user
- has a script to convert from/to this format to one of the accepted.
- </para>
-
- <para>
- The most common use is to open compressed archived folders e.g. with
- gzip.
- </para>
-
- <para>
- In addition, the user can provide a script that gets a folder in an
- accepted format and appends its context to the folder in the
- user-defined format, which may be faster than converting the entire
- folder to the accepted format, appending to it and converting back to
- the user-defined format.
- </para>
-
- <para>
- There are three hooks defined (<madmutt-doc:hook name="open"/>,
- <madmutt-doc:hook name="close"/> and <madmutt-doc:hook name="append"/>
- )which define commands to uncompress and compress
- a folder and to append messages to an existing compressed folder
- respectively.
- </para>
-
- <para>
- For example:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-open-hook \\.gz$ "gzip -cd %f > %t"
-close-hook \\.gz$ "gzip -c %t > %f"
-append-hook \\.gz$ "gzip -c %t >> %f" </madmutt-doc:lstconf>
-
- </para>
-
- <para>
- You do not have to specify all of the commands. If you omit <madmutt-doc:hook name="append"/>
- ,the folder will be open and
- closed again each time you will add to it. If you omit <madmutt-doc:hook name="close"/>
- (or give empty command) , the
- folder will be open in the mode. If you specify <madmutt-doc:hook name="append"/>
- though you'll be able to append
- to the folder.
- </para>
-
- <para>
- Note that Madmutt will only try to use hooks if the file is not in one
- of
- the accepted formats. In particular, if the file is empty, mutt
- supposes it is not compressed. This is important because it allows the
- use of programs that do not have well defined extensions. Just use
- "." as a regexp. But this may be surprising if your
- compressing script produces empty files. In this situation, unset
- <madmutt-doc:varref name="save-empty"/>
- ,so that the compressed file
- will be removed if you delete all of the messages.
- </para>
-
- <sect2 id="open-hook">
- <title>Open a compressed mailbox for reading</title>
-
- <para>
- Usage: <madmutt-doc:hook name="open"/> <emphasis>regexp</emphasis> "<emphasis>command</emphasis>"
- </para>
-
- <para>
- The <emphasis>command</emphasis> is the command that can be used for
- opening the
- folders whose names match <emphasis>regexp</emphasis>.
- </para>
-
- <para>
- The <emphasis>command</emphasis> string is the printf-like format
- string, and it
- should accept two parameters: %f, which is replaced with the
- (compressed) folder name, and %t which is replaced with the
- name of the temporary folder to which to write.
- </para>
-
- <para>
- %f and %t can be repeated any number of times in the
- command string, and all of the entries are replaced with the
- appropriate folder name. In addition, %% is replaced by
- %, as in printf, and any other %anything is left as is.
- </para>
-
- <para>
- The <emphasis>command</emphasis> should <emphasis role="bold">not</emphasis> remove the original compressed file.
- The <emphasis>command</emphasis> should return non-zero exit status
- if it fails, so
- mutt knows something's wrong.
- </para>
-
- <para>
- Example:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-open-hook \\.gz$ "gzip -cd %f > %t"</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- If the <emphasis>command</emphasis> is empty, this operation is
- disabled for this file
- type.
- </para>
-
- </sect2>
-
- <sect2 id="close-hook">
- <title>Write a compressed mailbox</title>
-
- <para>
- Usage: <madmutt-doc:hook name="close"/> <emphasis>regexp</emphasis>"<emphasis>command</emphasis>"
- </para>
-
- <para>
- This is used to close the folder that was open with the <madmutt-doc:hook name="open"/>
- command after some changes were made to it.
- </para>
-
- <para>
- The <emphasis>command</emphasis> string is the command that can be
- used for closing the
- folders whose names match <emphasis>regexp</emphasis>. It has the
- same format as in
- the <madmutt-doc:hook name="open"/> command. Temporary
- folder
- in this case is the folder previously produced by the <madmutt-doc:hook name="open"/>
- command.
- </para>
-
- <para>
- The <emphasis>command</emphasis> should <emphasis role="bold">not</emphasis> remove the decompressed file. The
- <emphasis>command</emphasis> should return non-zero exit status if it
- fails, so mutt
- knows something's wrong.
- </para>
-
- <para>
- Example:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-close-hook \\.gz$ "gzip -c %t > %f"</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- If the <emphasis>command</emphasis> is empty, this operation is
- disabled for this file
- type, and the file can only be open in the readonly mode.
- </para>
-
- <para>
- <madmutt-doc:hook name="close"/> is not called when you
- exit
- from the folder if the folder was not changed.
- </para>
-
- </sect2>
-
- <sect2 id="append-hook">
- <title>Append a message to a compressed mailbox</title>
-
- <para>
- Usage: <madmutt-doc:hook name="append"/> <emphasis>regexp</emphasis>"<emphasis>command</emphasis>"
- </para>
-
- <para>
- This command is used for saving to an existing compressed folder.
- The <emphasis>command</emphasis> is the command that can be used for
- appending to the
- folders whose names match <emphasis>regexp</emphasis>. It has the
- same format as in
- the <madmutt-doc:hook name="open"/> command.
- The temporary folder in this case contains the messages that are
- beingappended.
- </para>
-
- <para>
- The <emphasis>command</emphasis> should <emphasis role="bold">not</emphasis> remove the decompressed file. The
- <emphasis>command</emphasis> should return non-zero exit status if it
- fails, so mutt
- knows something's wrong.
- </para>
-
- <para>
- Example:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-append-hook \\.gz$ "gzip -c %t >> %f" </madmutt-doc:lstconf>
-
- </para>
-
- <para>
- When <madmutt-doc:hook name="append"/> is used, the
- folder is
- not opened, which saves time, but this means that we can not find out
- what the folder type is. Thus the default (<madmutt-doc:varref name="mbox-type"/>
- )type is always supposed (i.e.
- this is the format used for the temporary folder).
- </para>
-
- <para>
- If the file does not exist when you save to it, <madmutt-doc:hook name="close"/>
- is called, and not <madmutt-doc:hook name="append"/>. <madmutt-doc:hook name="append"/>
- is only
- for appending to existing folders.
- </para>
-
- <para>
- If the <emphasis>command</emphasis> is empty, this operation is
- disabled for this file
- type. In this case, the folder will be open and closed again (using
- <madmutt-doc:hook name="open"/> and <madmutt-doc:hook name="close"/>
- respectively) each time you will add to it.
- </para>
-
- </sect2>
-
- <sect2 id="encrypted-folders">
- <title>Encrypted folders</title>
-
- <para>
- The compressed folders support can also be used to handle encrypted
- folders. If you want to encrypt a folder with PGP, you may want to
- usethe following hooks:
- </para>
-
- <para>
-
- <madmutt-doc:lstconf>
-open-hook \\.pgp$ "pgp -f < %f > %t"
-close-hook \\.pgp$ "pgp -fe YourPgpUserIdOrKeyId < %t > %f"</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- Please note, that PGP does not support appending to an encrypted
- folder, so there is no <madmutt-doc:hook name="append"/> defined.
- </para>
-
- <para>
- <emphasis role="bold">Note:</emphasis> the folder is temporary stored
- decrypted in the /tmp
- directory, where it can be read by your system administrator. So
- thinkabout the security aspects of this.
- </para>
-
- <para>
-
- </para>
-
- <para>
-
- </para>
-
- </sect2>
-
- </sect1>
-
- </chapter>
- <!--}}}-->
-
- <chapter id="mime-support"> <!--{{{-->
- <title>Madmutt's MIME Support</title>
-
- <para>
- Quite a bit of effort has been made to make Madmutt the premier text-mode
- MIME MUA. Every effort has been made to provide the functionality that
- the discerning MIME user requires, and the conformance to the standards
- wherever possible. When configuring Madmutt for MIME, there are two
- extratypes of configuration files which Madmutt uses. One is the
- <literal>mime.types</literal> file, which contains the mapping of file
- extensions to
- IANA MIME types. The other is the <literal>mailcap</literal> file, which
- specifies
- the external commands to use for handling specific MIME types.
- </para>
-
- <sect1 id="mime">
- <title>Using MIME in Mutt</title>
-
- <para>
- There are three areas/menus in Madmutt which deal with MIME, they are
- the
- pager (while viewing a message), the attachment menu and the compose
- menu.
- </para>
-
- <sect2 id="mime-view">
- <title>Viewing MIME messages in the pager</title>
-
- <para>
- When you select a message from the index and view it in the pager,
- Mutt
- decodes the message to a text representation. Madmutt internally
- supports
- a number of MIME types, including <literal>text/plain, text/enriched,
- message/rfc822, and message/news
- </literal>
- .In addition, the export
- controlled version of Madmutt recognizes a variety of PGP MIME types,
- including PGP/MIME and application/pgp.
- </para>
-
- <para>
- Madmutt will denote attachments with a couple lines describing them.
- These lines are of the form:
-
- <screen>
-[-- Attachment #1: Description --]
-[-- Type: text/plain, Encoding: 7bit, Size: 10000 --]</screen>
-
- Where the <literal>Description</literal> is the description or
- filename given for the
- attachment, and the <literal>Encoding</literal> is one of
- <literal>7bit/8bit/quoted-printable/base64/binary</literal>.
- </para>
-
- <para>
- If Madmutt cannot deal with a MIME type, it will display a message
- like:
-
- <screen>
-[-- image/gif is unsupported (use 'v' to view this part) --]</screen>
-
- </para>
-
- </sect2>
-
- <sect2 id="attach-menu">
- <title>The Attachment Menu</title>
-
- <para>
- The default binding for <literal>view-attachments</literal> is `v',
- which displays the
- attachment menu for a message. The attachment menu displays a list
- ofthe attachments in a message. From the attachment menu, you can
- save,
- print, pipe, delete, and view attachments. You can apply these
- operations to a group of attachments at once, by tagging the
- attachments
- and by using the ``tag-prefix'' operator. You can also reply to the
- current message from this menu, and only the current attachment (or
- the
- attachments tagged) will be quoted in your reply. You can view
- attachments as text, or view them using the mailcap viewer
- definition.
- </para>
-
- <para>
- Finally, you can apply the usual message-related functions (like
- <madmutt-doc:funcref name="resend-message"/>, and the reply
- and forward functions) to attachments of type <literal>message/rfc822</literal>.
- </para>
-
- <para>
- See the help on the attachment menu for more information.
- </para>
-
- </sect2>
-
- <sect2 id="compose-menu">
- <title>The Compose Menu</title>
-
- <para>
- The compose menu is the menu you see before you send a message. It
- allows you to edit the recipient list, the subject, and other aspects
- of your message. It also contains a list of the attachments of your
- message, including the main body. From this menu, you can print,
- copy,
- filter, pipe, edit, compose, review, and rename an attachment or a
- list of tagged attachments. You can also modifying the attachment
- information, notably the type, encoding and description.
- </para>
-
- <para>
- Attachments appear as follows:
-
- <screen>
-1 [text/plain, 7bit, 1K] /tmp/mutt-euler-8082-0 <no description>
-2 [applica/x-gunzip, base64, 422K] ~/src/mutt-0.85.tar.gz <no description></screen>
-
- </para>
-
- <para>
- The '-' denotes that Madmutt will delete the file after sending (or
- postponing, or canceling) the message. It can be toggled with the
- <literal>toggle-unlink</literal> command (default: u). The next
- field is the MIME
- content-type, and can be changed with the <literal>edit-type</literal> command
- (default: ^T). The next field is the encoding for the
- attachment,
- which allows a binary message to be encoded for transmission on 7bit
- links. It can be changed with the <literal>edit-encoding</literal>
- command
- (default: ^E). The next field is the size of the attachment,
- rounded to kilobytes or megabytes. The next field is the filename,
- which can be changed with the <literal>rename-file</literal> command
- (default: R).
- The final field is the description of the attachment, and can be
- changed with the <literal>edit-description</literal> command
- (default: d).
- </para>
-
- <para>
-
- </para>
-
- </sect2>
-
- </sect1>
-
- <sect1 id="mime-types">
- <title>
- MIME Type configuration with <literal>mime.types</literal>
- </title>
-
- <para>
- When you add an attachment to your mail message, Madmutt searches your
- personal mime.types file within <madmutt-doc:envvar name="HOME"/> and then
- the system mime.types file at <literal>/usr/local/share/mutt/mime.types</literal> or
- <literal>/etc/mime.types</literal>
- </para>
-
- <para>
- The mime.types file consist of lines containing a MIME type and a space
- separated list of extensions. For example:
-
- <screen>
-application/postscript ps eps
-application/pgp pgp
-audio/x-aiff aif aifc aiff</screen>
-
- A sample <literal>mime.types</literal> file comes with the Madmutt
- distribution, and
- should contain most of the MIME types you are likely to use.
- </para>
-
- <para>
- If Madmutt can not determine the mime type by the extension of the file
- you
- attach, it will look at the file. If the file is free of binary
- information, Madmutt will assume that the file is plain text, and mark
- it
- as <literal>text/plain</literal>. If the file contains binary
- information, then Madmutt will
- mark it as <literal>application/octet-stream</literal>. You can change
- the MIME
- type that Madmutt assigns to an attachment by using the <literal>
- edit-type
- </literal>
- command from the compose menu (default: ^T). The MIME type is
- actually a
- major mime type followed by the sub-type, separated by a '/'. 6 major
- types: application, text, image, video, audio, and model have been
- approved
- after various internet discussions. Madmutt recognises all of these if
- the
- appropriate entry is found in the mime.types file. It also recognises
- other
- major mime types, such as the chemical type that is widely used in the
- molecular modelling community to pass molecular data in various forms
- to
- various molecular viewers. Non-recognised mime types should only be
- used
- if the recipient of the message is likely to be expecting such
- attachments.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="mime-mailcap">
- <title>
- MIME Viewer configuration with <literal>mailcap</literal>
- </title>
-
- <para>
- Madmutt supports <madmutt-doc:rfc num="1524"/> MIME Configuration, in particular the Unix
- specific format specified in Appendix A of the RfC. This file format
- is commonly referred to as the mailcap format. Many MIME compliant
- programs utilize the mailcap format, allowing you to specify handling
- for all MIME types in one place for all programs. Programs known to
- use this format include Netscape, XMosaic, lynx and metamail.
- </para>
-
- <para>
- In order to handle various MIME types that Madmutt can not handle
- internally, Madmutt parses a series of external configuration files to
- find an external handler. The default search string for these files
- is a colon delimited list set to
-
- <screen>
-${HOME}/.mailcap:/usr/local/share/mutt/mailcap:/etc/mailcap:/etc/mailcap:/usr/etc/mailcap:/usr/local/etc/mailcap</screen>
-
- where <madmutt-doc:envvar name="HOME"/> is your home directory.
- </para>
-
- <para>
- In particular, the metamail distribution will install a mailcap file,
- usually as <literal>/usr/local/etc/mailcap</literal>, which contains
- some baseline
- entries.
- </para>
-
- <sect2 id="mime-mailcap-basics">
- <title>The Basics of the mailcap file</title>
-
- <para>
- A mailcap file consists of a series of lines which are comments,
- blank,
- or definitions.
- </para>
-
- <para>
- A comment line consists of a # character followed by anything you
- want.
- </para>
-
- <para>
- A blank line is blank.
- </para>
-
- <para>
- A definition line consists of a content type, a view command, and any
- number of optional fields. Each field of a definition line is
- dividedby a semicolon ';' character.
- </para>
-
- <para>
- The content type is specified in the MIME standard type/subtype
- method.
- For example,
- <literal>text/plain, text/html, image/gif,</literal>
- etc. In addition, the mailcap format includes two formats for
- wildcards, one using the special '*' subtype, the other is the
- implicit
- wild, where you only include the major type. For example, <literal>
- image/*
- </literal>
- ,or
- <literal>video,</literal> will match all image types and video types,
- respectively.
- </para>
-
- <para>
- The view command is a Unix command for viewing the type specified.
- There
- are two different types of commands supported. The default is to send
- the body of the MIME message to the command on stdin. You can change
- this behavior by using %s as a parameter to your view command.
- This will cause Madmutt to save the body of the MIME message to a
- temporary
- file, and then call the view command with the %s replaced by
- the name of the temporary file. In both cases, Madmutt will turn over
- the
- terminal to the view program until the program quits, at which time
- Mutt
- will remove the temporary file if it exists.
- </para>
-
- <para>
- So, in the simplest form, you can send a text/plain message to the
- external pager more on stdin:
-
- <screen>
-text/plain; more</screen>
-
- Or, you could send the message as a file:
-
- <screen>
-text/plain; more %s</screen>
-
- Perhaps you would like to use lynx to interactively view a text/html
- message:
-
- <screen>
-text/html; lynx %s</screen>
-
- In this case, lynx does not support viewing a file from stdin, so you
- must use the %s syntax.
- <emphasis role="bold">Note:</emphasis> <emphasis>Some older versions
- of lynx contain a bug where they
- will check the mailcap file for a viewer for text/html. They will
- find
- the line which calls lynx, and run it. This causes lynx to
- continuously
- spawn itself to view the object.
- </emphasis>
- </para>
-
- <para>
- On the other hand, maybe you don't want to use lynx interactively,
- youjust want to have it convert the text/html to text/plain, then you
- can
- use:
-
- <screen>
-text/html; lynx -dump %s | more</screen>
-
- </para>
-
- <para>
- Perhaps you wish to use lynx to view text/html files, and a pager on
- all other text formats, then you would use the following:
-
- <screen>
-text/html; lynx %s
-text/*; more</screen>
-
- This is the simplest form of a mailcap file.
- </para>
-
- </sect2>
-
- <sect2 id="mime-mailcap-security">
- <title>Secure use of mailcap</title>
-
- <para>
- The interpretation of shell meta-characters embedded in MIME
- parameters
- can lead to security problems in general. Madmutt tries to quote
- parameters
- in expansion of %s syntaxes properly, and avoids risky
- characters by
- substituting them, see the <madmutt-doc:varref name="mailcap-sanitize"/>
- variable.
- </para>
-
- <para>
- Although mutt's procedures to invoke programs with mailcap seem to be
- safe, there are other applications parsing mailcap, maybe taking less
- care
- of it. Therefore you should pay attention to the following rules:
- </para>
-
- <para>
- <emphasis>Keep the %-expandos away from shell quoting.</emphasis>
- Don't quote them with single or double quotes. Madmutt does this for
- you, the right way, as should any other program which interprets
- mailcap. Don't put them into backtick expansions. Be highly careful
- with eval statements, and avoid them if possible at all. Trying to
- fix
- broken behaviour with quotes introduces new leaks - there is no
- alternative to correct quoting in the first place.
- </para>
-
- <para>
- If you have to use the %-expandos' values in context where you
- need
- quoting or backtick expansions, put that value into a shell variable
- and reference the shell variable where necessary, as in the following
- example (using <literal>$charset</literal> inside the backtick
- expansion is safe,
- since it is not itself subject to any further expansion):
- </para>
-
- <para>
-
- <screen>
-text/test-mailcap-bug; cat %s; copiousoutput; test=charset=%{charset} \
-&& test "`echo $charset | tr '[A-Z]' '[a-z]'`" != iso-8859-1</screen>
-
- </para>
-
- </sect2>
-
- <sect2 id="mime-mailcap-advanced">
- <title>Advanced mailcap Usage</title>
-
- <sect3 id="mime-mailcap-advanced-fields">
- <title>Optional Fields</title>
-
- <para>
- In addition to the required content-type and view command fields,
- you
- can add semi-colon ';' separated fields to set flags and other
- options.
- Madmutt recognizes the following optional fields:
- <variablelist>
-
- <varlistentry>
- <term>copiousoutput</term>
- <listitem>
- <para>
- This flag tells Madmutt that the command passes possibly
- large amounts of
- text on stdout. This causes Madmutt to invoke a pager
- (either the internal
- pager or the external pager defined by the pager variable)
- on the output
- of the view command. Without this flag, Madmutt assumes
- that the command
- is interactive. One could use this to replace the pipe to <literal>
- more
- </literal>
- in the <literal>lynx -dump</literal> example in the Basic
- section:
-
- <screen>
-text/html; lynx -dump %s ; copiousoutput</screen>
-
- This will cause lynx to format the text/html output as
- text/plain
- and Madmutt will use your standard pager to display the
- results.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>needsterminal</term>
- <listitem>
- <para>
- Madmutt uses this flag when viewing attachments with <madmutt-doc:cmdref name="auto_view"/>,
- in order to decide whether it should honor the setting
- of the <madmutt-doc:varref name="wait-key"/> variable or
- not. When an attachment is viewed using an interactive
- program, and the
- corresponding mailcap entry has a <emphasis>needsterminal</emphasis> flag, Madmutt will use
- <madmutt-doc:varref name="wait-key"/> and the exit
- statusof the program to decide if it will ask you to press
- a key after the
- external program has exited. In all other situations it
- will not prompt
- you for a key.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>compose=<command></term>
- <listitem>
- <para>
- This flag specifies the command to use to create a new
- attachment of a
- specific MIME type. Madmutt supports this from the compose
- menu.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>composetyped=<command></term>
- <listitem>
- <para>
- This flag specifies the command to use to create a new
- attachment of a
- specific MIME type. This command differs from the compose
- command in
- that mutt will expect standard MIME headers on the data.
- This can be
- used to specify parameters, filename, description, etc. for
- a new
- attachment. Madmutt supports this from the compose menu.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>print=<command></term>
- <listitem>
- <para>
- This flag specifies the command to use to print a specific
- MIME type.
- Madmutt supports this from the attachment and compose
- menus.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>edit=<command></term>
- <listitem>
- <para>
- This flag specifies the command to use to edit a specific
- MIME type.
- Madmutt supports this from the compose menu, and also uses
- it to compose
- new attachments. Madmutt will default to the defined
- editor for text
- attachments.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>nametemplate=<template></term>
- <listitem>
- <para>
- This field specifies the format for the file denoted by
- %s in the
- command fields. Certain programs will require a certain
- file extension,
- for instance, to correctly view a file. For instance, lynx
- will only
- interpret a file as <literal>text/html</literal> if the
- file ends in <literal>.html</literal>.
- So, you would specify lynx as a <literal>text/html</literal> viewer with a line in
- the mailcap file like:
-
- <screen>
-text/html; lynx %s; nametemplate=%s.html</screen>
-
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>test=<command></term>
- <listitem>
- <para>
- This field specifies a command to run to test whether this
- mailcap
- entry should be used. The command is defined with the
- command expansion
- rules defined in the next section. If the command returns
- 0, then the
- test passed, and Madmutt uses this entry. If the command
- returns non-zero,
- then the test failed, and Madmutt continues searching for
- the right entry.
- <emphasis role="bold">Note:</emphasis> <emphasis>the
- content-type must match before Madmutt performs the test.
- </emphasis>
- For example:
-
- <screen>
-text/html; netscape -remote 'openURL(%s)' ; test=RunningX
-text/html; lynx %s</screen>
-
- In this example, Madmutt will run the program RunningX
- which will return 0
- if the X Window manager is running, and non-zero if it
- isn't. If
- RunningX returns 0, then Madmutt will call netscape to
- display the
- text/html object. If RunningX doesn't return 0, then
- Madmutt will go on
- to the next entry and use lynx to display the text/html
- object.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
-
- </sect3>
-
- <sect3 id="mime-mailcap-advanced-searchorder">
- <title>Search Order</title>
-
- <para>
- When searching for an entry in the mailcap file, Madmutt will
- search for
- the most useful entry for its purpose. For instance, if you are
- attempting to print an <literal>image/gif</literal>, and you have
- the following
- entries in your mailcap file, Madmutt will search for an entry with
- the
- print command:
-
- <screen>
-image/*; xv %s
-image/gif; ; print= anytopnm %s | pnmtops | lpr; \
-nametemplate=%s.gif</screen>
-
- Madmutt will skip the <literal>image/*</literal> entry and use the <literal>
- image/gif
- </literal>
- entry with the print command.
- </para>
-
- <para>
- In addition, you can use this with <madmutt-doc:cmdref name="auto_view"/>
- to denote two commands for viewing an attachment, one to be viewed
- automatically, the other to be viewed interactively from the
- attachment
- menu. In addition, you can then use the test feature to determine
- which
- viewer to use interactively depending on your environment.
-
- <screen>
-text/html; netscape -remote 'openURL(%s)' ; test=RunningX
-text/html; lynx %s; nametemplate=%s.html
-text/html; lynx -dump %s; nametemplate=%s.html; copiousoutput</screen>
-
- For <madmutt-doc:cmdref name="auto_view"/>, Madmutt will choose
- the third
- entry because of the copiousoutput tag. For interactive viewing,
- Mutt
- will run the program RunningX to determine if it should use the
- first
- entry. If the program returns non-zero, Madmutt will use the
- second entry
- for interactive viewing.
- </para>
-
- </sect3>
-
- <sect3 id="mime-mailcap-advanced-expansion">
- <title>Command Expansion</title>
-
- <para>
- The various commands defined in the mailcap files are passed to the
- <literal>/bin/sh</literal> shell using the system() function.
- Before the
- command is passed to <literal>/bin/sh -c</literal>, it is parsed to
- expand
- various special parameters with information from Madmutt. The
- keywords
- Madmutt expands are:
- <variablelist>
-
- <varlistentry>
- <term>%s</term>
- <listitem>
- <para>
- As seen in the basic mailcap section, this variable is
- expanded
- to a filename specified by the calling program. This file
- contains
- the body of the message to view/print/edit or where the
- composing
- program should place the results of composition. In
- addition, the
- use of this keyword causes Madmutt to not pass the body of
- the message
- to the view/print/edit program on stdin.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>%t</term>
- <listitem>
- <para>
- Madmutt will expand %t to the text representation of
- the content
- type of the message in the same form as the first parameter
- of the
- mailcap definition line, ie <literal>text/html</literal> or
- <literal>image/gif</literal>.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>%{<parameter>}</term>
- <listitem>
- <para>
- Madmutt will expand this to the value of the specified
- parameter
- from the Content-Type: line of the mail message. For
- instance, if
- Your mail message contains:
-
- <madmutt-doc:lstmail>
-Content-Type: text/plain; charset=iso-8859-1</madmutt-doc:lstmail>
-
- then Madmutt will expand %{charset} to
- iso-8859-1. The default metamail
- mailcap file uses this feature to test the charset to spawn
- an xterm
- using the right charset to view the message.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>\%</term>
- <listitem>
- <para>
- This will be replaced by a %
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- Madmutt does not currently support the %F and %n
- keywords
- specified in <madmutt-doc:rfc num="1524"/>. The main purpose of these parameters is for
- multipart messages, which is handled internally by Madmutt.
- </para>
-
- </sect3>
-
- </sect2>
-
- <sect2 id="mime-mailcap-examples">
- <title>Example mailcap files</title>
-
- <para>
- This mailcap file is fairly simple and standard:
-
- <screen>>
-# I'm always running X :)
-video/*; xanim %s > /dev/null
-image/*; xv %s > /dev/null
-
-# I'm always running netscape (if my computer had more memory, maybe)
-text/html; netscape -remote 'openURL(%s)'</screen>
-
- </para>
-
- <para>
- This mailcap file shows quite a number of examples:
- </para>
-
- <para>
-
- <screen>
-# Use xanim to view all videos Xanim produces a header on startup,
-# send that to /dev/null so I don't see it
-video/*; xanim %s > /dev/null
-
-# Send html to a running netscape by remote
-text/html; netscape -remote 'openURL(%s)'; test=RunningNetscape
-# If I'm not running netscape but I am running X, start netscape on the
-# object
-text/html; netscape %s; test=RunningX
-
-# Else use lynx to view it as text
-text/html; lynx %s
-
-# This version would convert the text/html to text/plain
-text/html; lynx -dump %s; copiousoutput
-
-# I use enscript to print text in two columns to a page
-text/*; more %s; print=enscript -2Gr %s
-
-# Netscape adds a flag to tell itself to view jpegs internally
-image/jpeg;xv %s; x-mozilla-flags=internal
-
-# Use xv to view images if I'm running X
-# In addition, this uses the \ to extend the line and set my editor
-# for images
-image/*;xv %s; test=RunningX; edit=xpaint %s
-
-# Convert images to text using the netpbm tools
-image/*; (anytopnm %s | pnmscale -xysize 80 46 | ppmtopgm | \
-pgmtopbm | pbmtoascii -1x2 ) 2>&1 ; copiousoutput
-
-# Send excel spreadsheets to my NT box
-application/ms-excel; open.pl %s</screen>
-
- </para>
-
- <para>
-
- </para>
-
- </sect2>
-
- </sect1>
-
- <sect1>
- <title>MIME Autoview</title>
-
- <para>
- <madmutt-doc:cmddef name="auto_view">mime-type [mime-type ...]</madmutt-doc:cmddef>
- </para>
-
- <para>
- <madmutt-doc:cmddef name="unauto_view">mime-type [mime-type ...]</madmutt-doc:cmddef>
- </para>
-
- <para>
- In addition to explicitly telling Madmutt to view an attachment with
- theMIME viewer defined in the mailcap file, Madmutt has support for
- automatically viewing MIME attachments while in the pager.
- </para>
-
- <para>
- To work, you must define a viewer in the mailcap file which uses the
- <literal>copiousoutput</literal> option to denote that it is
- non-interactive.
- Usually, you also use the entry to convert the attachment to a text
- representation which you can view in the pager.
- </para>
-
- <para>
- You then use the <literal>auto_view</literal> muttrc command to
- list the
- content-types that you wish to view automatically.
- </para>
-
- <para>
- For instance, if you set auto_view to:
-
- <madmutt-doc:lstconf>
-auto_view text/html application/x-gunzip application/postscript
-image/gif application/x-tar-gz</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- Madmutt could use the following mailcap entries to automatically view
- attachments of these types.
-
- <screen>
-text/html; lynx -dump %s; copiousoutput; nametemplate=%s.html
-image/*; anytopnm %s | pnmscale -xsize 80 -ysize 50 | ppmtopgm | pgmtopbm | pbmtoascii ; copiousoutput
-application/x-gunzip; gzcat; copiousoutput
-application/x-tar-gz; gunzip -c %s | tar -tf - ; copiousoutput
-application/postscript; ps2ascii %s; copiousoutput</screen>
-
- </para>
-
- <para>
- ``unauto_view'' can be used to remove previous entries from the
- autoview list.
- This can be used with <madmutt-doc:hook name="message"/> to autoview messages based on size,
- etc.
- ``unauto_view *'' will remove all previous entries.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1>
- <title>MIME Multipart/Alternative</title>
-
- <para>
- <madmutt-doc:cmddef name="alternative_order">mime-type [mime-type ...]</madmutt-doc:cmddef>
- </para>
-
- <para>
- <madmutt-doc:cmddef name="unalternative_order">mime-type [mime-type ...]</madmutt-doc:cmddef>
- </para>
-
- <para>
- Madmutt has some heuristics for determining which attachment of a
- multipart/alternative type to display. First, mutt will check the
- alternative_order list to determine if one of the available
- typesis preferred. The alternative_order list consists of a
- number of
- MIME types in order, including support for implicit and explicit
- wildcards, for example:
-
- <madmutt-doc:lstconf>
-alternative_order text/enriched text/plain text
-application/postscript image/*</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- Next, mutt will check if any of the types have a defined
- <madmutt-doc:cmdref name="auto_view"/>, and use that. Failing
- that, Madmutt will look for any text type. As a last attempt, mutt
- willlook for any type it knows how to handle.
- </para>
-
- <para>
- To remove a MIME type from the <literal>alternative_order</literal> list, use the
- <literal>unalternative_order</literal> command.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="attachments">
- <title>Attachment Searching and Counting</title>
-
- <para>
- If you ever lose track of attachments in your mailboxes, Mutt's
- attachment-counting and -searching support might be for you. You
- can make your message index display the number of qualifying
- attachments in each message, or search for messages by
- attachment count. You also can configure what kinds of
- attachments qualify for this feature with the attachments and
- unattachments commands.
- </para>
-
-<para>
-The syntax is:
-</para>
-
-<para>
- <madmutt-doc:cmddef name="attachments">
- ( {+|-}disposition mime-type | ? )
- </madmutt-doc:cmddef>
-</para>
-<para>
- <madmutt-doc:cmddef name="unattachments">
- {+|-}disposition mime-type
- </madmutt-doc:cmddef>
-</para>
-
-<para>
-Disposition is the attachment's Content-disposition type -- either
-"inline" or "attachment". You can abbreviate this to I or A.
-</para>
-
-<para>
-Disposition is prefixed by either a + symbolor a - symbol. If it's
-a +, you're saying that you want to allow this disposition and MIME
-type to qualify. If it's a -, you're saying that this disposition
-and MIME type is an exception to previous + rules. There are examples
-below of how this is useful.
-</para>
-
-<para>
-Mime-type is, unsurprisingly, the MIME type of the attachment you want
-to affect. A MIME type is always of the format "major/minor", where
-"major" describes the broad category of document you're looking at, and
-"minor" describes the specific type within that category. The major
-part of mim-type must be literal text (or the special token "*"), but
-the minor part may be a regular expression. (Therefore, "*/.*" matches
-any MIME type.)
-</para>
-
-<para>
-The MIME types you give to the attachments directive are a kind of
-pattern. When you use the attachments directive, the patterns you
-specify are added to a list. When you use unattachments, the pattern
-is removed from the list. The patterns are not expanded and matched
-to specific MIME types at this time -- they're just text in a list.
-They're only matched when actually evaluating a message.
-</para>
-
-<para>
-Some examples might help to illustrate. The examples that are not
-commented out define the default configuration of the lists.
-</para>
-
-<screen>
-## Removing a pattern from a list removes that pattern literally. It
-## does not remove any type matching the pattern.
-##
-## attachments +A */.*
-## attachments +A image/jpeg
-## unattachments +A */.*
-##
-## This leaves "attached" image/jpeg files on the allowed attachments
-## list. It does not remove all items, as you might expect, because the
-## second */.* is not a matching expression at this time.
-##
-## Remember: "unattachments" only undoes what "attachments" has done!
-## It does not trigger any matching on actual messages.
-
-
-## Qualify any MIME part with an "attachment" disposition, EXCEPT for
-## text/x-vcard and application/pgp parts. (PGP parts are already known
-## to mutt, and can be searched for with ~g, ~G, and ~k.)
-##
-## I've added x-pkcs7 to this, since it functions (for S/MIME)
-## analogously to PGP signature attachments. S/MIME isn't supported
-## in a stock mutt build, but we can still treat it specially here.
-##
-attachments +A */.*
-attachments -A text/x-vcard application/pgp.*
-attachments -A application/x-pkcs7-.*
-
-## Discount all MIME parts with an "inline" disposition, unless they're
-## text/plain. (Why inline a text/plain part unless it's external to the
-## message flow?)
-##
-attachments +I text/plain
-
-## These two lines make Mutt qualify MIME containers. (So, for example,
-## a message/rfc822 forward will count as an attachment.) The first
-## line is unnecessary if you already have "attach-allow */.*", of
-## course. These are off by default! The MIME elements contained
-## within a message/* or multipart/* are still examined, even if the
-## containers themseves don't qualify.
-##
-#attachments +A message/.* multipart/.*
-#attachments +I message/.* multipart/.*
-
-## You probably don't really care to know about deleted attachments.
-attachments -A message/external-body
-attachments -I message/external-body
-</screen>
-
-<para>
-"attachments ?" will list your current settings in Muttrc format, so
-that it can be pasted elsewhere.
-</para>
-
-<para>
- Please note that counting attachments may require lots of data be
- loaded. This may cause noticeable slowdowns over network links
- depending on the connection speed and message sizes. To fine-tune the
- behavior on a per-folder or other basis, the <madmutt-doc:varref
- name="count-attachments"/> variable may be used.
-</para>
-
-</sect1>
-
- <sect1>
- <title>MIME Lookup</title>
-
- <para>
- <madmutt-doc:cmddef name="mime_lookup">mime-type [mime-type ...]</madmutt-doc:cmddef>
- </para>
-
- <para>
- <madmutt-doc:cmddef name="unmime_lookup">mime-type [mime-type ...]</madmutt-doc:cmddef>
- </para>
-
- <para>
- Madmutt's mime_lookup list specifies a list of mime-types that
- should not
- be treated according to their mailcap entry. This option is designed
- todeal with binary types such as application/octet-stream. When an
- attachment's
- mime-type is listed in mime_lookup, then the extension of the
- filename will
- be compared to the list of extensions in the mime.types file. The
- mime-type
- associated with this extension will then be used to process the
- attachment
- according to the rules in the mailcap file and according to any other
- configuration
- options (such as auto_view) specified. Common usage would be:
-
- <madmutt-doc:lstconf>
-mime_lookup application/octet-stream application/X-Lotus-Manuscript</madmutt-doc:lstconf>
-
- </para>
-
- <para>
- In addition, the unmime_lookup command may be used to disable
- this feature
- for any particular mime-type if it had been set, for example, in a
- global
- muttrc.
- </para>
-
- <para>
-
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- </chapter>
- <!--}}}-->
-
- <chapter id="security"> <!--{{{-->
- <title>Security Considerations</title>
-
- <para>
- First of all, Madmutt contains no security holes included by
- intention but may contain unknown security holes. As a consequence,
- please run Madmutt only with as few permissions as possible.
- </para>
-
- <para>
- Please do not run Madmutt as the super user.
- </para>
-
- <para>
- When configuring Madmutt, there're some points to note about secure
- setups.
- </para>
-
- <para>
- In practice, Madmutt can be easily made as vulnerable as even the
- most insecure mail user agents (in their default configuration) just
- by changing Madmutt's configuration files: it then can execute
- arbitrary programs and scripts attached to messages, send out private
- data on its own, etc. Although this is not believed to the common type
- of setup, please read this chapter carefully.
- </para>
-
- <sect1 id="security-passwords">
- <title>Passwords</title>
-
- <para>
- Although Madmutt can be told the various passwords for accounts,
- please never store passwords in configuration files. Besides the
- fact that the system's operator can always read them, you could
- forget to replace the actual password with asterisks when reporting
- a bug or asking for help via, for example, a mailing list so that
- your mail including your password could be archived by internet
- search engines, etc. Please never store passwords on disk.
- </para>
-
- </sect1>
-
- <sect1 id="security-tempfiles">
- <title>Temporary Files</title>
-
- <para>
- Madmutt uses many temporary files for viewing messages, verifying
- digital signatures, etc. The <madmutt-doc:varref name="umask"/>
- variable can be used to change the default permissions of these
- files. Please only change it if you really know what you are doing.
- Also, a different location for these files may be desired which can
- be changed via the <madmutt-doc:varref name="tmpdir"/> variable.
- </para>
-
- </sect1>
-
- <sect1 id="security-leaks">
- <title>Information Leaks</title>
-
- <sect2 id="security-leaks-mid">
- <title>Message-ID: headers</title>
-
- <para>
- In the default configuration, Madmutt will leak some information
- to the outside world when sending messages: the generation of
- <literal>Message-ID:</literal> headers includes a step counter which
- is increased
- (and rotated) with every message sent. If you'd like to hide this
- information probably telling others how many mail you sent in which
- time, you at least need to remove the <literal>%P</literal>
- expando from the
- default setting of the <madmutt-doc:varref name="msgid-format"/> variable. Please make sure that
- you really know how local parts of these <literal>Message-ID:</literal> headers
- are composed.
- </para>
-
- </sect2>
-
- <sect2 id="security-leaks-mailto">
- <title>mailto:-style links</title>
-
- <para>
- As Madmutt be can be set up to be the mail client to handle
- <literal>mailto:</literal> style links in websites, there're security
- considerations, too. To keep the old behavior by default, Madmutt
- will be strict in interpreting them which means that arbitrary
- header fields can be embedded in these links which could override
- existing header fields or attach arbitrary files. This may be
- problematic if the <madmutt-doc:varref name="edit-headers"/>
- variable is <emphasis>unset</emphasis>, i.e. the
- user doesn't want to see header fields while editing the message.
- </para>
-
- <para>
- For example, following a link like
- </para>
-
- <para>
-
- <screen>
-mailto:joe@host?Attach=~/.gnupg/secring.gpg</screen>
-
- </para>
-
- <para>
- will send out the user's private gnupg keyring to <literal>joe@host</literal> if
- the user doesn't follow the information on screen carefully
- enough.
- </para>
-
- <para>
- When <emphasis>unsetting</emphasis> the <madmutt-doc:varref name="strict-mailto"/>
- variable, Madmutt will
- </para>
-
- <para>
-
- <itemizedlist>
- <listitem>
-
- <para>
- be less strict when interpreting these links by
- prepending a <literal>X-Mailto-</literal> string to all header
- fields
- embedded in such a link <emphasis>and</emphasis>
-
- </para>
- </listitem>
- <listitem>
-
- <para>
- turn on the <madmutt-doc:varref name="edit-headers"/>
- variable by
- force to let the user see all the headers
- (because they still may leak information.)
-
- </para>
- </listitem>
-
- </itemizedlist>
-
- </para>
-
- </sect2>
-
- </sect1>
-
- <sect1 id="security-external">
- <title>External applications</title>
-
- <para>
- Madmutt in many places has to rely on external applications or
- for convenience supports mechanisms involving external
- applications.
- </para>
-
- <sect2 id="security-external-mailcap">
- <title>mailcap</title>
-
- <para>
- One of these is the <literal>mailcap</literal> mechanism as defined
- by <madmutt-doc:rfc num="1524"/>. Madmutt can be set up to <emphasis>automatically</emphasis>
- execute any
- given utility as listed in one of the mailcap files (see the
- <madmutt-doc:varref name="mailcap-path"/>
- variable for details.)
- </para>
-
- <para>
- These utilities may have a variety of security vulnerabilities,
- including overwriting of arbitrary files, information leaks or
- other exploitable bugs. These vulnerabilities may go unnoticed by
- the user, especially when they are called automatically (and
- without interactive prompting) from the mailcap file(s). When
- using Madmutt's autoview mechanism in combination with mailcap
- files, please be sure to...
- </para>
-
- <para>
-
- <itemizedlist>
- <listitem>
-
- <para>
- manually select trustworth applications with a reasonable
- calling sequence
-
- </para>
- </listitem>
- <listitem>
-
- <para>
- periodically check the contents of mailcap files,
- especially after software installations or upgrades
-
- </para>
- </listitem>
- <listitem>
-
- <para>
- keep the software packages referenced in the mailcap file up to
- date
-
- </para>
- </listitem>
- <listitem>
-
- <para>
- leave the <madmutt-doc:varref name="mailcap-sanitize"/> variable in its default
- state to restrict mailcap expandos to a safe set of characters
-
- </para>
- </listitem>
-
- </itemizedlist>
-
- </para>
-
- </sect2>
-
- <sect2 id="security-external-other">
- <title>Other</title>
-
- <para>
- Besides the mailcap mechanism, Madmutt uses a number of other
- external utilities for operation.
- </para>
-
- <para>
- The same security considerations apply for these as for tools
- involved via mailcap (for example, Madmutt is vulnerable to Denial
- of Service Attacks with compressed folders support if the
- uncompressed mailbox is too large for the disk it is saved to.)
- </para>
-
- <para>
- As already noted, most of these problems are not built in but
- caused by wrong configuration, so please check your configuration.
- </para>
-
- </sect2>
-
- </sect1>
-
- </chapter>
- <!--}}}-->
-
- <chapter id="reference"> <!--{{{-->
- <title>Reference</title>
-
- <sect1 id="commandline">
- <title>Command line options</title>
-
- <para>
- Running <literal>mutt</literal> with no arguments will make Madmutt
- attempt to read your spool
- mailbox. However, it is possible to read other mailboxes and
- to send messages from the command line as well.
- </para>
-
- <para>
-
- <table frame="none" rowsep="1" texstr="l|l">
- <title>Reference: Command Line Options</title>
- <tgroup cols="2" align="left" colsep="1" rowsep="1">
- <thead>
- <row>
- <entry>Option</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><literal>-A</literal></entry>
- <entry>expand an alias</entry>
- </row>
- <row>
- <entry><literal>-a</literal></entry>
- <entry>attach a file to a message</entry>
- </row>
- <row>
- <entry><literal>-b</literal></entry>
- <entry>specify a blind carbon-copy (BCC) address</entry>
- </row>
- <row>
- <entry><literal>-c</literal></entry>
- <entry>specify a carbon-copy (Cc) address</entry>
- </row>
- <row>
- <entry><literal>-e</literal></entry>
- <entry>specify a config command to be run after initialization files are read</entry>
- </row>
- <row>
- <entry><literal>-f</literal></entry>
- <entry>specify a mailbox to load</entry>
- </row>
- <row>
- <entry><literal>-F</literal></entry>
- <entry>specify an alternate file to read initialization commands</entry>
- </row>
- <row>
- <entry><literal>-h</literal></entry>
- <entry>print help on command line options</entry>
- </row>
- <row>
- <entry><literal>-H</literal></entry>
- <entry>specify a draft file from which to read a header and body</entry>
- </row>
- <row>
- <entry><literal>-i</literal></entry>
- <entry>specify a file to include in a message composition</entry>
- </row>
- <row>
- <entry><literal>-m</literal></entry>
- <entry>specify a default mailbox type</entry>
- </row>
- <row>
- <entry><literal>-n</literal></entry>
- <entry>do not read the system madmuttrc</entry>
- </row>
- <row>
- <entry><literal>-p</literal></entry>
- <entry>recall a postponed message</entry>
- </row>
- <row>
- <entry><literal>-Q</literal></entry>
- <entry>query a configuration variable</entry>
- </row>
- <row>
- <entry><literal>-R</literal></entry>
- <entry>open mailbox in read-only mode</entry>
- </row>
- <row>
- <entry><literal>-s</literal></entry>
- <entry>specify a subject (enclose in quotes if it contains spaces)</entry>
- </row>
- <row>
- <entry><literal>-t</literal></entry>
- <entry>dump the value of all variables to stdout</entry>
- </row>
- <row>
- <entry><literal>-T</literal></entry>
- <entry>dump the value of all changed variables to stdout</entry>
- </row>
- <row>
- <entry><literal>-v</literal></entry>
- <entry>show version number and compile-time definitions</entry>
- </row>
- <row>
- <entry><literal>-x</literal></entry>
- <entry>simulate the mailx(1) compose mode</entry>
- </row>
- <row>
- <entry><literal>-y</literal></entry>
- <entry>show a menu containing the files specified by the mailboxes command</entry>
- </row>
- <row>
- <entry><literal>-z</literal></entry>
- <entry>exit immediately if there are no messages in the mailbox</entry>
- </row>
- <row>
- <entry><literal>-Z</literal></entry>
- <entry>open the first folder with new message,exit immediately if none</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- </para>
-
- <para>
- To read messages in a mailbox
- </para>
-
- <para>
- <literal>mutt</literal> ] -nz ] ] -F <emphasis>muttrc</emphasis> ] ] -m <emphasis>
- type
- </emphasis>
- ] ] -f <emphasis>mailbox</emphasis> ]
- </para>
-
- <para>
- To compose a new message
- </para>
-
- <para>
- <literal>mutt</literal> ] -n ] ] -F <emphasis>muttrc</emphasis> ] ] -a <emphasis>
- file
- </emphasis>
- ] ] -c <emphasis>address</emphasis> ] ] -i <emphasis>
- filename
- </emphasis>
- ] ] -s <emphasis>subject</emphasis> ] <emphasis>address</emphasis> ] <emphasis>
- address
- </emphasis>
- ... ]
- </para>
-
- <para>
- Madmutt also supports a ``batch'' mode to send prepared messages.
- Simply redirect
- input from the file you wish to send. For example,
- </para>
-
- <para>
- <literal>mutt -s "data set for run #2"
- professor@bigschool.edu
- < ~/run2.dat
- </literal>
- </para>
-
- <para>
- This command will send a message to ``professor@bigschool.edu'' with a
- subject
- of ``data set for run #2''. In the body of the message will be the
- contents
- of the file ``~/run2.dat''.
- </para>
-
- <para>
-
- </para>
-
- </sect1>
-
- <sect1 id="patterns">
- <title>Patterns</title>
-
- <para>
-
- <table frame="none" rowsep="1" id="tab-patterns" texstr="l|l|l">
- <title>Reference: Patterns</title>
- <tgroup cols="2" align="left" colsep="1" rowsep="1">
- <thead>
- <row>
- <entry>Pattern Modifier</entry>
- <entry>Argument</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><madmutt-doc:pattern full="1" name="A"/></entry>
- <entry><literal></literal></entry>
- <entry>all messages</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="b"/></entry>
- <entry><literal>EXPR</literal></entry>
- <entry>messages which contain EXPR in the message body</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="B"/></entry>
- <entry><literal>EXPR</literal></entry>
- <entry>messages which contain EXPR in the whole message</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="c"/></entry>
- <entry><literal>EXPR</literal></entry>
- <entry>messages carbon-copied to EXPR</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="C"/></entry>
- <entry><literal>EXPR</literal></entry>
- <entry>message is either to: or cc: EXPR</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="D"/></entry>
- <entry><literal></literal></entry>
- <entry>deleted messages</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="d"/></entry>
- <entry><literal>[MIN]-[MAX]</literal></entry>
- <entry>messages with ``date-sent'' in a Date range</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="E"/></entry>
- <entry><literal></literal></entry>
- <entry>expired messages</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="e"/></entry>
- <entry><literal>EXPR</literal></entry>
- <entry>message which contains EXPR in the ``Sender'' field</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="F"/></entry>
- <entry><literal></literal></entry>
- <entry>flagged messages</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="f"/></entry>
- <entry><literal>EXPR</literal></entry>
- <entry>messages originating from EXPR</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="g"/></entry>
- <entry><literal></literal></entry>
- <entry>cryptographically signed messages</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="G"/></entry>
- <entry><literal></literal></entry>
- <entry>cryptographically encrypted messages</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="H"/></entry>
- <entry><literal>EXPR</literal></entry>
- <entry>messages with a spam attribute matching EXPR</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="h"/></entry>
- <entry><literal>EXPR</literal></entry>
- <entry>messages which contain EXPR in the message header</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="k"/></entry>
- <entry><literal></literal></entry>
- <entry>message contains PGP key material</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="i"/></entry>
- <entry><literal>EXPR</literal></entry>
- <entry>message which match ID in the ``Message-ID'' field</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="L"/></entry>
- <entry><literal>EXPR</literal></entry>
- <entry>message is either originated or received by EXPR</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="l"/></entry>
- <entry><literal></literal></entry>
- <entry>message is addressed to a known mailing list</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="m"/></entry>
- <entry><literal>[MIN]-[MAX]</literal></entry>
- <entry>message in the range MIN to MAX *)</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="M"/></entry>
- <entry><literal></literal></entry>
- <entry>multipart messages</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="n"/></entry>
- <entry><literal>[MIN]-[MAX]</literal></entry>
- <entry>messages with a score in the range MIN to MAX *)</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="N"/></entry>
- <entry><literal></literal></entry>
- <entry>new messages</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="O"/></entry>
- <entry><literal></literal></entry>
- <entry>old messages</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="p"/></entry>
- <entry><literal></literal></entry>
- <entry>message is addressed to you (consults alternates)</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="P"/></entry>
- <entry><literal></literal></entry>
- <entry>message is from you (consults alternates)</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="Q"/></entry>
- <entry><literal></literal></entry>
- <entry>messages which have been replied to</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="R"/></entry>
- <entry><literal></literal></entry>
- <entry>read messages</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="r"/></entry>
- <entry><literal>[MIN]-[MAX]</literal></entry>
- <entry>messages with ``date-received'' in a Date range</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="S"/></entry>
- <entry><literal></literal></entry>
- <entry>superseded messages</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="s"/></entry>
- <entry><literal>EXPR</literal></entry>
- <entry>messages having EXPR in the ``Subject'' field.</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="T"/></entry>
- <entry><literal></literal></entry>
- <entry>tagged messages</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="t"/></entry>
- <entry><literal>EXPR</literal></entry>
- <entry>messages addressed to EXPR</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="U"/></entry>
- <entry><literal></literal></entry>
- <entry>unread messages</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="u"/></entry>
- <entry><literal></literal></entry>
- <entry>message is addressed to a subscribed mailing list</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="v"/></entry>
- <entry><literal></literal></entry>
- <entry>message is part of a collapsed thread.</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="V"/></entry>
- <entry><literal></literal></entry>
- <entry>cryptographically verified messages</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="w"/></entry>
- <entry><literal>EXPR</literal></entry>
- <entry>messages which contain EXPR in the `Newsgroups' field (if compiled with NNTP support)</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="x"/></entry>
- <entry><literal>EXPR</literal></entry>
- <entry>messages which contain EXPR in the `References' field</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="X"/></entry>
- <entry><literal>[MIN]-[MAX]</literal></entry>
- <entry>messages with MIN to MAX attachments *)</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="y"/></entry>
- <entry><literal>EXPR</literal></entry>
- <entry>messages which contain EXPR in the `X-Label' field</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="z"/></entry>
- <entry><literal>[MIN]-[MAX]</literal></entry>
- <entry>messages with a size in the range MIN to MAX *)</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="="/></entry>
- <entry><literal></literal></entry>
- <entry>duplicated messages (see $duplicate_threads)</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="$"/></entry>
- <entry><literal></literal></entry>
- <entry>unreferenced messages (requires threaded view)</entry>
- </row>
- <row>
- <entry><madmutt-doc:pattern full="1" name="*"/></entry>
- <entry><literal></literal></entry>
- <entry>``From'' contains realname and (syntactically) valid address
- (excluded are addresses matching against alternates or any alias)</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </para>
-
- <para>
- Where EXPR are
- <link linkend="advanced-regexp">regexp</link>. Special attention has to be
- made when using regular expressions inside of patterns. Specifically,
- Madmutt's parser for these patterns will strip one level of backslash
- (\),
- which is normally used for quoting. If it is your intention to use a
- backslash in the regular expression, you will need to use two
- backslashes
- instead (\\).
- </para>
-
- <para>
- *) The forms <literal><[MAX]</literal>, <literal>>[MIN]</literal>,
- <literal>[MIN]-</literal> and <literal>-[MAX]</literal>
- are allowed, too.
- </para>
-
- </sect1>
-
- <sect1 id="commands">
- <title>Configuration Commands</title>
-
- <para>
- The following are the commands understood by mutt.
- </para>
-
- <para>
-
- <itemizedlist>
- <listitem>
-
- <para>
- <literal><madmutt-doc:hook name="account"/></literal> <emphasis>pattern</emphasis> <emphasis>command</emphasis>
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="alias"/></literal> <emphasis>key</emphasis> <emphasis>address</emphasis> [, <emphasis>address</emphasis>, ... ]
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="unalias"/></literal> [ * | <emphasis>key</emphasis> ... ]
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="alternates"/></literal> <emphasis>regexp</emphasis> [ <emphasis>regexp</emphasis> ... ]
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="unalternates"/></literal> [ * | <emphasis>regexp</emphasis> ... ]
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="alternative_order"/></literal> <emphasis>mimetype</emphasis> [ <emphasis>mimetype</emphasis> ... ]
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="unalternative_order"/></literal> <emphasis>mimetype</emphasis> [ <emphasis>mimetype</emphasis> ... ]
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:hook name="append"/></literal> <emphasis>regexp</emphasis> <emphasis>command</emphasis>
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="auto_view"/></literal> <emphasis>mimetype</emphasis> [ <emphasis>mimetype</emphasis> ... ]
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="unauto_view"/></literal><emphasis>mimetype</emphasis> [ <emphasis>mimetype</emphasis> ... ]
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="bind"/></literal> <emphasis>map</emphasis> <emphasis>key</emphasis> <emphasis>function</emphasis>
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:hook name="charset"/></literal> <emphasis>alias</emphasis> <emphasis>charset</emphasis>
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:hook name="close"/></literal> <emphasis>regexp</emphasis> <emphasis>command</emphasis>
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="color"/></literal> <emphasis>object</emphasis> <emphasis>foreground</emphasis> <emphasis>background</emphasis> [ <emphasis>regexp</emphasis> ]
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="uncolor"/></literal> <emphasis>index</emphasis> <emphasis>pattern</emphasis> [ <emphasis>pattern</emphasis> ... ]
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="exec"/></literal> <emphasis>function</emphasis> [ <emphasis>function</emphasis> ... ]
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:hook name="fcc"/></literal> <emphasis>pattern</emphasis> <emphasis>mailbox</emphasis>
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:hook name="fcc-save"/></literal> <emphasis>pattern</emphasis> <emphasis>mailbox</emphasis>
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:hook name="folder"/></literal> <emphasis>pattern</emphasis> <emphasis>command</emphasis>
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="hdr_order"/></literal> <emphasis>header</emphasis> [ <emphasis>header</emphasis> ... ]
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="unhdr_order"/></literal> <emphasis>header</emphasis> [ <emphasis>header</emphasis> ... ]
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:hook name="charset"/></literal> <emphasis>charset</emphasis> <emphasis>local-charset</emphasis>
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="ignore"/></literal> <emphasis>pattern</emphasis> [ <emphasis>pattern</emphasis> ... ]
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="unignore"/></literal> <emphasis>pattern</emphasis> [ <emphasis>pattern</emphasis> ... ]
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="lists"/></literal> <emphasis>regexp</emphasis> [ <emphasis>regexp</emphasis> ... ]
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="unlists"/></literal> <emphasis>regexp</emphasis> [ <emphasis>regexp</emphasis> ... ]
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="macro"/></literal> <emphasis>menu</emphasis> <emphasis>key</emphasis> <emphasis>sequence</emphasis> [ <emphasis>description</emphasis> ]
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="mailboxes"/></literal> <emphasis>filename</emphasis> [ <emphasis>filename</emphasis> ... ]
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:hook name="mbox"/></literal> <emphasis>pattern</emphasis> <emphasis>mailbox</emphasis>
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:hook name="message"/></literal> <emphasis>pattern</emphasis> <emphasis>command</emphasis>
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="mime_lookup"/></literal> <emphasis>mimetype</emphasis> [ <emphasis>mimetype</emphasis> ... ]
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal>
- <madmutt-doc:cmdref name="unmime_lookup"/></literal> <emphasis>mimetype</emphasis> [ <emphasis>mimetype</emphasis> ... ]
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="mono"/></literal> <emphasis>object attribute</emphasis> [ <emphasis>regexp</emphasis> ]
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="unmono"/></literal> <emphasis>index</emphasis> <emphasis>pattern</emphasis> [ <emphasis>pattern</emphasis> ... ]
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="my_hdr"/></literal> <emphasis>string</emphasis>
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="unmy_hdr"/></literal> <emphasis>field</emphasis> [ <emphasis>field</emphasis> ... ]
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:hook name="open"/></literal> <emphasis>regexp</emphasis> <emphasis>command</emphasis>
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:hook name="crypt"/></literal> <emphasis>pattern</emphasis> <emphasis>key-id</emphasis>
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="push"/></literal> <emphasis>string</emphasis>
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="reset"/> </literal><emphasis>variable</emphasis> [ <emphasis>variable</emphasis> ... ]
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:hook name="save"/></literal> <emphasis>regexp</emphasis> <emphasis>filename</emphasis>
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="score"/> </literal> <emphasis>pattern</emphasis> <emphasis>value</emphasis>
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="unscore"/></literal> <emphasis>pattern</emphasis> [ <emphasis>pattern</emphasis> ... ]
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:hook name="send"/></literal> <emphasis>regexp</emphasis> <emphasis>command</emphasis>
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:hook name="reply"/></literal> <emphasis>regexp</emphasis> <emphasis>command</emphasis>
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="set"/></literal> [no|inv]<emphasis>variable</emphasis>[ =<emphasis>value</emphasis> ] [ <emphasis>variable</emphasis> ... ]
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="unset"/></literal> <emphasis>variable</emphasis> [ <emphasis>variable</emphasis> ... ]
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="source"/></literal> <emphasis>filename</emphasis>
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="spam"/></literal> <emphasis>pattern</emphasis> <emphasis>format</emphasis>
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="nospam"/></literal> <emphasis>pattern</emphasis>
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="subscribe"/></literal> <emphasis>regexp</emphasis> [ <emphasis>regexp</emphasis> ... ]
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="unsubscribe"/></literal> <emphasis>regexp</emphasis> [ <emphasis>regexp</emphasis> ... ]
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="toggle"/></literal> <emphasis>variable</emphasis> [ <emphasis>variable</emphasis> ... ]
- </para>
- </listitem>
- <listitem>
-
- <para>
- <literal><madmutt-doc:cmdref name="unhook"/></literal> <emphasis>hook-type</emphasis>
- </para>
- </listitem>
-
- </itemizedlist>
-
- </para>
-
- </sect1>
-
- <sect1 id="variables">
- <title>Configuration variables</title>
-
- <para>
- The following list contains all variables which, in the process of
- providing more consistency, have been renamed and are partially even
- removed already. The left column contains the old synonym variables,
- the right column the full/new name:
- </para>
-
- <para>
- <anchor id="sect-obsolete"/>
-
- <table frame="none" rowsep="1" texstr="l|l">
- <title>Reference: Obsolete Variables</title>
- <tgroup cols="2" align="left" colsep="1" rowsep="1">
- <thead>
- <row>
- <entry>Old Name</entry>
- <entry>New Name</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><literal>edit_hdrs</literal></entry>
- <entry><madmutt-doc:varref name="edit-headers"/></entry>
- </row>
- <row>
- <entry><literal>forw_decode</literal></entry>
- <entry><madmutt-doc:varref name="forward-decode"/></entry>
- </row>
- <row>
- <entry><literal>forw_format</literal></entry>
- <entry><madmutt-doc:varref name="forward-format"/></entry>
- </row>
- <row>
- <entry><literal>forw_quote</literal></entry>
- <entry><madmutt-doc:varref name="forward-quote"/></entry>
- </row>
- <row>
- <entry><literal>hdr_format</literal></entry>
- <entry><madmutt-doc:varref name="index-format"/></entry>
- </row>
- <row>
- <entry><literal>indent_str</literal></entry>
- <entry><madmutt-doc:varref name="indent-string"/></entry>
- </row>
- <row>
- <entry><literal>mime_fwd</literal></entry>
- <entry><madmutt-doc:varref name="mime-forward"/></entry>
- </row>
- <row>
- <entry><literal>msg_format</literal></entry>
- <entry><madmutt-doc:varref name="message-format"/></entry>
- </row>
- <row>
- <entry><literal>pgp_autosign</literal></entry>
- <entry><madmutt-doc:varref name="crypt-autosign"/></entry>
- </row>
- <row>
- <entry><literal>pgp_autoencrypt</literal></entry>
- <entry><madmutt-doc:varref name="crypt-autoencrypt"/></entry>
- </row>
- <row>
- <entry><literal>pgp_replyencrypt</literal></entry>
- <entry><madmutt-doc:varref name="crypt-replyencrypt"/></entry>
- </row>
- <row>
- <entry><literal>pgp_replysign</literal></entry>
- <entry><madmutt-doc:varref name="crypt-replysign"/></entry>
- </row>
- <row>
- <entry><literal>pgp_replysignencrypted</literal></entry>
- <entry><madmutt-doc:varref name="crypt-replysignencrypted"/></entry>
- </row>
- <row>
- <entry><literal>pgp_verify_sig</literal></entry>
- <entry><madmutt-doc:varref name="crypt-verify-sig"/></entry>
- </row>
- <row>
- <entry><literal>pgp_create_traditional</literal></entry>
- <entry><madmutt-doc:varref name="pgp-autoinline"/></entry>
- </row>
- <row>
- <entry><literal>pgp_auto_traditional</literal></entry>
- <entry><madmutt-doc:varref name="pgp-replyinline"/></entry>
- </row>
- <row>
- <entry><literal>forw_decrypt</literal></entry>
- <entry><madmutt-doc:varref name="forward-decrypt"/></entry>
- </row>
- <row>
- <entry><literal>smime_sign_as</literal></entry>
- <entry><madmutt-doc:varref name="smime-default-key"/></entry>
- </row>
- <row>
- <entry><literal>post_indent_str</literal></entry>
- <entry><madmutt-doc:varref name="post-indent-string"/></entry>
- </row>
- <row>
- <entry><literal>print_cmd</literal></entry>
- <entry><madmutt-doc:varref name="print-command"/></entry>
- </row>
- <row>
- <entry><literal>shorten_hierarchy</literal></entry>
- <entry><madmutt-doc:varref name="sidebar-shorten-hierarchy"/></entry>
- </row>
- <row>
- <entry><literal>ask_followup_to</literal></entry>
- <entry><madmutt-doc:varref name="nntp-ask-followup-to"/></entry>
- </row>
- <row>
- <entry><literal>ask_x_comment_to</literal></entry>
- <entry><madmutt-doc:varref name="nntp-ask-x-comment-to"/></entry>
- </row>
- <row>
- <entry><literal>catchup_newsgroup</literal></entry>
- <entry><madmutt-doc:varref name="nntp-catchup"/></entry>
- </row>
- <row>
- <entry><literal>followup_to_poster</literal></entry>
- <entry><madmutt-doc:varref name="nntp-followup-to-poster"/></entry>
- </row>
- <row>
- <entry><literal>group_index_format</literal></entry>
- <entry><madmutt-doc:varref name="nntp-group-index-format"/></entry>
- </row>
- <row>
- <entry><literal>inews</literal></entry>
- <entry><madmutt-doc:varref name="nntp-inews"/></entry>
- </row>
- <row>
- <entry><literal>mime_subject</literal></entry>
- <entry><madmutt-doc:varref name="nntp-mime-subject"/></entry>
- </row>
- <row>
- <entry><literal>news_cache_dir</literal></entry>
- <entry><madmutt-doc:varref name="nntp-cache-dir"/></entry>
- </row>
- <row>
- <entry><literal>news_server</literal></entry>
- <entry><madmutt-doc:varref name="nntp-host"/></entry>
- </row>
- <row>
- <entry><literal>newsrc</literal></entry>
- <entry><madmutt-doc:varref name="nntp-newsrc"/></entry>
- </row>
- <row>
- <entry><literal>nntp_poll</literal></entry>
- <entry><madmutt-doc:varref name="nntp-mail-check"/></entry>
- </row>
- <row>
- <entry><literal>pop_checkinterval</literal></entry>
- <entry><madmutt-doc:varref name="pop-mail-check"/></entry>
- </row>
- <row>
- <entry><literal>post_moderated</literal></entry>
- <entry><madmutt-doc:varref name="nntp-post-moderated"/></entry>
- </row>
- <row>
- <entry><literal>save_unsubscribed</literal></entry>
- <entry><madmutt-doc:varref name="nntp-save-unsubscribed"/></entry>
- </row>
- <row>
- <entry><literal>show_new_news</literal></entry>
- <entry><madmutt-doc:varref name="nntp-show-new-news"/></entry>
- </row>
- <row>
- <entry><literal>show_only_unread</literal></entry>
- <entry><madmutt-doc:varref name="nntp-show-only-unread"/></entry>
- </row>
- <row>
- <entry><literal>x_comment_to</literal></entry>
- <entry><madmutt-doc:varref name="nntp-x-comment-to"/></entry>
- </row>
- <row>
- <entry><literal>smtp_auth_username</literal></entry>
- <entry><madmutt-doc:varref name="smtp-user"/></entry>
- </row>
- <row>
- <entry><literal>smtp_auth_password</literal></entry>
- <entry><madmutt-doc:varref name="smtp-pass"/></entry>
- </row>
- <row>
- <entry><literal>envelope_from_address</literal></entry>
- <entry><madmutt-doc:varref name="smtp-envelope"/></entry>
- </row>
- <row>
- <entry><literal>user_agent</literal></entry>
- <entry><madmutt-doc:varref name="agent-string"/></entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- </para>
-
- <para>
- The <literal>contrib</literal> subdirectory contains a script named
- <literal>update-config.pl</literal> which eases migration.
- </para>
-
- <para>
- A complete list of current variables follows.
- </para>