Your AI agent needs to send and receive email. Here's the fastest way to set that up properly — with a real inbox, a real domain, and no risk of Gmail suspending your account. This takes about 5 minutes. No DNS setup is required to get started.
What You'll Need
- A Dead Simple Email account (free — 5 inboxes, no credit card)
- Your agent code (works with any stack — Python, Node, LangChain, CrewAI, OpenClaw, etc.)
- 5 minutes
Step 1: Create Your Account and Get an API Key
Sign up at deadsimple.email. The free plan gives you 5 inboxes immediately.
In the dashboard, go to Settings → API Keys and generate a key. Copy it somewhere safe — this is what your agent uses to authenticate.
Step 2: Create an Inbox
You can do this from the dashboard or via the API. Here's the API method:
curl -X POST https://api.deadsimple.email/v1/inboxes \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"name": "my-sales-agent"}'
Response:
{
"id": "inbox_abc123",
"address": "my-sales-agent@mail.deadsimple.email",
"created_at": "2026-03-30T10:00:00Z"
}
Your agent now has an email address: my-sales-agent@mail.deadsimple.email
Want a custom domain like agent@yourcompany.com? You can add it in Settings → Domains. Takes about 10 minutes with a DNS record, but it's not required to get started.
Step 3: Send an Email
import requests response = requests.post( "https://api.deadsimple.email/v1/send", headers={"Authorization": "Bearer YOUR_API_KEY"}, json={ "from": "my-sales-agent@mail.deadsimple.email", "to": "prospect@company.com", "subject": "Quick question about your AI stack", "text": "Hey — saw you're building with LangChain...", } )
That's it. Your agent can now send email.
Step 4: Receive Email via Webhooks
Instead of polling for new messages, set up a webhook so your agent gets notified the moment something comes in.
In the dashboard: Inboxes → your inbox → Webhooks → Add webhook URL
Point it at your agent's endpoint (e.g., https://your-agent.com/webhooks/email). Every incoming email triggers a POST to that URL with the full message payload:
{
"inbox_id": "inbox_abc123",
"from": "reply@company.com",
"subject": "Re: Quick question",
"text": "Hey, yes — we're using LangChain for...",
"received_at": "2026-03-30T10:05:00Z"
}
Your agent reads the payload, decides what to do, and responds. Fully autonomous.
Step 5 (Optional): Connect via MCP
If you're building with Claude, ChatGPT, LangChain, CrewAI, or OpenClaw, you can skip the API calls entirely and connect DSE via MCP (Model Context Protocol).
Add the DSE MCP server to your agent config:
{
"mcpServers": {
"dead-simple-email": {
"url": "https://mcp.deadsimple.email",
"apiKey": "YOUR_API_KEY"
}
}
}
Your agent can now use natural language to interact with email — like "send a follow-up to everyone who opened but didn't reply" — without you writing any send/receive code.
Scaling Up
The setup above works for one agent. If you're deploying multiple agents — one per customer, for example — create a new inbox for each deployment via the API. No UI, no manual setup, no per-account OAuth flow.
# Create 10 inboxes for 10 customers for customer in customers: inbox = create_inbox(name=f"agent-{customer.id}") customer.agent_email = inbox["address"]
On the $29/mo Pro plan you get 100 inboxes. On $99/mo Scale you get 500. One API call per inbox, all managed from one account.
What You've Got Now
- A real email address for your agent
- Full send + receive via API
- Webhooks for instant notification on new messages
- No Gmail TOS risk
- No OAuth maintenance
- Scales to as many inboxes as you need
The whole thing — account, inbox, first send — takes under 5 minutes. The webhook setup adds another 5 if you haven't done it before.
For the comprehensive setup guide with SDK usage, webhook signature verification, and Flask handler examples, see Getting Started with Dead Simple Email.