[dreamwidth/dreamwidth] bba49e: Add SES incoming email worker and shared processin...
Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: bba49ec2ee390e6882eda0b8004c6c57beacad9e https://github.com/dreamwidth/dreamwidth/commit/bba49ec2ee390e6882eda0b8004c6c57beacad9e Author: Mark Smith mark@dreamwidth.org Date: 2026-02-16 (Mon, 16 Feb 2026)
Changed paths: A bin/worker/ses-incoming-email A cgi-bin/DW/IncomingEmail.pm M cgi-bin/DW/Task/IncomingEmail.pm M config/workers.json A t/incoming-email.t
Log Message:
Add SES incoming email worker and shared processing pipeline
Extract email processing logic from DW::Task::IncomingEmail into DW::IncomingEmail so both the legacy TaskQueue worker and the new SES-based worker share the same pipeline. Remove obsolete spam filtering (subject heuristics, body checks, virus signatures, bounce detection) — SES handles this upstream now.
New components:
- DW::IncomingEmail: shared processing (MIME parsing, hooks,
post-by-email, alias forwarding with From-rewriting, support
routing, multi-domain normalization via
lj::INCOMING_EMAIL_DOMAINS)
- bin/worker/ses-incoming-email: SQS-polling worker that receives
SNS notifications from SES, fetches email from S3, checks SES
spam/virus verdicts, and delegates to DW::IncomingEmail
- t/incoming-email.t: tests for process flow, From-rewriting with
per-sender SHA256 hash, and domain normalization
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications
