about summary refs log tree commit homepage
path: root/examples/README.unsubscribe
blob: f84e93557f6d547cb3c7cfe4304adf2476ee5782 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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-2020 all contributors <meta@public-inbox.org>
License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>