about summary refs log tree commit homepage
path: root/examples/unsubscribe-psgi@.service
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2016-05-18 01:23:05 +0000
committerEric Wong <e@80x24.org>2016-05-20 21:33:56 +0000
commit1f29b33d3f71b8a40f5ae76bf20b95618b518654 (patch)
tree974ac5d70d601a454b92bf824e03e8f23b6c6daa /examples/unsubscribe-psgi@.service
parentd6cdb106f27abed5d05da035c95e106939fbe3b2 (diff)
downloadpublic-inbox-1f29b33d3f71b8a40f5ae76bf20b95618b518654.tar.gz
While public-inbox is intended primarily for archival,
SMTP list subscriptions are still in use in most places
and users are likely to want a good unsubscribe mechanism.

HTTP (or HTTPS) links in the List-Unsubscribe header are
often preferable since some users may use an incorrect
email address for mailto: links.

Thus, it is useful to provide an example which generates an
HTTPS link for users to click on.  The default .psgi requires
a POST confirmation (as destructive actions with GET are
considered bad practice).  However, the "confirm" parameter
may be disabled for a true "one-click" unsubscribe.

The generated URLs are hopefully short enough and both shell
and highlighting-friendly to reduce copy+paste errors.
Diffstat (limited to 'examples/unsubscribe-psgi@.service')
-rw-r--r--examples/unsubscribe-psgi@.service20
1 files changed, 20 insertions, 0 deletions
diff --git a/examples/unsubscribe-psgi@.service b/examples/unsubscribe-psgi@.service
new file mode 100644
index 00000000..f588886b
--- /dev/null
+++ b/examples/unsubscribe-psgi@.service
@@ -0,0 +1,20 @@
+# ==> /etc/systemd/system/unsubscribe-psgi@.service <==
+# The '@' is to allow multiple simultaneous services to start
+# and share the same socket so new code can be cycled in
+# without downtime
+
+[Unit]
+Description = unsubscribe PSGI %i
+Wants = unsubscribe-psgi.socket
+After = unsubscribe-psgi.socket
+
+[Service]
+# any PSGI server ought to work,
+# but public-inbox-httpd supports socket activation like unsubscribe.milter
+ExecStart = /usr/local/bin/public-inbox-httpd /etc/unsubscribe.psgi
+Sockets = unsubscribe-psgi.socket
+# we need to modify the mlmmj spool
+User = mlmmj
+
+[Install]
+WantedBy = multi-user.target