Self-hosted email platform built on Amazon SES.
Run it on your own server, connect your AWS account, and get an email API and dashboard.
Docs · Install · First email · API
- Send email through a REST API or the Python SDK
- Verify senders — email addresses and domains, with the DNS records to add
- Delivery events — see whether each message was delivered, bounced, opened or clicked
- Webhooks — get notified when something happens to a message
- Suppression list — bounced and unsubscribed addresses are never sent to again
- Dashboard — send a test message, watch deliveries, manage everything
- Request SES production access from the dashboard
You need Docker.
curl -fsSL https://otitodev.github.io/seskit/install.sh | shOpen http://<your-server>:8000, create your account, and paste in an AWS
access key. Put a TLS proxy in front before sending real mail.
To try it locally without an AWS account, mail is captured by Mailpit:
git clone https://github.com/Otitodev/seskit.git && cd seskit
cp .env.example .env
docker compose upCreate an API key in the dashboard, then:
curl -X POST http://localhost:8000/v1/emails \
-H "Authorization: Bearer sk_..." \
-H "Content-Type: application/json" \
-d '{"from":"hello@example.com","to":["you@example.com"],
"subject":"Hello","html":"<h1>It works</h1>"}'Or with Python (pip install seskit):
from seskit import SesKit
client = SesKit(api_key="sk_...", base_url="http://localhost:8000")
client.emails.send(
from_="hello@example.com",
to="you@example.com",
subject="Hello",
html="<h1>It works</h1>",
)See CONTRIBUTING.md. Report security issues through SECURITY.md.