diff options
author | Eric Wong <e@80x24.org> | 2023-11-11 09:04:57 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2023-11-11 21:20:43 +0000 |
commit | d002f24a9648d1499a16ed4dec84f05c0f849740 (patch) | |
tree | 2d1b9ca2913e667b6bc7bd893bf5b45f24ba22de /lib/PublicInbox/LeiToMail.pm | |
parent | 13d21e1701fe5ff07b1f8017ba54f92965ac1c7a (diff) | |
download | public-inbox-d002f24a9648d1499a16ed4dec84f05c0f849740.tar.gz |
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).
Diffstat (limited to 'lib/PublicInbox/LeiToMail.pm')
-rw-r--r-- | lib/PublicInbox/LeiToMail.pm | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/PublicInbox/LeiToMail.pm b/lib/PublicInbox/LeiToMail.pm index b73af68a..0d2f586a 100644 --- a/lib/PublicInbox/LeiToMail.pm +++ b/lib/PublicInbox/LeiToMail.pm @@ -10,6 +10,7 @@ use PublicInbox::Eml; use PublicInbox::IO; use PublicInbox::Git; use PublicInbox::Spawn qw(spawn); +use PublicInbox::Import; use IO::Handle; # ->autoflush use Fcntl qw(SEEK_SET SEEK_END O_CREAT O_EXCL O_WRONLY); use PublicInbox::Syscall qw(rename_noreplace); @@ -672,6 +673,11 @@ sub _pre_augment_v2 { }); } PublicInbox::InboxWritable->new($ibx, @creat); + local $PublicInbox::Import::DROP_UNIQUE_UNSUB; # only for workers + PublicInbox::Import::load_config(PublicInbox::Config->new, sub { + $lei->x_it(shift); + die "E: can't write v2 inbox with broken config\n"; + }); $ibx->init_inbox if @creat; my $v2w = $ibx->importer; $v2w->wq_workers_start("lei/v2w $dir", 1, $lei->oldset, {lei => $lei}, |