Goal
Add a new mailgun provider so Lunogram can send email through Mailgun, based on the same provider-level scope and expectations as #216.
Scope
- Add Mailgun support for the email channel (
providers.ChannelEmail)
- Define config requirements for credentials (at minimum Mailgun API key and sending domain)
- Implement send behavior mapping Lunogram email payload -> Mailgun API request
- Validate required configuration before send
- (If feasible) add webhook handling for delivery 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)
- Keep error handling explicit and classify permanent vs transient failures where possible
Acceptance criteria
- Provider appears in provider metadata/list endpoints with module id
mailgun
- 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 Mailgun features (templates, suppressions, routing rules, etc.) in first version
Goal
Add a new
mailgunprovider so Lunogram can send email through Mailgun, based on the same provider-level scope and expectations as #216.Scope
providers.ChannelEmail)Provider expectations
Acceptance criteria
mailgunOut of scope