К основному содержанию
скилл Claude Code CX Codex Cursor GitHub Copilot

cloudflare-email-service — скилл для Claude: почта на Cloudflare

Скилл для работы с Cloudflare Email Sending и Email Routing: помогает настроить отправку и приём писем в Workers.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add cloudflare/skills --skill cloudflare-email-service -a claude-code
Открыть на GitHub

Что делает cloudflare-email-service

Скилл ведёт агента по задачам Cloudflare Email Service: отправка транзакционных писем из Worker, приём и разбор входящих через Email Routing, настройка домена. Внутри — карта ссылок на документацию, таблица типовых ошибок и порядок проверки перед первым запуском.

Автор настаивает на одном правиле: сначала получать актуальные данные из источников, а не полагаться на память модели. Продукт запущен в 2025 году и быстро меняется, поэтому в скилле прописаны источники — документация Cloudflare, спецификация REST API, @cloudflare/workers-types и репозиторий Agents SDK. При расхождении приоритет у первоисточника.

Перед кодом скилл просит проверить три вещи: домен подключён к отправке (npx wrangler email sending list), в wrangler.jsonc есть биндинг send_email, а для приёма писем установлен postal-mime. Отдельно разобраны грабли: message.raw читается один раз, домен в from должен быть подтверждён, а для рассылок этот сервис не подходит. Ставьте, если пишете почтовую логику на Cloudflare; для разового письма из скрипта хватит REST API без скилла.

Какие задачи решает

  • отправить транзакционное письмо из Cloudflare Worker
  • настроить приём и разбор входящих писем через Email Routing
  • подключить домен к Email Sending и проверить его статус
  • починить ошибки в конфиге биндинга или в схеме REST-запроса
  • разобраться с доставляемостью и попаданием в спам

Примеры запросов агенту

  • Настрой отправку писем из Worker через Cloudflare Email Service
  • Почему письмо не уходит: проверь биндинг send_email в wrangler.jsonc
  • Сделай обработчик входящих писем с разбором через postal-mime

Как установить cloudflare-email-service

1Через Skills CLI (Vercel)

npx skills add cloudflare/skills --skill cloudflare-email-service -a claude-code

2Вручную: положить файлы

~/.claude/skills/cloudflare-email-service/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/cloudflare-email-service/

Из того же набора13

Весь набор →
cloudflare cloudflare Помогает агенту подбирать сервисы Cloudflare под задачи проекта, от хостинга до очередей и AI, и выбирать между CLI cf и Wrangler. Claude Code CX Codex Cursor +1 136 500установок wrangler cloudflare Помогает запускать команды Wrangler CLI, настраивать конфигурации и отлаживать деплой Cloudflare Workers в существующих проектах. Claude Code CX Codex Cursor +1 128 500установок workers-best-practices cloudflare Скилл настраивает ИИ на проверку продакшен-кода Cloudflare Workers по актуальным правилам рантайма, типам Wrangler и антипаттернам. Claude Code CX Codex Cursor +1 124 900установок durable-objects cloudflare Скилл помогает создавать, отлаживать и проверять Cloudflare Durable Objects для состояния, координации и постоянных соединений. Claude Code CX Codex Cursor +1 109 700установок web-perf cloudflare Пошаговый аудит Core Web Vitals, диагностика медленной загрузки и поиск блокирующих скриптов прямо в терминале. Claude Code CX Codex Cursor +1 109 300установок agents-sdk cloudflare Помогает создавать, отлаживать и проверять приложения на базе Cloudflare Agents SDK и пакета agents с актуальной документацией. Claude Code CX Codex Cursor +1 105 700установок cloudflare-one cloudflare Помогает агенту проектировать, настраивать и разбирать развёртывания Cloudflare One Zero Trust и SASE. Пригодится, когда нужно спланировать Access, Gateway или туннели без похода в документацию вручную. Claude Code CX Codex Cursor +1 92 200установок turnstile-spin cloudflare Настраивает защиту от ботов Cloudflare Turnstile во фронтенде и бэкенде: добавляет виджет, прописывает проверку siteverify и проверяет токены API. Claude Code CX Codex Cursor +1 92 200установок

Похожие

Вопросы о cloudflare-email-service

Как установить cloudflare-email-service в Claude?

Выполните npx skills add cloudflare/skills --skill cloudflare-email-service -a claude-code. Файл скилла окажется в ~/.claude/skills/cloudflare-email-service/SKILL.md.

Что делает cloudflare-email-service?

Помогает агенту писать и отлаживать код для Cloudflare Email Sending и Email Routing: отправка писем, приём входящих, настройка домена и доставляемость.

Что нужно подготовить до первого запуска?

Подключённый к отправке домен, биндинг send_email в wrangler.jsonc и пакет postal-mime, если планируете принимать письма.

Исходный текст

SKILL.md · Apache-2.0
---
name: cloudflare-email-service
description: Implement or troubleshoot Cloudflare Email Sending and Email Routing integrations and their delivery configuration.
---

# Cloudflare Email Service

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.

## Retrieval Sources

| 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](https://developers.cloudflare.com/agents/examples/email-agent/index.md) | Email handling in Agents SDK |

## FIRST: Check Prerequisites

Before writing any email code, verify the basics are in place:

1. **Domain onboarded?** Run `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](references/cli-and-mcp.md) for full setup instructions.
2. **Binding configured?** Look for `send_email` in `wrangler.jsonc` (for Workers)
3. **postal-mime installed?** Run `npm ls postal-mime` (only needed for receiving/parsing emails)

## What Do You Need?

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](references/sending.md) |
| **Send emails from an AI agent built with [Cloudflare Agents SDK](https://developers.cloudflare.com/agents/index.md)** | `onEmail()` + `replyToEmail()` in Agent class | [sending.md](references/sending.md) |
| **Send emails from an external app or agent** (Node.js, Go, Python, etc.) | REST API with Bearer token | [rest-api.md](references/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](references/cli-and-mcp.md) |
| **Receive and process incoming emails** (Email Routing) | Workers `email()` handler | [routing.md](references/routing.md) |
| **Set up Email Sending or Email Routing** | `wrangler email sending enable` / `wrangler email routing enable`, or Dashboard | [cli-and-mcp.md](references/cli-and-mcp.md) |
| **Improve deliverability, avoid spam folders** | Authentication, content, compliance | [deliverability.md](references/deliverability.md) |

## Sending Workflow

Prefer the binding for Workers; use REST for external apps or when explicitly requested. Read [sending.md](references/sending.md) or [rest-api.md](references/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.

## Common Mistakes

| 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 [email protected]` 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 `[email protected]` |
| 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 |

## References

Read the reference that matches your situation. You don't need all of them.

- **[references/sending.md](references/sending.md)** — Documentation map for Workers binding, attachments, and Agents SDK email.
- **[references/rest-api.md](references/rest-api.md)** — Documentation map for HTTP sending, request schemas, responses, and errors.
- **[references/routing.md](references/routing.md)** — Inbound `email()` handler, forwarding, replying, parsing. For receiving emails.
- **[references/cli-and-mcp.md](references/cli-and-mcp.md)** — Domain setup, wrangler commands, MCP tools. For first-time setup.
- **[references/deliverability.md](references/deliverability.md)** — SPF/DKIM/DMARC, bounces, suppressions, best practices.

© cloudflare · Apache-2.0 · cloudflare/skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой