Mail API

E-mails transactionnels via des API HTTP : Brevo, Mailgun, Mailjet, Maileroo, Postmark, Mailchimp, Resend, SendGrid, MailerSend, Scaleway.

Extension

Mail API

E-mails transactionnels via des API HTTP : Brevo, Mailgun, Mailjet, Maileroo, Postmark, Mailchimp, Resend, SendGrid, MailerSend, Scaleway.

  • Catégorie: email
  • Statut: Disponible
  • Version: 0.3.1
  • Prix: Inconnu
  • Source: Registre officiel de plugins
  • Installation: Plugin isolé du registre
  • Vérifié: 2026-10-21

Description

Mail API fait de l’API HTTP de votre fournisseur d’e-mail le vecteur d’envoi d’EmDash. Les liens de connexion, les invitations et les e-mails des plugins partent via Brevo, Mailgun, Postmark ou un autre service, sans serveur SMTP.

Fonctionnalités

  • 10 fournisseurs : Brevo, Mailgun, Mailjet, Maileroo, Postmark, Mailchimp Transactional (Mandrill), Resend, SendGrid, MailerSend et Scaleway TEM.
  • Expéditeurs vérifiés : choisissez une adresse ou un domaine vérifié par votre fournisseur, ou saisissez-en un.
  • État du compte : forfait, crédits, quotas et réputation, lus depuis l’API du fournisseur.
  • Erreurs exploitables : le message du fournisseur lui-même, avec le statut HTTP, le code d’erreur, une piste de résolution, un lien vers la page qui permet de la corriger et la réponse brute.
  • File d’attente de nouvelles tentatives : lorsque le fournisseur est indisponible ou applique une limite de débit, l’e-mail attend dans une file chiffrée et est renvoyé avec un délai croissant.
  • Historique et journaux : chaque envoi avec son statut, son ID de message, ses tentatives et sa durée, avec filtres, Renvoyer, un graphique sur 14 jours et un widget de tableau de bord.
  • Formulaire de test sur la page de chaque fournisseur.
  • Chiffré : les clés d’API sont des secrets EmDash, le contenu conservé des e-mails est chiffré, et les e-mails de connexion ne sont jamais conservés.
  • Administration en anglais, en français et en allemand, utilisable sur téléphone.

Fournisseurs

FournisseurIdentifiantsExpéditeurs listésÉtat du compte
BrevoClé d’APIAdressesForfait, crédits
MailgunClé d’API, domaine, régionDomaineÉtat du domaine
MailjetClé d’API, clé secrèteAdresses, domainesNon
MailerooClé d’envoiNonNon
PostmarkJeton de serveurNonServeur, mode
Mailchimp TransactionalClé MandrillDomainesRéputation, quota
ResendClé d’APIDomainesForfait, quotas
SendGridClé d’APIAdresses, domainesForfait, crédits
MailerSendJeton d’APIAdresses, domainesQuota d’API
Scaleway TEMClé secrète, ID de projetDomainesOffre, utilisation

Lorsque les expéditeurs ne sont pas listés, saisissez l’adresse.

Installation

Prérequis

  • EmDash 1.3.0 ou version ultérieure avec un exécuteur de bac à sable pour les plugins : Cloudflare Worker Loader (forfait Workers Paid), ou @emdash-cms/sandbox-workerd sur Node.js.
  • EMDASH_ENCRYPTION_KEY sur le site : elle chiffre les clés d’API. Créez-en une avec npx emdash secrets generate et, sur Cloudflare, enregistrez-la avec wrangler secret put EMDASH_ENCRYPTION_KEY. Conservez-en une copie dans un gestionnaire de secrets : une sauvegarde de base de données est inutile sans elle.
  • Un planificateur pour la file de nouvelles tentatives : intégré sur Node.js. Sur Cloudflare, un déclencheur cron * * * * * et le gestionnaire scheduled (les modèles EmDash incluent les deux).
  • Un compte et une clé d’API auprès de l’un des fournisseurs pris en charge.

Installer

  1. Installez Mail API depuis le registre des plugins.
  2. Vérifiez les autorisations et confirmez : requêtes vers les seuls hôtes d’API des fournisseurs, et acheminement des e-mails d’EmDash.

Depuis npm : pnpm add @devbitme/emdash-plugin-apimail, puis ajoutez l’import par défaut à sandboxed: [...] dans l’intégration emdash() de astro.config.mjs.

Configurer

  1. Dans l’administration, ouvrez Mail API, puis Configure sur votre fournisseur.
  2. Collez la ou les clés et enregistrez. La section Account confirme que la clé fonctionne.
  3. Dans Send a test email, choisissez un expéditeur vérifié, saisissez votre adresse et envoyez. Laissez Use as the default sender activé pour conserver cet expéditeur.
  4. Cliquez sur Activate sur la carte du fournisseur dans la liste.
  5. Si plusieurs vecteurs d’e-mail sont installés, sélectionnez Mail API sous Settings → Email. Sous astro dev, le vecteur console d’EmDash compte pour un.

Réglages

L’onglet Queue & history définit combien de temps un e-mail peut attendre dans la file (15 minutes pour les e-mails de connexion, 24 heures pour les autres par défaut), s’il faut conserver le contenu des e-mails, et combien de temps l’historique et les journaux sont conservés (30 jours par défaut).

Documentation complète : https://git.devbit.me/devbit.me/emdash-plugin-apimail

FAQ

Ai-je besoin d’un serveur SMTP ?

Non. Mail API appelle l’API HTTP du fournisseur via HTTPS ; il fonctionne donc aussi là où SMTP n’est pas disponible, comme Cloudflare Workers.

« Send test email » d’EmDash affiche seulement « Failed to send test email ».

Utilisez le formulaire Send a test email de la page du fournisseur : il affiche le message du fournisseur, une piste de résolution et la réponse brute. L’erreur figure aussi dans Logs et dans le journal du serveur.

La liste des expéditeurs est vide ou affiche HTTP 401 ou 403.

La clé peut envoyer mais pas lister les expéditeurs. Resend nécessite une clé Full access, SendGrid un accès en lecture à Sender Authentication et User Account, MailerSend Domains et Sender identity, Scaleway TransactionalEmailReadOnly, et Mailgun la clé du compte plutôt qu’une clé d’envoi de domaine. Vous pouvez toujours saisir l’adresse de l’expéditeur.

L’erreur indique que l’adresse IP n’est pas autorisée.

Ajoutez l’IP sortante de votre hébergeur à la liste d’autorisation du fournisseur, ou désactivez la restriction. L’erreur contient un lien vers la bonne page.

Que se passe-t-il quand le fournisseur est indisponible ?

Les erreurs réseau, les délais d’attente dépassés, les HTTP 429 et 5xx placent l’e-mail dans une file chiffrée. Il est retenté après 1, 5, 15 et 30 min, puis 1 h, 2 h et toutes les 4 h, via le fournisseur actif à ce moment-là. Les e-mails de connexion expirent après 15 minutes, les autres après 24 heures. Les erreurs permanentes, comme une clé invalide ou un destinataire rejeté, ne sont pas retentées.

La file ne s’exécute jamais.

Ouvrez l’onglet Security de Mail API : il liste les tâches planifiées et propose un bouton Repair. Sur Cloudflare, vérifiez le déclencheur cron et le gestionnaire scheduled.

Le contenu de mes e-mails est-il stocké ?

Uniquement pendant qu’il attend dans la file, ou dans l’historique si vous activez Keep email content in the history. Il est chiffré dans les deux cas. Les e-mails de connexion et d’invitation ne sont jamais conservés après l’envoi.

Puis-je utiliser plusieurs fournisseurs ?

Oui. Configurez-en plusieurs et cliquez sur Activate sur celui qui envoie. Pendant une panne, activez-en un autre : les e-mails en file d’attente sont renvoyés via celui-ci.

Sécurité

Signaler une vulnérabilité

Écrivez à [email protected]. Merci de ne pas ouvrir d’abord un ticket public.

Autorisations

  • Requêtes réseau, limitées aux hôtes d’API des fournisseurs : api.brevo.com, api.mailgun.net, api.eu.mailgun.net, api.mailjet.com, api.us.mailjet.com, smtp.maileroo.com, api.postmarkapp.com, mandrillapp.com, api.resend.com, api.sendgrid.com, api.eu.sendgrid.com, api.mailersend.com, api.scaleway.com.
  • Vecteur d’e-mail : EmDash confie ses e-mails sortants au plugin, qui les envoie via le fournisseur actif.

Le plugin s’exécute dans le bac à sable d’EmDash et ne peut accéder à rien d’autre.

Clés d’API

Les clés d’API sont des réglages secrets d’EmDash, chiffrés en AES-GCM avec la EMDASH_ENCRYPTION_KEY du site. Une clé enregistrée ne retourne jamais au navigateur : l’administration n’en montre que les 5 derniers caractères. Tout secret configuré qu’un fournisseur reprend dans un message d’erreur est masqué.

Données stockées

  • Historique : destinataire, objet, fournisseur, statut, ID de message, tentatives, durée et erreur. Supprimé après 30 jours par défaut.
  • Contenu des e-mails : conservé uniquement pendant que l’e-mail attend dans la file, ou dans l’historique si vous l’activez. Il est chiffré en AES-GCM avec une clé aléatoire de 256 bits, elle-même stockée comme secret EmDash. Les e-mails de connexion et d’invitation ne sont jamais conservés après l’envoi.
  • Journaux : échecs, exécutions et purges de la file, supprimés avec l’historique.
  • Expéditeurs vérifiés et état du compte : mis en cache dans le stockage du plugin avec une empreinte des réglages, jamais une clé.

Les e-mails ne vont qu’à l’API du fournisseur actif. Rien d’autre ne quitte le site.

Route publique

Une route est publique : GET /_emdash/api/plugins/apimail/logo?p=. Elle sert les logos des fournisseurs inclus dans le plugin et ne lit aucune donnée.

Administration

Les pages d’administration utilisent une route privée : avant l’exécution du plugin, EmDash exige un utilisateur connecté autorisé à gérer les plugins et l’en-tête CSRF.

Journal des modifications

0.3.1

  • Trois cartes de fournisseur par ligne au lieu de deux : une liste plus compacte sur ordinateur.
  • Un lien Website sur chaque carte de fournisseur, ouvert dans un nouvel onglet.
  • Set as default devient Activate, assez court pour une carte sur téléphone.
  • La page d’un fournisseur s’ouvre immédiatement à partir des données enregistrées, avec leur ancienneté. Le fournisseur n’est appelé que lorsqu’une clé est enregistrée ou avec **Refresh from **, et un message indique la durée de l’appel.

0.3.0

  • Bouton Set as default sur la carte de chaque fournisseur configuré.
  • Un échec de lecture des expéditeurs vérifiés ou de l’état du compte est écrit dans les journaux et retenté au prochain chargement de la page, sauf si la clé n’a pas l’autorisation.
  • La liste des expéditeurs indique quand elle a été lue, même après une erreur.
  • Les pages d’administration s’adaptent au téléphone : deux cartes de fournisseur par ligne, au plus trois cartes de statistiques, valeurs longues sur leur propre ligne, moins de colonnes d’historique.
  • Entrées de menu plus courtes : History, Queue, Logs.
  • Traits d’union simples au lieu de tirets longs dans les libellés, journaux, erreurs et l’objet de l’e-mail de test.
  • Paquet plus léger : les logos des fournisseurs sont des tuiles WebP sans perte.
  • Fiche du registre : onglets description, installation, FAQ, journal des modifications et sécurité, et une bannière.

0.2.0

  • Choix d’un expéditeur vérifié depuis le fournisseur : une adresse vérifiée, n’importe quelle adresse d’un domaine vérifié, ou saisie manuelle. Dans l’onglet Sender et dans chaque formulaire de test.
  • État du compte sur la page de chaque fournisseur : forfait, crédits, quotas et réputation.
  • Un test n’exige plus d’expéditeur configuré, et Use as the default sender conserve celui qui a fonctionné.
  • Une clé enregistrée affiche ses 5 derniers caractères.
  • Administration en allemand.