Goal
Add a new ses provider so Lunogram can send email through Amazon SES, based on the same provider-level scope and expectations as #216 .
Scope
Add Amazon SES support for the email channel (providers.ChannelEmail)
Define config requirements for credentials (at minimum AWS region, access key ID, and secret access key)
Implement send behavior mapping Lunogram email payload -> Amazon SES API request
Validate required configuration before send
(If feasible) add webhook handling for delivery/bounce/complaint events mapped to canonical provider webhook events
Provider expectations
Follow the current provider architecture and contracts used by Lunogram
Include provider metadata (id, title, icon/color, website, rate limit)
Use AWS Signature Version 4 signing for API requests
Keep error handling explicit and classify permanent vs transient failures where possible
Acceptance criteria
Provider appears in provider metadata/list endpoints with module id ses
Creating a provider with valid config succeeds
Email send works end-to-end for HTML/text payloads
Clear permanent/transient error classification is implemented
Tests added/updated for core send + validation behavior
Out of scope
SMS or push support
Advanced SES features (configuration sets, dedicated IP pools, template management, etc.) in first version
Reactions are currently unavailable
Goal
Add a new
sesprovider so Lunogram can send email through Amazon SES, based on the same provider-level scope and expectations as #216.Scope
providers.ChannelEmail)Provider expectations
Acceptance criteria
sesOut of scope