Send mail at scale. Built for developers.
mittera is a self-hosted email platform built on AWS SES. Open source, self-hosted, AGPL-3.0.
Open source • Self-host • Built on AWS SES
Analytics
Track deliveries, opens, clicks, bounces and unsubscribes in real time with a simple, searchable log. Filter by domain, status, API key and export them.
Marketing Email Editor
Design beautiful campaigns without code using a visual, Notion-like WYSIWYG editor that works in major email clients. Reuse templates and personalize with variables.
Contact Management
Manage contacts, lists, and consent in one place. Import and export easily, keep per-list subscription status. Contacts are automatically updated from bounces and complaints.
Suppression List
Prevent accidental sends. Automatically populated from bounces and complaints, and manage via import/export or API. Works with transactional and marketing emails.
SMTP Relay
Drop-in SMTP relay that works with any app or framework. Avoid vendor lock-in. Useful with services like Supabase.
Typed SDKs and simple APIs, so you can focus on product not plumbing.
import { Mittera } from "@mittera/sdk";
const mittera = new Mittera("mt_12345");
mittera.emails.send({
to: "hello@acme.com",
from: "hello@company.com",
subject: "mittera email",
html: "<p>Send transactional and marketing email through mittera.</p>",
text: "Send transactional and marketing email through mittera.",
});from mittera import Mittera
client = Mittera("mt_12345")
data, err = client.emails.send({
"to": "hello@acme.com",
"from": "hello@company.com",
"subject": "mittera email",
"html": "<p>Send transactional and marketing email through mittera.</p>",
"text": "Send transactional and marketing email through mittera.",
})
print(data or err)package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
url := "https://api.mittera.eu/v1/emails"
payload := strings.NewReader("{
\"to\": \"hello@acme.com\",
\"from\": \"hello@company.com\",
\"subject\": \"mittera email\",
\"html\": \"<p>Send transactional and marketing email through mittera.</p>\",
\"text\": \"Send transactional and marketing email through mittera.\"
}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Bearer mt_12345")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}<?php
$ch = curl_init('https://api.mittera.eu/v1/emails');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'Authorization: Bearer mt_12345',
],
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode([
'to' => 'hello@acme.com',
'from' => 'hello@company.com',
'subject' => 'mittera email',
'html' => '<p>Send transactional and marketing email through mittera.</p>',
'text' => 'Send transactional and marketing email through mittera.',
]),
]);
$response = curl_exec($ch);
if ($response === false) {
echo 'cURL error: ' . curl_error($ch);
} else {
echo $response;
}
curl_close($ch);mittera is a self-hosted email platform that runs on top of Amazon SES. It provides a dashboard, REST API and SMTP relay so you can send transactional and marketing email from your own infrastructure.
mittera is open source under AGPL-3.0. The source is available at codeberg.org/flndrn/mittera.