GitHub

Mailyard

Self-hosted email delivery for developers. Transactional sending over HTTP or SMTP, templates, campaigns, inbound mail, and a console that shows what happened to every message. One Go binary and a PostgreSQL.

# single binary# PostgreSQL# REST + SMTP# multi-tenant# BUSL 1.1
Features

Everything in one binary

Transactional sending
POST /api/v1/emails/send or plain SMTP submission on 587 with an API key as the password. Single, template, batch and scheduled sends, attachments, a delivery log per message.
Templates and campaigns
Versioned templates with per-language localizations, CSS inlining and preview. Campaigns over static or dynamic subscriber lists, A/B variants, throttling, hosted one-click unsubscribe.
Your own delivery
Per-project SMTP servers in named groups with failover, SES as a provider, verified sender domains with DKIM, bounce handling that feeds the suppression list.
Inbound on your domains
Point MX at the host, claim a domain with a DNS TXT record, and received mail is stored per project and delivered as webhooks.
Multi-tenant by design
Projects with their own roles and permissions, members and invitations, usage plans with volume limits, per-project usage and analytics.
One binary
Go and PostgreSQL. The binary carries the console, this documentation and its own migrations. Local sign-in with passkeys and TOTP, or OIDC. Prometheus metrics, structured logs, signed webhooks.
All sections

Browse the manual

Getting Started
Standing an instance up: installation, configuration, the first send, the API surfaces, and running more than one node
API Reference
Every endpoint of /api/v1, rendered from the running binary's own OpenAPI description. Authenticate with an API key.
Email Sending
Single, template, batch and scheduled sends, attachments, delivery status, the email log, address verification, and the sandbox
Templates
Versioning, localization, stylesheets, preview and test sends, import and export, system variables
Subscribers
Subscriber records, bulk import, static and dynamic lists
Campaigns
Bulk sending over a subscriber list, throttling, A/B testing
SMTP and Domains
Per-project servers, named groups with failover, domain verification, approved sender addresses, relay nodes, SES, bounce handling
Security
Sign-in, API keys, SMTP submission credentials, passkeys, two-factor auth, rate limits, sessions
Contacts and Suppression
Delivery tallies per address, bounce handling, the suppression list, unsubscribe lists
Tracking and Engagement
Open pixel, click redirects, hosted unsubscribe
Webhooks and Events
Event types, delivery tracking, the audit log
Inbound Email
The MX listener, receiving mail on a verified domain, and managing what arrives
Analytics and Monitoring
Dashboard figures, delivery trends, Prometheus metrics, health probes
Projects
Multi-tenancy, roles and permissions, members and invitations, per-project settings
Admin Panel
Accounts, platform settings and metrics, the shared SMTP pool, scheduled jobs, identity providers, plans, system mail, certificates
Data
Project export and per-address or bulk erasure