Cloudflare Email Service
hodgef/apiker
Send and receive transactional emails with Cloudflare Email Service (Email Sending + Email Routing).
Implement or troubleshoot Cloudflare Email Sending and Email Routing integrations and their delivery configuration.
$ npx skills add cloudflare/skills --skill cloudflare-email-service -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install cloudflare/skills cloudflare-email-service --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/cloudflare/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/cloudflare-email-service .claude/skills/cloudflare-email-service && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "cloudflare-email-service" agent skill from https://github.com/cloudflare/skills/tree/main/skills/cloudflare-email-service into .claude/skills/cloudflare-email-service/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cloudflare-email-service", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/cloudflare/skills/tree/main/skills/cloudflare-email-serviceType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add cloudflare/skills --skill cloudflare-email-service -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install cloudflare/skills cloudflare-email-service --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cloudflare/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/cloudflare-email-service .agents/skills/cloudflare-email-service && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "cloudflare-email-service" agent skill from https://github.com/cloudflare/skills/tree/main/skills/cloudflare-email-service into .agents/skills/cloudflare-email-service/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cloudflare-email-service", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add cloudflare/skills --skill cloudflare-email-service -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install cloudflare/skills cloudflare-email-service --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cloudflare/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/cloudflare-email-service .cursor/skills/cloudflare-email-service && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "cloudflare-email-service" agent skill from https://github.com/cloudflare/skills/tree/main/skills/cloudflare-email-service into .cursor/skills/cloudflare-email-service/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cloudflare-email-service", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/cloudflare/skills.git --path skills/cloudflare-email-service--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add cloudflare/skills --skill cloudflare-email-service -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install cloudflare/skills cloudflare-email-service --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cloudflare/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/cloudflare-email-service .gemini/skills/cloudflare-email-service && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "cloudflare-email-service" agent skill from https://github.com/cloudflare/skills/tree/main/skills/cloudflare-email-service into .gemini/skills/cloudflare-email-service/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cloudflare-email-service", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install cloudflare/skills cloudflare-email-serviceInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add cloudflare/skills --skill cloudflare-email-service -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/cloudflare/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/cloudflare-email-service .github/skills/cloudflare-email-service && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "cloudflare-email-service" agent skill from https://github.com/cloudflare/skills/tree/main/skills/cloudflare-email-service into .github/skills/cloudflare-email-service/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cloudflare-email-service", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add cloudflare/skills --skill cloudflare-email-service -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install cloudflare/skills cloudflare-email-service --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cloudflare/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/cloudflare-email-service .opencode/skills/cloudflare-email-service && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "cloudflare-email-service" agent skill from https://github.com/cloudflare/skills/tree/main/skills/cloudflare-email-service into .opencode/skills/cloudflare-email-service/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cloudflare-email-service", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
cloudflare-email-serviceImplement or troubleshoot Cloudflare Email Sending and Email Routing integrations and their delivery configuration.
Cloudflare Email Service is an agent skill from cloudflare/skills, published by the product's own GitHub organization. Implement or troubleshoot Cloudflare Email Sending and Email Routing integrations and their delivery configuration.
Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including reference files (for example `references/cli-and-mcp.md`, `references/deliverability.md` and `references/rest-api.md`).
It sits in Backend & APIs, covering Transactional email. It works with Cloudflare, Cloudflare Workers and Model Context Protocol. The repository describes itself as: Skills for teaching agents how to build on Cloudflare. The licence is Apache-2.0.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 41e0d19. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
wranglernpxnpmFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
developers.cloudflare.comnpmjs.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Cloudflare Email Service loads about 1.7k tokens when it runs, and up to ~7.9k if it reads all its reference files. Until then it costs about 35 tokens; SKILL.md has 748 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from cloudflare/skills at commit 41e0d19, republished under its Apache-2.0 licence (© cloudflare). 748 words, ~1,651 tokens.
.claude/skills/cloudflare-email-service/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.Your knowledge of the Cloudflare Email Service, Email Routing or Email Sending may be outdated. Prefer retrieval over pre-training for any Cloudflare Email Service task.
Cloudflare Email Service lets you send transactional emails and route incoming emails, all within the Cloudflare platform. Your knowledge of this product may be outdated — it launched in 2025 and is evolving rapidly. Prefer retrieval over pre-training for any Email Service task.
If there is any discrepancy between this skill and the sources below, always trust the original source. The Cloudflare docs, REST API spec, @cloudflare/workers-types, and Agents SDK repo are the source of truth. This skill is a convenience guide — it may lag behind the latest changes. When in doubt, retrieve from the sources below and use what they say.
| Source | How to retrieve | Use for |
|---|---|---|
| Cloudflare docs | Cloudflare MCP docs tool or URL https://developers.cloudflare.com/email-service/index.md | API reference, limits, pricing, latest features |
| REST API spec | https://developers.cloudflare.com/api/resources/email_sending/index.md | OpenAPI spec for the Email Sending REST API |
| Workers types | https://www.npmjs.com/package/@cloudflare/workers-types | Type signatures, binding shapes |
| Agents SDK docs | Email agent walkthrough | Email handling in Agents SDK |
Before writing any email code, verify the basics are in place:
npx wrangler email sending list to see which domains have email sending enabled. If the domain isn't listed, run npx wrangler email sending enable userdomain.com or see cli-and-mcp.md for full setup instructions.send_email in wrangler.jsonc (for Workers)npm ls postal-mime (only needed for receiving/parsing emails)Start here. Find your situation, then follow the link for full details.
| I want to... | Path | Reference |
|---|---|---|
| Send emails from a Cloudflare Worker | Workers binding (no API keys needed) | sending.md |
| Send emails from an AI agent built with Cloudflare Agents SDK | onEmail() + replyToEmail() in Agent class | sending.md |
| Send emails from an external app or agent (Node.js, Go, Python, etc.) | REST API with Bearer token | rest-api.md |
| Send emails from a coding agent (Claude Code, Cursor, Copilot, etc.) | MCP tools, wrangler CLI, or REST API | cli-and-mcp.md |
| Receive and process incoming emails (Email Routing) | Workers email() handler | routing.md |
| Set up Email Sending or Email Routing | wrangler email sending enable / wrangler email routing enable, or Dashboard | cli-and-mcp.md |
| Improve deliverability, avoid spam folders | Authentication, content, compliance | deliverability.md |
Prefer the binding for Workers; use REST for external apps or when explicitly requested. Read sending.md or rest-api.md to retrieve the documentation for the selected task before writing code. These guides cover setup, recipients, attachments, headers, limits, response handling, and errors; the Workers guide also covers Agents SDK integration and types matched to the project configuration.
| Mistake | Why It Happens | Fix |
|---|---|---|
Forgetting send_email binding in wrangler config | Email Service uses a binding, not an API key | Add "send_email": [{ "name": "EMAIL" }] to wrangler.jsonc |
| Sending from an unverified domain | Domain must be onboarded onto Email Sending before first send | Run wrangler email sending enable yourdomain.com or onboard in Dashboard |
Reading message.raw twice in email handler | The raw stream is single-use — second read returns empty | Buffer first: const raw = await new Response(message.raw).arrayBuffer() |
Missing text field (HTML only) | Some email clients only show plain text; also helps spam scores | Always include both html and text versions |
| Using email for marketing/bulk sends | Email Service is for transactional email only | Use a dedicated marketing email platform for newsletters and campaigns |
| Forwarding to unverified destinations | message.forward() only works with verified addresses | Run wrangler email routing addresses create user@gmail.com or add in Dashboard |
| Testing with fake addresses | Bounces from non-existent addresses hurt sender reputation | Use real addresses you control during development |
| Hardcoding API tokens in source code | Tokens in code get committed and leaked | Use environment variables or Cloudflare secrets |
Ignoring the from domain requirement | The from address must use a domain onboarded to Email Service | Verify the domain first, then send from anything@that-domain.com |
Using email key in REST API from object | REST API uses address not email for from object | Use { "address": "...", "name": "..." } for REST, { "email": "...", "name": "..." } for Workers |
Using replyTo in REST API | REST API uses snake_case field names | Use reply_to for REST API, replyTo for Workers binding |
Read the reference that matches your situation. You don't need all of them.
email() handler, forwarding, replying, parsing. For receiving emails.© cloudflare, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 5 other files (references) in skills/cloudflare-email-service of cloudflare/skills.
Open the folder on GitHubat commit 41e0d19
We found 3 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 3 other GitHub owners. This page covers the copy in cloudflare/skills, which our catalogue first saw on October 7, 2026.
Cloudflare Email Service next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Cloudflare Email Service this skillcloudflare/skills | 3k | 3 repos | ~1.7k | Automated safety check: Pass | Apache-2.0 | |
| Cloudflare Email Servicehodgef/apiker | 127 | 3 repos | ~2k | Automated safety check: Pass | MIT | |
| Prepare Cloudflare Production DeploymentLubomirGeorgiev/cloudflare-workers-nextjs-saas-template | 786 | — | ~5.9k | Automated safety check: Notes | MIT | |
| Agents SDKhodgef/apiker | 127 | 3 repos | ~3k | Automated safety check: Pass | MIT | |
| Cloudflare Email Serviceswyxio/skills | 175 | — | ~684 | Automated safety check: Pass | MIT | |
| Building MCP Server On CloudflareCommandCodeAI/agent-skills | 132 | — | ~1.5k | Automated safety check: Pass | MIT |
hodgef/apiker
Send and receive transactional emails with Cloudflare Email Service (Email Sending + Email Routing).
LubomirGeorgiev/cloudflare-workers-nextjs-saas-template
Source-of-truth runbook for preparing this Vinext Cloudflare Workers SaaS template for production deployment.
hodgef/apiker
Build AI agents on Cloudflare Workers using the Agents SDK. An agent skill from hodgef/apiker.
swyxio/skills
Implement or debug Cloudflare Email Service sending, Email Routing, or an Agents SDK email handler.
CommandCodeAI/agent-skills
Builds remote MCP (Model Context Protocol) servers on Cloudflare Workers with tools, OAuth authentication, and production deployment.
secondsky/claude-skills
Build AI agents on Cloudflare Workers with MCP integration, tool use, and LLM providers.
cloudflare/skills
Set up, repair, or migrate to Cloudflare Turnstile bot verification in an existing frontend and backend, including server-side Siteverify.
cloudflare/skills
Build, migrate, and deploy Next.js apps on Cloudflare Workers with vinext.
cloudflare/skills
Build, debug, or review Cloudflare Agents SDK applications using the agents package.
cloudflare/skills
Build, debug, or review Cloudflare Durable Objects code for persistent state and coordination.
cloudflare/skills
Build or maintain Cloudflare Sandbox apps on @cloudflare/sandbox@next (SDK 1.0 preview).
cloudflare/skills
Assess and plan migrations from existing VPN, SWG, or SASE platforms to Cloudflare One, including policy mapping, parity gaps, and rollout.
Categories
Implement or troubleshoot Cloudflare Email Sending and Email Routing integrations and their delivery configuration. Cloudflare Email Service is an agent skill from cloudflare/skills, published by the product's own GitHub organization. Implement or troubleshoot Cloudflare Email Sending and Email Routing integrations and their delivery configuration.
Cloudflare Email Service fits situations like: tasks that involve Transactional email.
Run `npx skills add cloudflare/skills --skill cloudflare-email-service -a claude-code`. Or copy the skill folder (skills/cloudflare-email-service in cloudflare/skills) into .claude/skills/cloudflare-email-service in your project. Claude Code loads it when a task matches its description.
Run `npx skills add cloudflare/skills --skill cloudflare-email-service -a codex`. Or copy the skill folder (skills/cloudflare-email-service in cloudflare/skills) into .agents/skills/cloudflare-email-service in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add cloudflare/skills --skill cloudflare-email-service -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cloudflare-email-service, .gemini/skills/cloudflare-email-service, .github/skills/cloudflare-email-service and .opencode/skills/cloudflare-email-service in your project.
Going by SKILL.md and its folder, Cloudflare Email Service needs the command-line tools its instructions call (wrangler, npx and npm). Our summary lists: Node.js.
SKILL.md names 2 domains. In commands or code: developers.cloudflare.com and npmjs.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Cloudflare Email Service is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.7k tokens (SKILL.md is roughly 6.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 6.3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Cloudflare Email Service: Cloudflare Email Service (hodgef/apiker, 127 stars), Prepare Cloudflare Production Deployment (LubomirGeorgiev/cloudflare-workers-nextjs-saas-template, 786 stars), Agents SDK (hodgef/apiker, 127 stars) and Cloudflare Email Service (swyxio/skills, 175 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
cloudflare (a GitHub organization, an official publisher) maintains it in cloudflare/skills, which has 3,004 GitHub stars. The repository holds 16 skills in this directory. The repository was last updated on October 1, 2026.
Source: cloudflare/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.