Blog

Notes on email, agents, and the space in between.

Tutorials, protocol deep-dives, and product updates from the team.

September 7, 2026 · 3 min read

Your agent can't tell who sent that email

The From line is a claim, not a fact - and a support agent that trusts it will hand order data and refunds to anyone who types the right name. How e2a attaches SPF, DKIM, and aligned DMARC evidence to every inbound message (header_from, envelope_from, verified_domain) so agents route on proof instead of text.

September 6, 2026 · 3 min read

Anyone in the world can put text in front of your agent's model for the price of an email

Inbound email is untrusted input the whole internet can write - and a prime indirect prompt-injection vector for agents that act on what they read. How e2a screens message content (heuristics + optional LLM detector, allow / review / block, fail-safe to review) before your agent ever sees it.

September 5, 2026 · 3 min read

Your agent's inbox is storage, not transport

An agent that polls its inbox every 30 minutes is checking a PO box. Inbound mail should push to the agent wherever it runs - signed webhooks, WebSocket with no public URL, REST polling, and MCP - without a deployment project first.

September 4, 2026 · 3 min read

Your approval gate shouldn't live in your agent's code

Most teams put the human-approval checkpoint in their own application code, where it only holds for the code paths that remember to call it. Where the gate should live instead: the email API boundary.

August 8, 2026 · 5 min read

Build a procurement agent that coordinates with vendors

Connect vendor email to purchase-order context, extract updates, follow up on missing information, and hold commitments for human approval.

August 8, 2026 · 5 min read

Build a voice follow-up agent with email

Turn a completed voice call into an authenticated email follow-up, receive replies, preserve call context, and route commitments through approval.

August 8, 2026 · 6 min read

Build a recruiting agent that coordinates candidates by email

Connect a recruiting agent to candidate email, ATS and calendar context, interview coordination, and human approval for high-impact messages.

August 8, 2026 · 6 min read

Build a sales follow-up agent with authenticated email

Give a sales agent its own inbox, connect replies to CRM context, send personalized follow-ups, and add a human approval step for sensitive outreach.

August 8, 2026 · 6 min read

Build an e-commerce agent that handles order email

Connect an AI agent to customer order email: look up order context, answer delivery questions, keep replies threaded, and hold refunds for human approval.

April 27, 2026 · 7 min read

Give your Google ADK agent an email inbox (with conversation memory)

Wire a Google Agent Development Kit agent to a real email address. HMAC-verified webhooks, multi-turn memory across email replies via the conversation_id ↔ ADK session_id binding, ~30 lines of business logic. Full runnable example included.

April 24, 2026 · 6 min read

Human-in-the-loop: approve before your agent hits send

Per-agent approval for outbound AI email. Flip one switch; the next time your agent tries to send, you get a notification with approve / reject buttons. Review in the dashboard, CLI, or straight from your inbox.

April 19, 2026 · 5 min read

Give your OpenClaw agent an email address (with real-time WebSocket delivery)

OpenClaw runs locally, so by default it has no public inbox. This tutorial wires it to a real email address via e2a — WebSocket delivery, no public URL, under 5 minutes.

April 13, 2026 · 5 min read

Send real email from a Python AI agent in 20 lines

A minimal walkthrough: give your Python agent an email address, send verified mail, receive replies via webhook or WebSocket, and thread the whole conversation.