e2a-integrate

A software integration guide for adding e2a email features to an application. It covers sending email, receiving signed webhooks, polling an API, and using the official TypeScript, Python, or REST interfaces.

In plain words
What is it for?
Use it to add outbound email, inbound webhook handling, REST polling, or an e2a SDK adapter with tests and application-specific configuration.
Why use it?
It helps keep email credentials and webhook secrets on the server and prevents e2a calls from being scattered throughout the codebase. It adapts the integration to the application's language and framework.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/tokencanopy/e2a/e2a-integrate
Any agent
npx skills add tokencanopy/e2a --skill e2a-integrate
Clone the repo
git clone --depth 1 https://github.com/tokencanopy/e2a

Made for: Claude Code, Codex.

Per session 68 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 667 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00068 $0.00667
Opus 5 $0.00034 $0.00333
Sonnet 5 $0.00014 $0.00133
Haiku 4.5 $0.00007 $0.00067

Measured 2d ago against content hash 99f9199fc0de, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

e2a-integrate scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/e2a/skills/e2a-integrate/SKILL.md · 69 lines

How it starts

The opening of the file, as written. The whole thing — 69 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Integrate e2a into an application

Determine the integration mode

Identify whether the request needs outbound sending, inbound signed webhooks, REST polling, or a combined flow. Ask only when the send/receive intent is materially ambiguous. Read integration-modes.md for the decision table.

Inspect the existing codebase

Find the language, framework, package manager, configuration conventions, server entry point, persistence layer, and test runner. Preserve the existing module, dependency, and test conventions. Do not create production credentials or put live addresses in fixtures.

Select the supported client surface

Use the official TypeScript/JavaScript or Python SDK when the application uses one of those languages; use REST and the OpenAPI contract for every other server language. Never invent an SDK or an unofficial wrapper. Read sdk-recipes.md or rest-openapi.md for the selected surface.

Build one application boundary

Add one application-owned e2a adapter boundary. Keep routes, domain logic, and workers dependent on that boundary rather than calling e2a throughout the application. Define server-only credential and webhook-secret configuration; never expose either to browser code, client bundles, logs, or test fixtures.

Make retried writes idempotent with a stable key derived from the application's logical operation. Treat accepted, scheduled, and pending_review as durable acceptance states; a send in any of these states must not be resent or retried. Durable acceptance is not terminal delivery. Observe eventual delivery through the application's requested webhook, event-log, or polling flow, and handle failed outcomes through its existing error and job conventions.

Secure inbound webhooks

For a webhook integration, retain the raw request bytes and perform signature verification before JSON parsing or dispatch. Deduplicate at-least-once events by event ID in durable application state when it is available, then make the handler's side effects idempotent. Follow webhooks-and-tests.md for framework-safe verification and recovery details.

Read the full file on GitHub · 69 lines

Files

What ships with it

4 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 69 lines · 68 tokens per session scan A 99f9199fc0de

Subscribe to this mod's changes

e2a-integrate is a skill published in the GitHub repository tokencanopy/e2a (184 stars, last pushed 2d ago), licensed Apache-2.0. It adds 68 tokens to every session and 667 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

commune-email

I give you a real email inbox and let you send, receive, search, and manage email threads programmatically via the Commune API. Every inbox I create is RFC 5322 compliant — replies thread correctly in any email client, including Gmail, Apple Mail, and Outlook.

black22345/commune-cookbook · 0 tokens

commune-sms

I give you a real phone number and let you send and receive SMS messages programmatically via the Commune API. You can send texts to any number, read conversation threads, and list all your SMS conversations — all from within your OpenClaw agent.

black22345/commune-cookbook · 0 tokens

commune-agent-network

Requires COMMUNEAPIKEY environment variable. Get one at commune.email.

black22345/commune-cookbook · 0 tokens

shipmail

Operate Shipmail custom-domain business email, agent inboxes, calendars, booking pages, newsletters, webhooks, and related account resources through the Shipmail MCP server. Use when the user asks to read or triage a Shipmail inbox, draft or send email, reply to a message or thread, manage a mailbox or domain, check…

shipmail-to/shipmail-mcp · 82 tokens

skills

Email API for AI agents. Create inboxes, send/receive email, manage threads and webhooks.

deadsimple-email/deadsimple-email · 0 tokens

clawaimail

Email infrastructure for AI agents — create inboxes, send and receive real emails, search messages, manage threads. Alternative to AgentMail with MCP server, REST API, webhooks, and WebSocket streaming.

joansongjr/clawaimail · 46 tokens