majorwiki/02-selfhosting/services
MajorLinux 5260548caa wiki: spam filtering — add Pigeonhole 2.4 syntax, REDIRECT-to-junk pattern, weekly timer
Three updates to the inbound spam filtering guide, all driven by the 2026-06-04
majormail-hetzner Phase 6 cutover and follow-up tuning:

1. Section 6 (Dovecot Sieve): warn explicitly that `plugin/sieve_before` was
   dropped in Pigeonhole 2.4 and silently does nothing — no startup warning,
   spam just keeps landing in INBOX. The 2.4 replacement is a top-level
   `sieve_script <name> { type = before; path = …; }` block. Also note the
   Fedora-flat-dovecot.conf pitfall (some packagings ship dovecot.conf
   without `!include conf.d/*.conf`, so the block has to live in the main
   file directly). Added a `sievec` compile step.

2. New §6b: route spam to a separate `junk@` mailbox via Postfix cleanup
   `header_checks` REDIRECT. This makes spam invisible to the user's
   mailbox entirely — Spark/IDLE-based clients don't push-notify because
   the message never reaches the subscribed mailbox at all. Includes the
   `regexp:` vs `pcre:` map-type tip (use regexp on stock Fedora to avoid
   the postfix-pcre package dependency).

3. New §7a: weekly systemd timer for sa-learn. The §7 warning about
   "don't run sa-learn from cron unless folders are clean" is correct as
   the safe default — but when you adopt the §6b REDIRECT-to-junk@
   pattern, the junk@ mailbox is pure spam by design and a weekly
   `--spam`/`--ham`/`--sync`/`--force-expire` chain becomes safe and
   useful. Full unit templates included.

Gotchas table gains four entries:
- Pigeonhole 2.4 silent breakage of plugin/sieve_before
- postfix-pcre vs regexp map type confusion
- Why sieve fileinto Junk still pushes a Spark notification
- Why local `sendmail` injection doesn't trigger the REDIRECT (smtpd
  milters skip sendmail-injected mail, so X-Spam-Flag isn't added)

All changes match what's now codified in the `majormail` Ansible role
(commit 7a8b9eb in MajorAnsible).
2026-06-04 20:48:01 -04:00
..
claude-code-remote-control.md wiki: publish 3 unpushed articles and catch nav up 2026-04-21 09:17:31 -04:00
ghost-smtp-mailgun-setup.md Add 5 wiki articles from 2026-04-17/18 work 2026-04-18 11:13:39 -04:00
mastodon-db-maintenance.md Add 7 articles; update nav and existing articles (2026-04-25) 2026-04-25 17:52:48 +00:00
mastodon-federation.md Add 7 articles; update nav and existing articles (2026-04-25) 2026-04-25 17:52:48 +00:00
mastodon-instance-tuning.md wiki: update fail2ban digest + netdata docker health + 3 new articles 2026-05-02 14:58:07 -04:00
mastodon-post-install-hardening.md wiki: ssh.socket wait-ready gate + mastodon post-install hardening 2026-05-31 11:08:24 -04:00
mastodon-prune-profiles-trap.md mastodon: document S3 ACL upload failures + bulk avatar restore 2026-06-01 15:45:23 -04:00
mastodon-s3-acl-upload-failures.md mastodon: document S3 ACL upload failures + bulk avatar restore 2026-06-01 15:45:23 -04:00
postfix-spamassassin-bayes-spam-filtering.md wiki: spam filtering — add Pigeonhole 2.4 syntax, REDIRECT-to-junk pattern, weekly timer 2026-06-04 20:48:01 -04:00
updating-n8n-docker.md wiki: audit fixes — broken links, wikilinks, frontmatter, stale content (66 files) 2026-04-02 11:16:29 -04:00