about summary refs log tree commit homepage
path: root/examples/unsubscribe.milter
DateCommit message (Collapse)
2023-11-25examples/unsubscribe.milter: limit scope of munging
We don't want the milter to munge List-Unsubscribe headers from external (incoming) mlmmj lists, only lists hosted on the server running unsubscribe.milter. Adding support for an allow_domains file should've been enough, but this further restricts the milter to only operating on Postfix connections from localhost.
2022-04-02examples/unsubscribe.milter: RFC 8058 (List-Unsubscribe=One-Click)
This allows unambiguous signaling to some MUAs and webmail clients that th List-Unsubscribe header contains an instantaneous unsubscribe option.
2022-04-02examples/unsubscribe.milter: use IO::Socket, again
Sendmail::PMilter requires an IO::Socket object, not a GLOB. Fixes: e901a56b3b30b22f (treewide: favor open(..., '+<&=', $fd), 2021-05-21)
2021-05-23treewide: favor open(..., '+<&=', $fd)
Cut down on unnecessary imports of IO::Handle and method lookup + dispatch overhead.
2021-01-01update copyrights for 2021
Using "make update-copyrights" after setting GNULIB_PATH in my config.mak
2020-02-06treewide: run update-copyrights from gnulib for 2019
I didn't wait until September to do it, this year!
2020-01-12examples/unsubscribe.milter: support unique mailto:
Instead of providing a generic "mailto:foo+unsubscribe@example.com" address in List-Unsubscribe which requires confirmation, replace it with a mailto: header with a unique subject which contains the same unique ID we put in the https:// URL. This makes it easier for some MUAs without https:// support to unsubscribe with a single action via the List-Unsubscribe header.
2020-01-12examples/unsubscribe.milter: skip gmane-mx
Mail to gmane is being delivered to gmane-mx.org, nowadays, and we don't want ordinary readers to be able to trigger unconfirmed unsubscription off any mailing lists which go through our unsubscribe.milter. https://lars.ingebrigtsen.no/2020/01/06/whatever-happened-to-news-gmane-org/
2019-09-09run update-copyrights from gnulib for 2019
2018-02-07update copyrights for 2018
Using update-copyrights from gnulib While we're at it, use the SPDX identifier for AGPL-3.0+ to ease mechanical processing.
2016-06-07unsubscribe.milter: implement archive blacklist
We don't want people following links from archivers and breaking archival.
2016-05-27unsubscribe.milter: use default postfork dispatcher
Let postfix (or sendmail :P) control the concurrency limit instead of doing it ourselves. This is necessary because SMTP connections are completely synchronous at this point and a slow/idle SMTP connection will monopolize the worker process.
2016-05-20unsubscribe: get off mah lawn^H^H^Hist
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.