cloudflare-email-service

Send and receive transactional emails using Cloudflare Email Service bindings, REST API, and Email Routing.

Updated Jul 29, 2026
One-click install
npx skills add https://github.com/zomeru/zomlab --skill cloudflare-email-service-zomeru
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: cloudflare-email-service
Source: https://github.com/zomeru/zomlab/tree/main/.agents/skills/cloudflare-email-service
Command: npx skills add https://github.com/zomeru/zomlab --skill cloudflare-email-service-zomeru

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires postal-mime, mimetext, agents, and includes references (resource) components.

What problem does it solve? Adding transactional email to an application requires navigating Cloudflare Email Service setup, domain onboarding, binding configuration, and deliverability rules, and outdated knowledge of this 2025-launched product leads to common integration mistakes. ## Core Features & Use Cases - Email Sending: Send emails from Cloudflare Workers via the send_email binding, from external apps via the REST API, or from AI agents using the Agents SDK onEmail() and replyToEmail() methods. - Email Routing: Receive and process inbound emails with a Worker's email() handler, including forwarding, replying, rejecting, and MIME parsing with postal-mime. - Setup & Deliverability: Onboard domains with wrangler CLI or MCP tools, configure SPF/DKIM/DMARC, manage suppression lists, and monitor delivery with GraphQL analytics. - Use Case: A developer building a support inbox stores incoming emails in a Durable Object, lets a human review drafts, and sends threaded replies later via the send_email binding with proper In-Reply-To headers. ## Quick Start Ask the agent to add email sending to your Cloudflare Worker using the send_email binding and verify the sending domain is onboarded.

Frequently Asked Questions about cloudflare-email-service

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I send emails from a Cloudflare Worker?▼

Add a send_email binding to wrangler.jsonc with the name EMAIL, then call env.EMAIL.send() with to, from, subject, html, and text fields. The from domain must first be onboarded using npx wrangler email sending enable yourdomain.com.

How do I send emails with the Cloudflare Email REST API?▼

POST to https://api.cloudflare.com/client/v4/accounts/{account_id}/email/sending/send with a Bearer API token. Note the REST API uses address instead of email in the from object and reply_to instead of replyTo, unlike the Workers binding.

Workers binding vs REST API for Cloudflare email sending?▼

Use the Workers binding when your code runs on Cloudflare Workers since it needs no API keys. Use the REST API for external apps in Node.js, Go, or Python, or when you already have an API token workflow.

Can I receive and parse incoming emails with Cloudflare Email Routing?▼

Yes, export an email() handler from your Worker and connect it via a routing rule. Buffer message.raw once since the stream is single-use, then parse it with the postal-mime package to extract subject, text, and attachments.

Why does my Cloudflare email send fail with sender not verified?▼

The E_SENDER_NOT_VERIFIED error means the from domain has not been onboarded to Email Sending. Run npx wrangler email sending enable yourdomain.com or onboard the domain in the Cloudflare Dashboard before sending.

Can I use Cloudflare Email Service for marketing campaigns?▼

No, Email Service is restricted to transactional email triggered by user actions such as signups, password resets, and order confirmations. Marketing or bulk campaigns are not permitted and require a dedicated marketing email platform.