MySendboxEmail for apps and AI agents
Email for your app,
and inboxes for your AI agents.
Send receipts, sign-in codes and notifications from your app through one API, on your own domain. Give your AI agent its own email address: every message is screened, and anything risky waits for a person to approve.
01Products
Two ways to send. One verified domain, one place to watch delivery.
Transactional email from your app
Order confirmations, receipts, password resets, sign-in codes and account notifications, sent the moment a customer does something. Templates, delivery events, webhooks and a searchable log.
How Dispatch workscurl https://api.mysendbox.com/v1/emails \
-H "Authorization: Bearer msb_live_…" \
-d '{
"from": "Acme <billing@acme.example>",
"to": ["jane@example.com"],
"subject": "Your receipt #A-2291",
"html": "<p>Thanks for your payment.</p>"
}'
An inbox your AI agent answers
A support@ or bookings@ address on your domain, answered by our agent with your tools, or by your own agent over MCP. Every message is checked both ways, and anything risky waits for a person.
How agents work02Dispatch
Transactional email your app can count on.
One API call sends a receipt, a password reset or a sign-in code from your own domain. Every message is logged with its delivery events, and bounces never get a second try.
const res = await fetch("https://api.mysendbox.com/v1/emails", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.MYSENDBOX_API_KEY}`,
"Content-Type": "application/json",
"Idempotency-Key": `receipt-${order.id}`,
},
body: JSON.stringify({
from: "Acme <billing@acme.example>",
to: [order.email],
template: {
id: "receipt",
variables: { name: order.name, total: order.total },
},
}),
});
const { id } = await res.json(); // "em_01m61…", 202 Accepted
email.sent em_01m61… billing@acme.example → jane@example.com
email.delivered em_01m61… 250 OK
email.bounced em_01m62… 550 5.1.1 user unknown · address suppressed
-
Your domain, verified
Send from billing@ or hello@ on your own domain, signed with DKIM and aligned for DMARC. We check your DNS records every few hours and tell you if they drift.
-
Templates with variables
Keep email content out of your code. Versioned templates with
{{variables}}, escaped for HTML, with a live preview and test sends in the dashboard. -
Safe to retry
Send with an
Idempotency-Keyand a retried request never sends twice. Schedule up to 72 hours ahead and cancel before it goes. -
Every event, in your app
Signed webhooks for sent, delivered, bounced and complained, and a searchable log with each message's timeline, HTML preview and headers.
-
Bounces handled for you
Hard bounces, spam complaints and opt-outs are suppressed automatically, so your sender reputation stays clean without extra code.
-
Familiar shape
Batches of up to 100, attachments up to 10 MB, cc, bcc and reply-to, and field names you already know if you've used Resend.
For mail a customer triggered or expects. Newsletters and promotions aren't sent through the API (see our acceptable use policy).
03Agents
Your customers write in. Your agent answers, within your rules.
-
01
Someone emails your agent
A customer writes to your agent's address, such as support@ or bookings@ on your own domain.
-
02
The agent prepares a reply
It answers the question, confirms the booking, or takes the next step through the tools you connect.
-
03
Both directions are screened
Incoming mail is checked for phishing and manipulation; outgoing replies for leaks and policy breaks.
-
04
You decide what it may send
Drafts only, approval on every reply, or routine replies on their own. Anything risky waits for you.
Or bring your own agent.
Already working in Claude, ChatGPT, Cursor or your own code? Connect it to a MySendbox mailbox over MCP. It reads, searches and replies with the same screening, approvals and limits.
Connect over MCP