From sundial-org-awesome-openclaw-skills-4
API-first email platform for AI agents. Create and manage inboxes, send/receive emails, handle workflows with webhooks. Use for agent email identity, sending emails, or replacing Gmail.
How this skill is triggered — by the user, by Claude, or both
Slash command
/sundial-org-awesome-openclaw-skills-4:agentmailThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
AgentMail is an API-first email platform designed specifically for AI agents. Unlike traditional email providers (Gmail, Outlook), AgentMail provides programmatic inboxes, usage-based pricing, high-volume sending, and real-time webhooks.
AgentMail is an API-first email platform designed specifically for AI agents. Unlike traditional email providers (Gmail, Outlook), AgentMail provides programmatic inboxes, usage-based pricing, high-volume sending, and real-time webhooks.
pip install agentmail python-dotenvAGENTMAIL_API_KEY=your_key_herefrom agentmail import AgentMail
client = AgentMail(api_key=os.getenv("AGENTMAIL_API_KEY"))
# Create inbox with custom username
inbox = client.inboxes.create(
username="spike-assistant", # Creates [email protected]
client_id="unique-identifier" # Ensures idempotency
)
print(f"Created: {inbox.inbox_id}")
client.inboxes.messages.send(
inbox_id="[email protected]",
to="[email protected]",
subject="Task completed",
text="The PDF rotation is finished. See attachment.",
html="<p>The PDF rotation is finished. <strong>See attachment.</strong></p>",
attachments=[{
"filename": "rotated.pdf",
"content": base64.b64encode(file_data).decode()
}]
)
inboxes = client.inboxes.list(limit=10)
for inbox in inboxes.inboxes:
print(f"{inbox.inbox_id} - {inbox.display_name}")
Set up webhooks to respond to incoming emails immediately:
# Register webhook endpoint
webhook = client.webhooks.create(
url="https://your-domain.com/webhook",
client_id="email-processor"
)
See WEBHOOKS.md for complete webhook setup guide including ngrok for local development.
For branded email addresses (e.g., [email protected]), upgrade to a paid plan and configure custom domains in the console.
⚠️ Risk: Incoming email webhooks expose a prompt injection vector. Anyone can email your agent inbox with instructions like:
Solution: Use a Clawdbot webhook transform to allowlist trusted senders.
~/.clawdbot/hooks/email-allowlist.ts:const ALLOWLIST = [
'[email protected]', // Your personal email
'[email protected]', // Any trusted services
];
export default function(payload: any) {
const from = payload.message?.from?.[0]?.email;
// Block if no sender or not in allowlist
if (!from || !ALLOWLIST.includes(from.toLowerCase())) {
console.log(`[email-filter] ❌ Blocked email from: ${from || 'unknown'}`);
return null; // Drop the webhook
}
console.log(`[email-filter] ✅ Allowed email from: ${from}`);
// Pass through to configured action
return {
action: 'wake',
text: `📬 Email from ${from}:\n\n${payload.message.subject}\n\n${payload.message.text}`,
deliver: true,
channel: 'slack', // or 'telegram', 'discord', etc.
to: 'channel:YOUR_CHANNEL_ID'
};
}
~/.clawdbot/clawdbot.json):{
"hooks": {
"transformsDir": "~/.clawdbot/hooks",
"mappings": [
{
"id": "agentmail",
"match": { "path": "/agentmail" },
"transform": { "module": "email-allowlist.ts" }
}
]
}
}
clawdbot gateway restartIf you want to review untrusted emails before acting:
{
"hooks": {
"mappings": [{
"id": "agentmail",
"sessionKey": "hook:email-review",
"deliver": false // Don't auto-deliver to main chat
}]
}
}
Then manually review via /sessions or a dedicated command.
scripts/send_email.py - Send emails with rich content and attachmentsscripts/check_inbox.py - Poll inbox for new messagesscripts/setup_webhook.py - Configure webhook endpoints for real-time processingnpx claudepluginhub joshuarweaver/cascade-ai-ml-agents-misc-2 --plugin sundial-org-awesome-openclaw-skills-4Sets up a secure email inbox for AI agents to receive and respond to emails via Resend webhooks, with sender allowlists and content filtering.
Gives AI Agents a dedicated mailbox to send/receive emails, distribute tasks, and communicate asynchronously. Supports ClawEmail (NetEase).
Provisions AgentMail email accounts, sends/receives messages, manages webhooks, and checks karma balance via REST API. Useful for agents that need real inboxes for signups, verification codes, or transactional email.