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 (Workers binding ou REST API), du routage d'e-mails, de la gestion des e-mails du SDK Agents, ou de l'intégration d'e-mails dans n'importe quelle application — Workers, Node.js, Python, Go, etc. À utiliser également pour la délivrabilité des e-mails, SPF/DKIM/DMARC, la configuration des e-mails avec wrangler, les outils MCP pour les e-mails, ou lorsqu'un agent de codage a besoin d'envoyer des e-mails. Même pour des demandes simples comme « ajouter un e-mail à mon Worker » — cette compétence contient des détails de configuration critiques.

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

Service Email Cloudflare

Votre connaissance du Service Email Cloudflare, Email Routing ou 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 sur 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 discordance entre cette compétence et les sources ci-dessous, faites toujours confiance à la source originale. La documentation Cloudflare, la spécification REST API, @cloudflare/workers-types, et le repo du SDK Agents sont la source de vérité. Cette compétence est un guide de commodité — elle peut accuser du retard par rapport aux derniers changements. En cas de doute, récupérez à partir des sources ci-dessous et utilisez ce qu'elles indiquent.

Sources de Récupération

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

D'ABORD : Vérifier les Conditions Préalables

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

  1. Domaine intégré ? Exécutez npx wrangler email sending list pour voir quels domaines ont 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 complètes de configuration.
  2. Liaison configurée ? Recherchez send_email dans wrangler.jsonc (pour Workers)
  3. postal-mime installé ? Exécutez npm ls postal-mime (nécessaire uniquement pour recevoir/analyser des 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 Liaison Workers (aucune clé API nécessaire) 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.) API REST avec jeton Bearer rest-api.md
Envoyer des emails depuis un agent de codage (Claude Code, Cursor, Copilot, etc.) Outils MCP, CLI wrangler, ou API REST cli-and-mcp.md
Recevoir et traiter les emails entrants (Email Routing) Gestionnaire email() 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 indésirables Authentification, contenu, conformité deliverability.md

Démarrage Rapide — Liaison Workers

Ajoutez la liaison à 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!",
});

La liaison est recommandée pour Workers — aucune clé API nécessaire. Si un utilisateur demande spécifiquement l'API REST depuis Workers (par exemple, s'il a déjà un workflow de jeton API), cela fonctionne aussi — 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 liaisons restreintes, et l'intégration du SDK Agents.

Démarrage Rapide — API REST

Pour les applications en dehors de Workers, ou dans Workers si l'utilisateur le demande explicitement. Différences clés par rapport à la liaison Workers :

  • Point d'accès : 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 Cela Arrive Correction
Oubli de la liaison send_email dans la configuration wrangler Email Service utilise une liaison, pas une clé API Ajoutez "send_email": [{ "name": "EMAIL" }] à wrangler.jsonc
Envoi 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 dans le Dashboard
Lecture de message.raw deux fois dans le gestionnaire email Le flux raw est à usage unique — la deuxième lecture retourne vide Mettez en mémoire d'abord : const raw = await new Response(message.raw).arrayBuffer()
Champ text manquant (HTML seulement) Certains clients email n'affichent que du texte brut ; cela aide aussi les scores de spam Incluez toujours les deux versions html et text
Utilisation d'email pour les envois marketing/en masse Email Service est pour les emails transactionnels uniquement Utilisez une plateforme email marketing dédiée pour les lettres d'information et les campagnes
Transfert vers des destinations non vérifiées message.forward() ne fonctionne qu'avec des adresses vérifiées Exécutez wrangler email routing addresses create user@gmail.com ou ajoutez dans le Dashboard
Test 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
Codage en dur des jetons API dans le code source Les jetons dans le code sont commités et divulgués Utilisez des variables d'environnement ou des 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
Utilisation de la clé email dans l'objet from de l'API REST L'API REST utilise address pas email pour l'objet from Utilisez { "address": "...", "name": "..." } pour REST, { "email": "...", "name": "..." } pour la liaison Workers
Utilisation de replyTo dans l'API REST L'API REST utilise des noms de champs en snake_case Utilisez reply_to pour l'API REST, replyTo pour la liaison Workers

Références

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