Go to file
nervuri 82673dac23 Mutt: set $hostname instead of $message_id_format 2023-08-22 14:56:39 +00:00
getmail init 2023-08-11 13:38:41 +00:00
mpop init 2023-08-11 13:38:41 +00:00
msmtp init 2023-08-11 13:38:41 +00:00
mutt Mutt: set $hostname instead of $message_id_format 2023-08-22 14:56:39 +00:00
LICENSE.txt init 2023-08-11 13:38:41 +00:00
README.md Mutt: set $hostname instead of $message_id_format 2023-08-22 14:56:39 +00:00
mail-filter.user.py init 2023-08-11 13:38:41 +00:00


E-mail configs

This repo contains my configs for mutt, mpop, msmtp and a bespoke mail filtering script.

It also contains a sample getmail config for IMAP accounts, which downloads all messages and deletes them from the server.


In recent versions of Mutt, you can use local_date_header = no to hide your timezone. If you're running a version prior to 2.2.0, you can achieve the same result using a shell alias: alias mutt='TZ=UTC mutt'.

Also in recent versions of Mutt, the User-Agent header is disabled by default.

By default, Mutt exposes the computer's hostname in the Message-ID header! Also, certain spam filters want the Message-ID hostname to be a FQDN (see Rspamd's MID_RHS_NOT_FQDN rule). So it's best to explicitly set $hostname to match the From address.

My muttrc has basic Vim key bindings, but if you want to go further in that direction see Mutt, the Vim Way.

In mpop and msmtp I've pinned the Let's Encrypt root certificate using tls_trust_file. If you want to pin the end-entity cert, use the tls_fingerprint variable. You can obtain a server's TLS fingerprint by running:

openssl s_client $HOST:$PORT </dev/null 2>/dev/null | openssl x509 -fingerprint -sha256 -enddate -noout

Run it with and without torsocks to check from multiple network perspectives.

mpop and msmtp are configured to fetch mail account passwords by calling pass. You could also use a variant of pass called passage that uses age instead of GPG.