Unsubscribe endpoints for mlmmj users (and possibly Mailman, too)
* examples/unsubscribe.milter filters outgoing messages
and appends an HTTPS URL to the List-Unsubscribe header.
This List-Unsubscribe header should point to the PSGI
described below.
Currently, this is only active for a whitelist of test
addresses in /etc/unsubscribe-milter.whitelist
with one email address per line.
* examples/unsubscribe.psgi is a PSGI which needs to run
as the mlmmj user with permission to run mlmmj-unsub.
This depends on the PublicInbox::Unsubscribe module
which may be extracted from the rest of public-inbox.
It is strongly recommended to NOT run the rest of the
public-inbox WWW code in the same process as this PSGI.
(The public-inbox WWW code will never need write
permissions to anything besides stderr).
* Both the .milter and .psgi examples are bundled with
systemd service and socket activation examples.
AFAIK no other PSGI server besides public-inbox-httpd
supports systemd socket activation.
To wire up the milter for postfix, I use the following
in /etc/postfix/main.cf:
# Milter configuration
milter_default_action = accept
milter_protocol = 2
# other milters may be chained here (e.g. opendkim)
# chroot users will need to adjust this path
smtpd_milters = local:/var/spool/postfix/unsubscribe/unsubscribe.sock
# This is not needed for mlmmj since mlmmj uses SMTP:
# non_smtpd_milters = local:/var/spool/postfix/unsubscribe/unsubscribe.sock
Copyright (C) 2016-2018 all contributors
License: AGPL-3.0+