cloudflare-email-service

Envoyez et recevez des e-mails transactionnels avec Cloudflare Email Service (Email Sending + Email Routing). À utiliser lors de la création d'envoi d'e-mails (binding Workers ou REST API), du routage d'e-mails, de la gestion des e-mails avec l'Agents SDK, ou de l'intégration des e-mails dans n'importe quelle application — Workers, Node.js, Python, Go, etc. Également utile pour la délivrabilité des e-mails, SPF/DKIM/DMARC, la configuration wrangler pour les e-mails, les outils MCP pour les e-mails, ou quand un agent de code a besoin d'envoyer des e-mails. Même pour des demandes simples comme « ajouter des e-mails à mon Worker » — ce skill contient des détails de configuration essentiels.

npx skills add https://github.com/cloudflare/skills --skill cloudflare-email-service

Service Email Cloudflare

Votre connaissance du Service Email Cloudflare, d'Email Routing ou d'Email Sending peut être obsolète. Préférez la récupération à la pré-formation pour toute tâche du Service Email Cloudflare.

Le Service Email Cloudflare vous permet d'envoyer des emails transactionnels et d'acheminer les emails entrants, le tout dans la plateforme Cloudflare. Votre connaissance de ce produit peut être obsolète — il a été lancé en 2025 et évolue rapidement. Préférez la récupération à la pré-formation pour toute tâche du Service Email.

S'il y a une divergence entre cette compétence et les sources ci-dessous, faites toujours confiance à la source d'origine. Les docs Cloudflare, la spec REST API, @cloudflare/workers-types, et le repo Agents SDK sont la source de vérité. Cette compétence est un guide de commodité — elle peut être en retard par rapport aux derniers changements. En cas de doute, récupérez à partir des sources ci-dessous et utilisez ce qu'elles disent.

Sources de récupération

Source Comment récupérer Utiliser pour
Docs Cloudflare Outil de recherche cloudflare-docs ou URL https://developers.cloudflare.com/email-service/ Référence API, limites, tarification, dernières fonctionnalités
Spec REST API https://developers.cloudflare.com/api/resources/email_sending Spec OpenAPI pour l'API REST Email Sending
Types Workers https://www.npmjs.com/package/@cloudflare/workers-types Signatures de type, formes de binding
Docs Agents SDK Récupérez docs/email.md de https://github.com/cloudflare/agents/tree/main/docs Gestion d'email dans Agents SDK

PREMIER : Vérifiez les prérequis

Avant d'écrire tout code d'email, vérifiez que les bases sont en place :

  1. Domaine intégré ? Exécutez npx wrangler email sending list pour voir les domaines avec l'envoi d'email activé. Si le domaine n'est pas listé, exécutez npx wrangler email sending enable userdomain.com ou consultez cli-and-mcp.md pour les instructions de configuration complètes.
  2. Binding configuré ? Cherchez send_email dans wrangler.jsonc (pour Workers)
  3. postal-mime installé ? Exécutez npm ls postal-mime (nécessaire uniquement pour recevoir/analyser les emails)

De quoi avez-vous besoin ?

Commencez ici. Trouvez votre situation, puis suivez le lien pour les détails complets.

Je veux... Chemin Référence
Envoyer des emails depuis un Cloudflare Worker Binding Workers (pas de clés API nécessaires) sending.md
Envoyer des emails depuis un agent IA construit avec Cloudflare Agents SDK onEmail() + replyToEmail() dans la classe Agent sending.md
Envoyer des emails depuis une application ou un agent externe (Node.js, Go, Python, etc.) REST API avec Bearer token rest-api.md
Envoyer des emails depuis un agent de codage (Claude Code, Cursor, Copilot, etc.) Outils MCP, CLI wrangler, ou REST API cli-and-mcp.md
Recevoir et traiter les emails entrants (Email Routing) Handler email() de Workers routing.md
Configurer Email Sending ou Email Routing wrangler email sending enable / wrangler email routing enable, ou Dashboard cli-and-mcp.md
Améliorer la délivrabilité, éviter les dossiers spam Authentification, contenu, conformité deliverability.md

Démarrage rapide — Binding Workers

Ajoutez le binding à wrangler.jsonc, puis appelez env.EMAIL.send(). Le domaine from doit être intégré via npx wrangler email sending enable yourdomain.com.

// wrangler.jsonc
{ "send_email": [{ "name": "EMAIL" }] }
const response = await env.EMAIL.send({
  to: "user@example.com",
  from: { email: "welcome@yourdomain.com", name: "My App" },
  subject: "Welcome!",
  html: "<h1>Welcome!</h1>",
  text: "Welcome!",
});

Le binding est recommandé pour Workers — pas de clés API nécessaires. Si un utilisateur demande spécifiquement l'API REST depuis un Worker (par ex., il a déjà un workflow de token API), c'est aussi possible — consultez rest-api.md.

Consultez sending.md pour l'API complète, les envois par lot, les pièces jointes, les en-têtes personnalisés, les bindings restreints, et l'intégration Agents SDK.

Démarrage rapide — REST API

Pour les applications en dehors de Workers, ou dans Workers si l'utilisateur la demande explicitement. Différences clés du binding Workers :

  • Endpoint : POST https://api.cloudflare.com/client/v4/accounts/{account_id}/email/sending/send
  • L'objet from utilise address (pas email) : { "address": "...", "name": "..." }
  • replyTo est reply_to (snake_case)
  • La réponse retourne { delivered: [], permanent_bounces: [], queued: [] } (pas messageId)

Consultez rest-api.md pour les exemples curl, le format de réponse, et la gestion des erreurs.

Erreurs courantes

Erreur Pourquoi ça arrive Correction
Oublier le binding send_email dans la config wrangler Email Service utilise un binding, pas une clé API Ajoutez "send_email": [{ "name": "EMAIL" }] à wrangler.jsonc
Envoyer depuis un domaine non vérifié Le domaine doit être intégré à Email Sending avant le premier envoi Exécutez wrangler email sending enable yourdomain.com ou intégrez-le dans Dashboard
Lire message.raw deux fois dans le handler d'email Le flux raw est à usage unique — la deuxième lecture retourne vide Mettez en buffer d'abord : const raw = await new Response(message.raw).arrayBuffer()
Champ text manquant (HTML uniquement) Certains clients email n'affichent que le texte brut ; cela aide aussi les scores de spam Incluez toujours les deux versions html et text
Utiliser l'email pour les envois marketing/en masse Email Service est réservé aux emails transactionnels Utilisez une plateforme email marketing dédiée pour les newsletters et campagnes
Transférer vers des destinataires non vérifiés message.forward() fonctionne uniquement avec des adresses vérifiées Exécutez wrangler email routing addresses create user@gmail.com ou ajoutez-les dans Dashboard
Tester avec des adresses fictives Les rebonds d'adresses inexistantes endommagent la réputation de l'expéditeur Utilisez des adresses réelles que vous contrôlez pendant le développement
Coder en dur les tokens API dans le code source Les tokens dans le code sont commités et divulgués Utilisez des variables d'environnement ou les secrets Cloudflare
Ignorer l'exigence du domaine from L'adresse from doit utiliser un domaine intégré à Email Service Vérifiez d'abord le domaine, puis envoyez depuis anything@that-domain.com
Utiliser la clé email dans l'objet REST API from L'API REST utilise address pas email pour l'objet from Utilisez { "address": "...", "name": "..." } pour REST, { "email": "...", "name": "..." } pour le binding Workers
Utiliser replyTo dans l'API REST L'API REST utilise les noms de champs en snake_case Utilisez reply_to pour l'API REST, replyTo pour le binding Workers

Références

Lisez la référence qui correspond à votre situation. Vous n'avez pas besoin de toutes les lire.

Skills similaires