Mutt 1.12 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.

Auto Subscribe

This is a feature originally written by Michael Elkins back in 2010, but resurrected for my attention in a ticket.

If you subscribe to a lot of mailing lists, and don't want to manually keep track of them via subscribe, $auto_subscribe asks mutt to do it for you. When mutt sees a List-Post header, it will add the mailing list to your subscribe list for you.

Naturally, this slows down the reading of headers when opening a mailbox (I think that's the reason it was never merged). However, I've added a cache in front to keep things from slowing down too much.

Fcc after Sending

Previously, if sending failed, a copy of the message would still be in your Fcc mailbox. This could result in multiple copies of a message that in actuality were never sent. Starting this release, the Fcc will occur after sending the message succeeds.

If the fcc fails, mutt will prompt to retry, or to save the message to another mailbox.

In release 1.12.1, $fcc_before_send was added to allow the previous behavior of Fcc'ing before sending. However, because of complications with the new Protected Headers code, the message cannot be modified before sending. So $fcc_attach and $fcc_clear will not be respected when fcc'ing before sending. If the fcc fails, mutt will prompt as described above. If the send fails, then mutt will return to the compose menu, with the copy still remaining in the fcc mailbox.

Protected Headers

Protected Headers, aka Memory Hole encompasses a range of functionality. This release, Mutt is dipping its toes in, with basic support for the Subject header.

$crypt_protected_headers_read, default set, will read and display protected Subject headers. The protected Subject will be displayed inside the pager encryption/signing delimiters:

It will respect any color header coloring, to help make it clear this is a header, not part of the message body.

When $crypt_protected_headers_write is set, a protected subject header will be generated for signed or encrypted emails. For encrypted emails, the value in $crypt_protected_headers_subject will replace the real subject in the unencrypted headers. You can also see this in the screenshot above: the envelope contains "Subject: Encrypted subject", while the encrypted protected header Subject is "Secret Project X".

After opening a message, the protected subject will be stored in your header cache, to make it easier to search for when reopening the mailbox. If $crypt_protected_headers_save is set, the protected subject will also be stored back into the original email unencrypted headers. Don't enable that unless you fully understand what it is doing and the security implications.

Color Enhancements

For a long time, Mutt has allowed prefixing color name with "bright" to add bold-faced, e.g. brightred. Mutt now also allows the prefix "light", which basically adds "8" to the color value behind the scenes. In some terminals there is a large difference between the two.

Attribute names are also now allowed in color lines. They prefice the color:

      set header_color_partial
      color header bold underline green default '^subject:'
    

(Note: the example screenshot is using $header_color_partial, added in 1.9.0. Attribute names in the color lines does not depend on that being set, but I added it to the code snippet to make it clear the screenshot has that set too.)

Inline Forwarding of Attachments

Previously, if you wanted to include attachments in a forwarded email, you had to either use $mime_forward, which forwarded the entire email as an attachment, or else open the attachment menu, manually tag all the attachments and then hit forward from the attachment menu.

$forward_attachments is a quadoption that now allows forwarding attachments from an email when inline-forwarding (that is, $mime_forward unset, and $forward_decode set). Note that text-decodable attachments will still be decoded and included in the message body. Non-decodable attachments will be added as separate attachments.

TLS 1.0 and 1.1 Disabled by Default

This is not a "feature", but after a couple people reported being affected by this, it seemed a good idea to mention it here. In this release, TLS 1.0 and TLS 1.1 support is disabled by default. They can be manually re-enabled via $ssl_use_tlsv1 and $ssl_use_tlsv1_1.

TLS 1.0 and 1.1 are deprecated and considered insecure, but some people on intranets, at the whim of vendors, may still be forced to use them.

Smaller Features

<descend-directory>

This allows entering maildir and mh directories from the browser, which is useful if you maintain nested mailboxes. It's not bound to a key by default.

<group-chat-reply>

The standard <group-reply> function doesn't preserve To vs Cc recipients in the reply. The sender is placed in To, and all other recipients are in the Cc of the reply. For many people this is just fine, and has been the default for a very long time.

<group-chat-reply> preserves the distinction between recipients. The sender and To recipients of the original email will be in the To of the reply. This can be bound as you wish, to give an alternative or override the original function binding.

IMAP Header Downloading in Chunks

If you have a huge mailbox, it's possible for the IMAP server to timeout and close the connection just while downloading all the headers. If you are having this problem, try setting $imap_fetch_chunk_size, perhaps to something like 10000 or 20000. Mutt will then download the headers in batches of that size, sending a new FETCH command for each group.

If you have a huge mailbox, it would be worth it to try enabling $imap_qresync in case your server supports it. Also be sure to read the tips in Performance Tuning.

Documentation Additions

A few new sections were added to the manual:

Internal Improvements

A lot of internal improvements happened during this development cycle too: