Mutt 1.14 Release Notes

Note: this is a review of some of the more interesting features in this release. For a complete list of changes please be sure to read the UPDATING file.

Background Editing

This feature requires either 1) a graphical editor or 2) a terminal multiplexer (e.g. GNU Screen or tmux) combined with a script such as contrib/bgedit-screen-tmux.sh. With one of those, enabling $background_edit allows you to continue using Mutt will editing. You can view messages, change mailboxes, even launch other message composition sessions. For details, please be sure to read the Background Editing section of the manual.

After your editor launches, Mutt will display a landing page:

When you finish editing, the landing page will automatically resume message composition, returning to the compose menu.

However, you can also exit the compose menu using the <exit> function, by default bound to 'q'. This will return to wherever you started the composition session.

When you are ready to resume editing, invoke the <background-compose-menu> function, by default bound to 'B'. If there is a single editing session, and the editor has finished running, Mutt will automatically resume it. Otherwise, the list of backgrounded message composition sessions will be displayed:

Press return on a finished session to resume that session and return to the compose menu.

IMAP Deflate Compression

$imap_deflate enables compression if the IMAP server supports it. This defaults off for now, so be sure to give it a try and report if you have any problems (or if you have good results).

Fcc to Multiple Mailboxes

To save Fcc copies to multiple mailboxes, set $fcc_delimiter to the separator string to use, for example ",". Then append multiple mailboxes to your $record or fcc-hook values, separated by that delimeter:

      set fcc_delimiter = ','
      set record = '=sent,=private'
      fcc-hook 'foo@example\.com$' '+one,+two'
    

Make sure you set the $fcc_delimiter before defining $record or the fcc-hook. This ensures Mutt will properly expand each mailbox at the time of assignment.

If you assign multiple mailboxes to $record, be aware that its mailbox shortcut, "<" won't be usable in other places. The Fcc code understands multiple mailboxes, but <change-folder> and other functions do not.

Also, note that fcc-save-hook is not designed to work with multiple mailboxes. With $fcc_delimiter defined, it's better to use separate fcc-hook and save-hook commands.

Mailbox Labels and Polling

Two flags have been added to the mailboxes command this release: -label/-nolabel, and -poll/-nopoll.

-label specifies an alternate string to display in the sidebar or mailbox browser menu, in place of the mailbox path. This could be useful if the mailbox name/path is too long, for instance. The flag can be used to assign or change the label of an existing mailbox. -nolabel is used to remove a label from an existing mailbox.

In the sidebar, note that setting $sidebar_sort to "alpha" or "name" will sort by the label if defined, where as "path" will always sort by the path, ignoring labels.

-nopoll turns off new mail polling for that mailbox. This could be helpful if you want to list mailboxes in the sidebar for quick access, but don't need new mail notifications for them. -poll turns polling back on for an existing mailbox.

Both of these flags apply to the mailbox listed after it. You can still list multiple mailboxes, with or without labels/nopoll flags:

      mailboxes -label 'Project X' =really/long/mailbox/path \
                =anothermailbox \
                -nopoll -label 'Archive' =really/long/path/to/archive
    

ISO 8601 calendar dates for pattern searching

Mutt still uses the hyphen for date ranges, but you can now specify absolute dates in the form YYYYMMDD for date patterns.

Opportunistic Encryption with Strong Keys

$crypt_opportunistic_encrypt_strong_keys modifies the behavior of $crypt_opportunistic_encrypt to only match against "strong keys", that is, keys with full validity according to the web-of-trust algorithm. Those with large keyrings may find this helps make opportunistic encryption more useful.

send2-hook Matching Against Email Contents

You can now use the pattern modifiers ~b, ~B, and ~h with send2-hooks. This can be used to make configuration changes based on the message contents, such as enabling $send_multipart_alternative if the email contains markdown.

Note that only the composed message (i.e. the first part) is scanned by the pattern modifiers. Other attachments are not scanned.


Smaller Features/Changes

Compose Menu Movement

The functions <move-down> and <move-up> have been added to the compose menu. These allow rearranging the order of the various parts.

Sidebar Navigate to First/Last Entries

The functions <sidebar-first> and <sidebar-last> have been added to the index and pager menus.

Attachment Counting of "Root" Parts

The attachments command previously did not count the first part if it was of inline disposition. This was because those are almost always the message contents and so aren't considered interesting to count. This also allows specifying inline matching of type text/plain:

      attachments   +I text/plain
    

to match text/plain inline attachments without counting the main contents of the email. (This setting is in fact part of the defaults in Mutt's sample muttrc).

However, there are some rare instances where you do want to count an initial inline part. For those cases, you can specify a disposition of "root" or "R" to the attachments command.

Note if you have $count_alternatives set: an initial multipart/alternatives' top-level inline parts are also counted as type "root". Top-level attachment parts are still of type "attachment". Nested parts (e.g. inside a multipart/related alternative) are counted normally.

Message/global Attachment Handling

Mutt now handles viewing "message/global" attachments and their parts. (They are treated the same as "message/rfc822".)

Copy/Save Tagged Messages Progress Messages

Copying and saving tagged messages now displays a progress meter by the number of tagged messages. Previously, when copying from a local mailbox to IMAP, the progress meter would display for each message's upload (byte-count) progress individually, giving no indication of how far along the whole process was.

Decryption errors no long abort displaying the pager

Decryption issues are now considered "non-fatal", and won't abort the message pager. This may be helpful in the case of a nested encrypted message, so you can at least view part of the message.

An error message will display when a rendering error occurs:

Autoview Reply Formatting

If your autoview programs output formatting (backspaced underline/overstrike, or ansi colors), Mutt will now remove the formatting when replying. This allows you to prettify your pager output without adding garbage to the quoted reply text. I believe this change is safe and generally desirable, but if this affects you negatively please let me know.

Cross-Compilation Improvements

Two build-time tools, which were previously compiled and then run as part of the build, have been rewritten in perl: hcachever.sh+mutt_md5 → hcachever.pl, and makedoc.c → makedoc.pl.

This change fixes cross-compilation with the documentation or header cache enabled.