Path one: put a form on your site
Build the form in the visual designer: fields, validation, conditional logic, themes, multi-step pages. Or let an AI assistant run form_create from the chat.
One click gives you a hosted page on forms.mailnix.ch, an iframe embed, or a script embed. Your site needs no backend, no database, no serverless function.
Every submission lands spam-scored, with statuses, CSV export, and per-form retention. Notification emails go to addresses you verified, immediate or as a digest.
Answer any submission from the dashboard composer with a template rendered against its fields, or over MCP. mailnix never auto-emails the person who filled in your form.
Path two: send email from your app
Attach AWS SES, Postmark, Resend, SendGrid, Mailgun, or your webhoster's SMTP from a preset. New destinations start in sandbox mode: sends are captured, not relayed.
We hand you the exact SPF and DKIM records to publish. Recheck from the dashboard or MCP until the status flips to verified.
POST /v1/messages returns a trace_id immediately. Templates, idempotency keys, scheduled sends, and attachments ride the same endpoint. Promote the destination to live when you're ready.
Routing rules pick the destination by from-domain, environment, or metadata. If the primary errors, the failover chain promotes the next destination automatically.
Each send has a public-shareable trace. Outbound webhooks fire on delivered, bounced, complained, and failed, HMAC-signed with durable retry. One suppression list is enforced at send time across every destination.
Three doors, one product
MCP
An MCP server with 104 verb-noun tools. One call bootstraps a working bearer and a sandbox project with no signup; account_claim keeps the same token when you go live. Works in Claude, ChatGPT, and Cursor.
REST
POST /v1/messages is a drop-in for the SendGrid, Postmark, and SES envelope shape. Swap the base URL and the bearer, keep your code, get a trace ID back.
BROWSER
Publishable mnxpub_ keys send straight from the page, gated server-side by origin lock, locked From, and rate caps. Form submissions need no key at all: the public endpoint is gated by an origin allowlist.
Under the hood
EVERY SEND
The request is validated and the recipient checked against the suppression list. Routing rules (or your destination_id) pick the destination; the provider attempt is recorded on the trace, and failures hand off to the failover chain. Provider delivery, bounce, and complaint webhooks append to the trace; your outbound webhooks fire after.
EVERY SUBMISSION
The Origin header is checked against the form's allowlist and sliding-window rate caps. Honeypot, fill-time, and spam scoring run on ingest: spam-folded entries never email you. Clean submissions land in the inbox and notify your verified addresses. Replies are per-submission, audited, and locked to the submitter's captured address.
What people ship with it
01
Contact, booking, signup, application. Design it, publish it, paste the embed. The submissions are stored, scored, and answerable, not just forwarded to your inbox.
02
Receipts, resets, invites through the provider you choose. When a customer says the email never arrived, support pastes the trace URL instead of opening a ticket with engineering.
03
Claude, ChatGPT, or Cursor connects to the MCP server, gets a sandbox without a signup, builds the form, wires the provider, and hands you the finished setup to claim.
One HTTP call to get started