Skip to content

Add Mailgun email provider (WASM module) #223

@jeroenrinzema

Description

@jeroenrinzema

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions