From d002f24a9648d1499a16ed4dec84f05c0f849740 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 11 Nov 2023 09:04:57 +0000 Subject: mda|learn|watch: support dropUniqueUnsubscribe config List-Unsubscribe headers with unique identifiers (such as those generated by our examples/unsubscribe.milter) should not end up in public archives. Add a new config knob to strip List-Unsubscribe headers if they have the `List-Unsubscribe-Post: List-Unsubscribe=One-Click' header. Unfortunately, this breaks DKIM signatures if the signature covers either of these List-Unsubscribe* headers. However, breaking DKIM is the lesser evil compared to any archive reader being able to stop archival by an independent archivist. As much as I would like this to be the default, it probably affects few users at the moment since very few mailing lists use unique identifiers in List-Unsubscribe (but that number has grown, recently). --- Documentation/public-inbox-config.pod | 17 +++++++++++++++++ Documentation/public-inbox-learn.pod | 19 +++++++++++++++++++ Documentation/public-inbox-mda.pod | 18 +++++++++++++++++- Documentation/public-inbox-watch.pod | 6 +++++- 4 files changed, 58 insertions(+), 2 deletions(-) (limited to 'Documentation') diff --git a/Documentation/public-inbox-config.pod b/Documentation/public-inbox-config.pod index 871ac6c5..1ef7f46f 100644 --- a/Documentation/public-inbox-config.pod +++ b/Documentation/public-inbox-config.pod @@ -196,6 +196,23 @@ and the path may be "/dev/null" or any empty file. Multiple files may be specified and will be included in the order specified. +=item publicinboxImport.dropUniqueUnsubscribe + +Drop C headers if the message also includes +the C header +to signal MUAs to support an instantaneous unsubscribe. This +is strongly recommended for users creating their own public +archives of mailing lists they subscribe to, otherwise any +archive reader can unsubscribe the archivist. + +This may break DKIM signatures if the C +headers are signed, but breaking DKIM signatures is the +lesser evil compared to allowing any reader to unsubscribe +the archivist. + +This affects L, L, +and L + =item publicinboxmda.spamcheck This may be set to C to disable the use of SpamAssassin diff --git a/Documentation/public-inbox-learn.pod b/Documentation/public-inbox-learn.pod index f776df6b..b08e4bc8 100644 --- a/Documentation/public-inbox-learn.pod +++ b/Documentation/public-inbox-learn.pod @@ -73,6 +73,25 @@ Default: ~/.public-inbox/config =back +=head1 CONFIGURATION + +These configuration knobs should be used in the +L file. + +=over 8 + +=item publicinboxImport.dropUniqueUnsubscribe + +=item publicinbox..address + +=item publicinbox..listid + +=item publicinboxmda.spamcheck + +See L for descriptions of these options + +=back + =head1 CONTACT Feedback welcome via plain-text mail to L diff --git a/Documentation/public-inbox-mda.pod b/Documentation/public-inbox-mda.pod index 93cb0e9c..edc90287 100644 --- a/Documentation/public-inbox-mda.pod +++ b/Documentation/public-inbox-mda.pod @@ -68,6 +68,22 @@ Default: ~/.public-inbox/emergency/ =back +=head1 CONFIGURATION + +Various configuration knobs should be used in the +L file. + +=over 8 + +=item publicinboxImport.dropUniqueUnsubscribe + +=item publicinbox..address + +=item publicinbox..listid + +See L for descriptions of these options + +=back =head1 CONTACT @@ -78,7 +94,7 @@ L =head1 COPYRIGHT -Copyright 2013-2021 all contributors L +Copyright all contributors L License: AGPL-3.0+ L diff --git a/Documentation/public-inbox-watch.pod b/Documentation/public-inbox-watch.pod index febda0b1..7c21f7ce 100644 --- a/Documentation/public-inbox-watch.pod +++ b/Documentation/public-inbox-watch.pod @@ -66,6 +66,10 @@ L file. =over 8 +=item publicinboxImport.dropUniqueUnsubscribe + +See L + =item publicinbox..watch A location to watch. public-inbox 1.5.0 and earlier only supported @@ -201,7 +205,7 @@ L =head1 COPYRIGHT -Copyright 2016-2021 all contributors L +Copyright all contributors L License: AGPL-3.0+ L -- cgit v1.2.3-24-ge0c7