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
→