Brevo/SES-class ESP with embedded MTA. Transactional + marketing, DNS authentication, suppressions, bounce categories, webhooks, and Filament admin — with KumoMTA embedded under mta/.
Queue-backed sends with retries, campaign dispatch jobs, tracking pixels/links, and one-click unsubscribe — patterns familiar from Brevo.
DNS auth status, reputation rollups, bounce categories (hard/soft/complaint/block), content spam heuristics, and SES-style suppressions.
KumoMTA lives in mta/ (Docker Compose). Laravel on :8080, Kumo API on :8000, SMTP on :2525 — no self-deadlock.
Brevo-style product split without two vendors: API-triggered messages for product email, list-based campaigns for newsletters — shared domains, suppressions, and reputation.
POST /api/v1/send sync or async: trueSendMessageJobIllustrative tiers for product marketing — wire Stripe/billing later. You already own the MTA capacity.
Local / single-node. Filament admin, 1 domain, embedded MTA.
Multi-domain warmup, webhooks, priority deliverability playbooks.
Dedicated IPs, multi-node Kumo, SLA — talk to your ops team.
*Limits are soft placeholders; real capacity follows your host, IP reputation, and KumoMTA config.
Authenticate with a Filament-issued API token. Full OpenAPI lives at /docs/api. Official SDKs (PHP + JS/TS + MCP) ship under sdk/ in the repo — see sdk/README.md.
POST /api/v1/verify recipient validationGET /api/v1/messages/{uuid} · /eventsPOST /api/v1/inbound MIME parse → webhook JSONsdk/php (mailforge/sdk) · sdk/js (@mailforge/sdk) · sdk/mcp (@mailforge/mcp)Per-domain SPF, DKIM keygen + export to mta/policy, DMARC policy, optional BIMI and tracking CNAME — verified from Filament.
7-day bounce & complaint rates, category mix, suppressions from FBL/bounces — SES-style health bands in Deliverability Center.
Pre-send spam heuristics with live HTML preview. Marketing campaigns gated until you fix hard blockers or override.