notmuch to say#
Thu, 16 Aug 2018 11:57:46 +0000
Very quick one this week, because it's all a bit mad round here right now:
If you are (as I am) using postfix to send and receive mail, and if
you are (as I am) using rspamd to identify spam emails, and if you are
(as I am) using notmuch to index and search it, you may have noticed
(as I did) that notmuch can't add tags based on the presence of the X-Spam
header that rspamd adds.
This is what I did:
1) I made postfix do local delivery through maildrop
services.postfix = { extraConfig = '' [ ... ] mailbox_command = ${pkgs.maildrop}/bin/maildrop -d ''${USER} ''; }This is for NixOS, obviously, if you are not using Nix then make the equivalent change in
/etc/postfix/main.cf
maildrop will default to delivering the mail as normal if it can't
find a $HOME/.mailfilter
file, so once you have established that its
idea of "normal" matches yours then this ought to be a safe change to
make for all your users
2) Added a .mailfilter
file to run notmuch insert
, which accepts a
message on standard input, adds it to the notmuch maildir and indexes it - with the specified tags
[dan@vritual:~]$ cat ~/.mailfilter if(/X-Spam.+yes/:H) to "|/home/dan/.nix-profile/bin/notmuch insert +spam -inbox"to "|/home/dan/.nix-profile/bin/notmuch insert -inbox"
I don't manage my my home directory declaratively - if you are running NixOS and have home-manager or something like that, then you can make this change in a more Nixy way.
3) Profit.
In not-really-other news, I embarked on a quick let's-learn re-frame
hack to build a mobile-frendly notmuch web interface. It's not quite
at "works for me" level yet, and is certainly not at "you can run this
on a network" level (it's running the notmuch
command with
user-supplied arguments ..) but there has been progress.