new-site/infra/postfix
justin 3725374ade ct campaign + fix filings routing durability
- create_ct_annual_report_campaign.py: personalized CT annual-report overdue
  email (company/due_date/days_overdue attribs), from filings.* subdomain, soft
  free-compliance-check CTA. HTML+plaintext, List-Unsubscribe, @TrackLink.
- pw-mta-warmup.sh: when the rotation pool is a single IP, write plain
  transport_maps (no catch-all randmap) + default_transport, so the filings
  sender_dependent map (-> outfilings/.90) survives the daily warmup run.
  Previously randmap:{out05:} clobbered filings routing every day at 07:17 UTC.

Verified end-to-end: Listmonk CT test egresses .90 (outfilings), DKIM
d=filings.performancewest.net s=filings, multipart HTML+plaintext, attribs
render (Riverside Landscaping LLC / due 2026-06-15 / 16 days ago), 0 stray
tokens, real per-subscriber unsubscribe link.
2026-07-01 08:14:12 -05:00
..
live-snapshots infra(mail): remove 18 dormant snowshoe IPs from postfix + host 2026-06-23 23:45:41 -05:00
hc_stream_setup.sh feat(mta): healthcare HOT-stream Postfix setup (dedicated hc IPs, isolated) 2026-06-05 19:07:02 -05:00
mta_setup.sh postfix: multi-IP warmup sending pool (20 IPs, gradual rotation) 2026-05-31 19:03:30 -05:00
pw-hc-rampcap.sh feat(email): wire listmonk-hc into deploy + dev override + hc ramp-cap 2026-06-05 19:19:45 -05:00
pw-listmonk-rampcap.sh mail(rampcap): step trucking cap back up to 400/h (day 19-20), 500/h ceiling 2026-06-22 12:49:54 -05:00
pw-mta-warmup.sh ct campaign + fix filings routing durability 2026-07-01 08:14:12 -05:00