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 :
- Domaine intégré ? Exécutez
npx wrangler email sending listpour voir les domaines avec l'envoi d'email activé. Si le domaine n'est pas listé, exécuteznpx wrangler email sending enable userdomain.comou consultez cli-and-mcp.md pour les instructions de configuration complètes. - Binding configuré ? Cherchez
send_emaildanswrangler.jsonc(pour Workers) - 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
fromutiliseaddress(pasemail) :{ "address": "...", "name": "..." } replyToestreply_to(snake_case)- La réponse retourne
{ delivered: [], permanent_bounces: [], queued: [] }(pasmessageId)
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.
- references/sending.md — API binding Workers, pièces jointes, email Agents SDK. Pour Workers ou Agents SDK.
- references/rest-api.md — Endpoint REST, exemples curl, gestion des erreurs. Pour les applications HORS Workers.
- references/routing.md — Handler
email()entrant, transfert, réponse, analyse. Pour recevoir des emails. - references/cli-and-mcp.md — Configuration du domaine, commandes wrangler, outils MCP. Pour la première configuration.
- references/deliverability.md — SPF/DKIM/DMARC, rebonds, suppressions, bonnes pratiques.