Resend ou Postmark pour vos e-mails HTML : lequel choisir ?
Comparaison de Resend et Postmark pour envoyer des e-mails HTML créés avec React Email, MJML, Maizzle, Stripo, BEE ou Unlayer, avec les paliers tarifaires publiés par chaque éditeur.
Le choix en bref
Pour la plupart des équipes qui fabriquent leurs e-mails HTML dans leur code, Resend est le choix le plus direct. Si votre template est un composant React Email, vous l'écrivez, le prévisualisez et l'envoyez depuis le même dépôt. Le palier Pro coûte 20 $ par mois en facturation mensuelle et couvre 50 000 e-mails par mois. Une offre gratuite de 3 000 e-mails par mois permet de démarrer sans dépense.
Postmark devient plus pertinent lorsque le HTML est produit en dehors de votre application, par MJML, Maizzle ou un éditeur visuel comme Stripo, BEE ou Unlayer, et que la séparation stricte entre messages transactionnels et messages de diffusion compte davantage que l'intégration au code. Son palier Basic commence à 15 $ par mois à partir de 10 000 e-mails. Il n'existe pas d'offre gratuite au-delà de 100 e-mails par mois.
Le HTML reçu par le destinataire est le même dans les deux cas. Ce qui change, c'est l'endroit où vit votre template, la manière dont vous injectez les variables, le volume que vous envoyez et la façon dont vous isolez vos messages critiques. Les fonctionnalités annoncées comptent donc moins que ces quatre questions, et le reste de cette page les reprend une à une.
Les montants cités proviennent des pages tarifaires officielles, resend.com/pricing et postmarkapp.com/pricing. Ils sont donnés en facturation mensuelle. Les éditeurs peuvent modifier leurs grilles, donc vérifiez la page officielle avant de vous engager.
Comparaison rapide
| Critère | Resend | Postmark |
|---|---|---|
| Meilleur usage | Équipes qui écrivent leurs e-mails en React Email ou génèrent du HTML depuis leur code | Envoi transactionnel critique, quel que soit l'outil qui produit le HTML |
| Prix d'entrée | Gratuit jusqu'à 3 000 e-mails par mois ; puis Pro, 20 $ par mois (50 000 e-mails par mois) | Gratuit jusqu'à 100 e-mails par mois ; puis Basic, 15 $ par mois (à partir de 10 000 e-mails par mois) |
| Lieu du template | Dans votre dépôt, en composants React Email | Dans votre chaîne de build (MJML, Maizzle) ou dans le tableau de bord |
| Séparation des flux | Gérée par la configuration des expéditeurs et des clés d'API | Flux transactionnel et flux de diffusion distincts par conception |
| Limite principale | Limite quotidienne de l'offre gratuite (100 e-mails par jour) et historique plus court | Aucune offre gratuite utilisable en production, et un palier payant à prévoir dès la mise en ligne |
Ce que produisent les outils de création HTML
Un e-mail HTML n'est pas une page web. Les clients de messagerie ignorent une partie du CSS, bloquent certaines images par défaut et affichent les mises en page différemment selon Gmail, Outlook ou Apple Mail. Les outils de création cherchent à résoudre ce problème, chacun avec sa propre logique.
MJML et Maizzle sont des frameworks. Vous écrivez un balisage source, et l'outil le compile en HTML adapté aux clients de messagerie. React Email suit la même idée avec des composants React : un en-tête, un pied de page ou un bouton se réutilisent d'un e-mail à l'autre. Stripo, BEE et Unlayer sont des éditeurs visuels : les équipes marketing assemblent des blocs, puis l'éditeur exporte le HTML.
Dans tous les cas, le service d'envoi reçoit une chaîne HTML, souvent accompagnée d'une version texte. Le choix du service ne dépend donc pas du format de création, mais de trois éléments : l'endroit où le template est stocké, le mode d'injection des données (variables, données dynamiques, rendu côté serveur) et la séparation entre flux transactionnel et flux de diffusion.
Les combinaisons les plus fréquentes sont les suivantes :
- React Email dans un dépôt, rendu puis envoyé par l'API de Resend. Le template, les données et l'envoi sont versionnés ensemble.
- MJML ou Maizzle compilé dans une tâche de build, puis envoyé par l'API de Postmark ou de Resend. Le HTML est généré en intégration continue, et le service d'envoi ne fait que la remise.
- Stripo ou BEE pour le marketing, avec export HTML vers un service d'envoi. Les équipes non techniques gardent la main sur la mise en page.
- Unlayer intégré à votre administration : vos utilisateurs composent leurs e-mails, et votre backend les envoie via l'API du service retenu.
Resend : ce qu'il fait bien pour les équipes qui codent leurs e-mails
Resend est conçu d'abord pour les développeurs. Son intérêt principal pour une équipe React est l'intégration avec React Email. Un composant d'e-mail est un fichier de code comme un autre : il reçoit des données typées, se prévisualise localement et passe la revue de code avec le reste de l'application. Quand le texte d'une confirmation de commande change, la modification suit le même cycle qu'une fonctionnalité, sans aller-retour avec un tableau de bord.
Pour une équipe qui livre régulièrement de nouveaux e-mails transactionnels (invitations, réinitialisations de mot de passe, factures, alertes), ce gain est concret. Les composants se réutilisent, les contrôles de rendu peuvent être automatisés dans l'intégration continue, et le nombre d'outils reste limité : le template, les données et l'envoi vivent au même endroit.
L'offre gratuite suffit pour un prototype ou un petit service : 3 000 e-mails par mois, 100 par jour et 3 domaines. La limite quotidienne est la contrainte à anticiper. Un import de comptes ou une campagne de lancement peut dépasser 100 envois dans la journée, et les messages qui dépassent ce seuil ne peuvent pas attendre le lendemain. Si c'est votre cas, passez au palier payant avant la mise en production.
Côté prix, le palier Pro coûte 20 $ par mois en facturation mensuelle et inclut 50 000 e-mails par mois. Le palier Scale coûte 90 $ par mois pour 100 000 e-mails, 160 $ par mois pour 200 000 et 350 $ par mois pour 500 000. Il existe aussi une variante Pro à 35 $ par mois pour 100 000 e-mails, avec des envois supplémentaires facturés 0,90 $ par tranche de 1 000 selon la page tarifaire. Pour 125 000 e-mails, le calcul donne 35 $ + 25 × 0,90 $ = 57,50 $ par mois, à condition que la facturation des dépassements soit bien celle indiquée.
Les limites tiennent surtout à l'âge du service et à sa vocation. L'historique d'envoi est plus court que celui de Postmark, ce qui compte si votre direction exige une longue expérience du service. Si vos équipes marketing veulent un éditeur visuel complet, Resend n'est pas leur point d'entrée naturel. Resend propose aussi une offre marketing distincte, gratuite jusqu'à 1 000 contacts, puis payante par paliers de contacts : 40 $ par mois pour 5 000 contacts, 80 $ pour 10 000, 180 $ pour 25 000, 250 $ pour 50 000 et 450 $ pour 100 000. Cette offre sert la diffusion, pas l'envoi transactionnel, et elle se choisit séparément.
Pour vérifier les paliers en vigueur, consultez la page officielle resend.com/pricing, car les seuils et les inclusions peuvent évoluer.
Postmark : ce qu'il fait bien pour les flux critiques
Postmark est un service d'envoi transactionnel installé depuis longtemps dans les produits SaaS. Son argument central est la séparation des flux. Les messages transactionnels (codes de connexion, confirmations, reçus) et les messages de diffusion passent par des flux distincts. Une campagne marketing mal ciblée ne doit pas dégrader la réputation d'envoi de vos codes de sécurité. Pour une application dont l'absence d'un message bloque un utilisateur, cette séparation est souvent la raison principale du choix.
Postmark n'impose pas d'outil de création. Si vos e-mails sont compilés par MJML ou Maizzle, ou exportés depuis Stripo, BEE ou Unlayer, vous envoyez le HTML par l'API, et Postmark gère la remise. Vous pouvez aussi conserver les modèles dans le tableau de bord et les remplir avec des variables. Cette approche convient aux équipes qui veulent corriger un texte sans déployer le code.
La contrepartie est la séparation des rôles : le template vit dans le build ou dans le tableau de bord, et non dans le composant qui calcule les données. Il faut donc organiser la synchronisation entre les deux, ce qui demande un peu plus de discipline qu'avec React Email et Resend. Une équipe qui modifie un champ dans le code doit penser à mettre à jour le modèle correspondant, sinon le message part avec une variable vide.
Côté prix, le palier gratuit est limité à 100 e-mails par mois, sans dépassement possible. Un produit en production dépassera ce volume très vite, il faut donc prévoir un palier payant dès la mise en ligne. Le palier Basic commence à 15 $ par mois à partir de 10 000 e-mails. Pour 50 000 e-mails, les paliers publiés sont Basic à 55 $, Pro à 60,50 $ et Platform à 66 $ par mois. Pour 125 000 e-mails, ils sont Basic à 115 $, Pro à 126,50 $ et Platform à 138 $ par mois. Les différences entre ces niveaux portent sur les fonctionnalités et le support, et la page tarifaire détaille ce que contient chacun.
Le tableau de bord et la configuration initiale demandent un peu plus de temps à une équipe qui cherche une mise en route très rapide. Ce n'est pas un défaut technique, mais cela compte pour une petite équipe qui n'a pas de temps à consacrer à l'administration du service. Consultez la page officielle postmarkapp.com/pricing pour les paliers et les inclusions actuels.
Comparaison des coûts selon le volume
Le tableau suivant indique, pour plusieurs volumes mensuels, le palier publié le moins cher chez chaque éditeur, en facturation mensuelle. Lorsqu'aucun palier publié ne correspond au volume, la cellule indique « Tarif sur demande ». Aucun montant n'a été estimé.
| E-mails par mois | Resend (palier, prix mensuel) | Postmark (palier, prix mensuel) |
|---|---|---|
| 3 000 | Gratuit (3 000 e-mails par mois, 100 par jour) | Tarif sur demande : le palier gratuit est plafonné à 100 e-mails par mois |
| 10 000 | Pro, 20 $ (inclut 50 000 e-mails par mois) | Basic, 15 $ (à partir de 10 000 e-mails par mois) |
| 50 000 | Pro, 20 $ (inclut 50 000 e-mails par mois) | Basic, 55 $ (Pro 60,50 $, Platform 66 $) |
| 100 000 | Pro, 35 $ (inclut 100 000 e-mails par mois) ; Scale, 90 $ | Tarif sur demande pour ce volume exact |
| 125 000 | Pro, 35 $ + 25 × 0,90 $ = 57,50 $ (calcul à partir de la base de 100 000) | Basic, 115 $ (Pro 126,50 $, Platform 138 $) |
| 200 000 | Scale, 160 $ (inclut 200 000 e-mails par mois) | Tarif sur demande pour ce volume exact |
À 10 000 e-mails par mois, Postmark est moins cher : 15 $ contre 20 $ pour le palier Pro de Resend. À 50 000 e-mails, l'ordre s'inverse. Le palier Pro de Resend, à 20 $, couvre ce volume, alors que le palier Basic de Postmark coûte 55 $. Au-delà de 100 000 e-mails, la comparaison dépend du volume exact et des dépassements, et les paliers de Postmark ne sont pas tous publiés pour chaque seuil. Le bon réflexe consiste donc à comparer au volume réel de vos envois, et non à la première ligne d'une grille.
Deux précautions s'imposent. D'abord, les paliers de Postmark sont décrits par seuils, alors que Resend affiche des paliers qui incluent un volume précis, complété par des dépassements facturés à l'unité. Ensuite, le coût d'envoi n'est qu'une partie de la dépense. La mise en place, la maintenance des templates et le temps d'équipe pèsent souvent davantage pour une petite structure. Un palier légèrement plus cher qui évite une demi-journée de configuration peut être le bon choix.
Matrice de décision selon votre outil de création
Le tableau suivant relie chaque façon de produire un e-mail HTML au service qui limite les étapes intermédiaires. Ce n'est pas une règle absolue : tous ces outils produisent du HTML que n'importe quel service accepte. Il s'agit de réduire les exports, les copies et les synchronisations à maintenir.
| Si vous utilisez | Préférez | Parce que |
|---|---|---|
| React Email | Resend | Les composants et l'envoi partagent le même code, sans étape d'export |
| MJML ou Maizzle compilés en build | Postmark, ou Resend au-delà de 50 000 e-mails par mois | Le HTML est produit en intégration continue, et le service ne fait que la remise |
| Stripo, BEE ou Unlayer pour le marketing | Postmark pour le transactionnel, et un outil de diffusion séparé pour les campagnes | La séparation des flux protège la remise de vos messages critiques |
| Unlayer ou un éditeur intégré à votre application | Le service dont vous connaissez déjà l'API | L'intégration est déjà faite, et la sortie HTML reste la même |
| HTML écrit à la main | Resend pour démarrer, puis Postmark si le volume et la séparation des flux deviennent prioritaires | L'offre gratuite de Resend permet de tester l'intégration sans dépense |
Cette matrice ne dit pas quel service est le meilleur en absolu. Elle indique le point de friction le plus faible pour chaque situation. Si votre équipe a déjà un éditeur visuel en production, changer d'outil de création pour s'aligner sur un service d'envoi est rarement justifié. Il vaut mieux garder le pipeline et choisir le service d'envoi sur le prix, le volume et la séparation des flux.
Mise en place et migration
Quel que soit le service retenu, la mise en place suit les mêmes étapes. Les différences tiennent surtout à l'endroit où vit le template et à la manière de séparer les flux. Si vous migrez depuis un autre service, gardez l'ancien envoi actif jusqu'à ce que le nouveau ait traité un volume réel de messages.
| Étape | Avec Resend | Avec Postmark |
|---|---|---|
| 1. Authentifier le domaine d'envoi | Ajouter les enregistrements DNS indiqués dans le tableau de bord ; 3 domaines sont inclus dans l'offre gratuite | Configurer les enregistrements DNS demandés pour le serveur d'envoi, puis valider le domaine |
| 2. Choisir où vit le template | Dans le dépôt, en composants React Email | Dans le build (MJML, Maizzle) ou dans le tableau de bord |
| 3. Séparer les flux | Utiliser une clé d'API par environnement et un expéditeur distinct pour les messages de facturation | Créer un flux pour le transactionnel et un flux distinct pour la diffusion |
| 4. Fournir une version texte | La générer depuis le composant ou la fournir explicitement dans l'appel | Fournir le texte brut dans l'appel API, ou vérifier le résultat produit |
| 5. Tester le rendu | Prévisualiser localement, puis envoyer à des adresses de test | Envoyer à des adresses de test depuis le tableau de bord ou depuis l'API |
| 6. Surveiller rebonds et plaintes | Consulter les événements de livraison dans le tableau de bord | Consulter l'activité par flux, avec rebonds et plaintes |
Pour une migration, commencez par le message le moins critique, par exemple une notification interne, puis élargissez progressivement. Gardez les deux configurations actives pendant une semaine et comparez les taux de remise avant de couper l'ancien envoi. Ne basculez les e-mails de réinitialisation de mot de passe qu'une fois le nouveau flux stabilisé, car une erreur sur ce type de message bloque directement les utilisateurs.
Conseils pour un flux de travail durable
Quel que soit l'outil de création, quelques pratiques évitent les mauvaises surprises. La première consiste à versionner le HTML final. Si un éditeur visuel exporte un e-mail, enregistrez l'export avec un numéro de version et une date. Si MJML ou Maizzle génère le HTML, conservez le source et la commande de build. Vous pourrez revenir à une version précédente sans reconstruire le template de mémoire.
La deuxième pratique concerne les variables. Les templates transactionnels dépendent de noms de champs qui évoluent avec le code. Un test automatisé qui vérifie que chaque variable attendue est fournie évite qu'un e-mail de réinitialisation parte avec un champ vide. React Email rend ce contrôle naturel grâce au typage. Avec un éditeur visuel ou un modèle stocké dans un tableau de bord, il faut une étape explicite, documentée et relue à chaque changement de données.
La troisième pratique porte sur la séparation des flux. Une facture et une newsletter ne doivent pas partager la même réputation d'envoi. Même si votre volume ne l'exige pas encore, prévoyez deux expéditeurs ou deux flux dès le départ. Le coût de cette séparation est faible, alors que la réparation après un problème de remise est longue et coûteuse.
Enfin, prévoyez une version texte pour chaque e-mail. Elle sert aux clients qui n'affichent pas le HTML et aide les filtres anti-spam à évaluer le contenu. Les deux services acceptent ce format, et la plupart des frameworks peuvent le générer automatiquement à partir du HTML.
Comment choisir
Commencez par la question de vos templates. Si votre équipe écrit ses e-mails en React, Resend réduit le nombre d'outils : le template, les données et l'envoi restent dans le même dépôt. Si vous avez déjà un pipeline MJML ou Maizzle, ou un éditeur visuel utilisé par le marketing, ce pipeline n'a pas à changer. Le service d'envoi se choisit alors sur le prix et sur la séparation des flux, et Postmark répond bien à ce cas, surtout si les messages transactionnels sont critiques pour vos utilisateurs.
Regardez ensuite le volume. Sous 100 e-mails par mois, Postmark n'a pas d'offre utile en production, alors que Resend offre une offre gratuite de 3 000 e-mails par mois. À 10 000 e-mails, Postmark Basic coûte 15 $, soit 5 $ de moins que le palier Pro de Resend en facturation mensuelle. À 50 000 e-mails, Resend Pro (20 $) est nettement moins cher que le palier Basic de Postmark (55 $). Pour des volumes intermédiaires, vérifiez les paliers exacts sur les pages officielles.
Enfin, identifiez la limite qui vous gênerait le plus. Pour Resend, c'est la limite quotidienne de l'offre gratuite et un historique plus court. Pour Postmark, c'est l'absence d'offre gratuite utilisable en production et une configuration des templates plus éloignée du code. Choisissez l'outil dont la limite est la plus facile à contourner pour votre équipe. Si vous voulez revenir à la comparaison générale des outils d'e-mail, rendez-vous sur l'accueil du site.
Questions fréquentes
Peut-on utiliser React Email avec Postmark ?
Oui. React Email produit du HTML, et ce HTML peut être envoyé par l'API de Postmark. Vous perdez seulement l'intégration native avec Resend : il faut alors appeler l'API de Postmark depuis votre code et gérer la correspondance entre vos données et les variables du template, ce qui demande un peu plus de configuration.
Peut-on exporter un e-mail de Stripo, BEE ou Unlayer vers Resend ou Postmark ?
Oui, si l'éditeur permet d'exporter le HTML. Vous pouvez ensuite l'envoyer par l'API du service choisi, après avoir remplacé les variables de l'éditeur par celles de votre application. Vérifiez la syntaxe de chaque variable avant l'envoi, car chaque éditeur utilise la sienne.
Quelle est la différence concrète entre les deux offres gratuites ?
Resend offre 3 000 e-mails par mois, avec une limite de 100 par jour et 3 domaines. Postmark plafonne à 100 e-mails par mois, sans dépassement possible. Pour tester une intégration, l'offre de Resend laisse nettement plus de marge. Pour une application en production, aucune des deux offres gratuites ne suffit longtemps.
Postmark est-il meilleur pour la délivrabilité ?
Postmark est souvent choisi pour la séparation de ses flux transactionnels et de diffusion, qui protège les messages critiques. Resend propose aussi des domaines d'envoi authentifiés et un suivi des événements. La délivrabilité dépend surtout de la qualité de votre liste, de la configuration de votre domaine (SPF, DKIM, DMARC) et de la régularité de vos envois. Aucun service ne la garantit à lui seul.
Faut-il un seul service pour le transactionnel et le marketing ?
Ce n'est pas obligatoire. Beaucoup d'équipes gardent un service transactionnel pour les messages critiques et un outil de diffusion distinct pour les campagnes. Cette séparation simplifie aussi la gestion d'un incident, car chaque flux a sa propre activité et ses propres rebonds.
Le HTML d'un éditeur visuel est-il compatible avec tous les clients de messagerie ?
Pas automatiquement. Les éditeurs visuels travaillent la compatibilité, mais le rendu varie encore selon les clients de messagerie. Prévisualisez chaque e-mail dans les clients que vos utilisateurs emploient le plus, et gardez une mise en page simple avec un bouton sobre.
Le palier Pro de Resend couvre-t-il 100 000 e-mails ?
La page tarifaire indique un palier Pro à 35 $ par mois pour 100 000 e-mails, avec des envois supplémentaires facturés 0,90 $ par tranche de 1 000. Le palier Scale, à 90 $ par mois, inclut lui aussi 100 000 e-mails. Vérifiez la page officielle avant de choisir, car les paliers et les dépassements peuvent changer.
Où trouver les tarifs à jour ?
Consultez les pages officielles : resend.com/pricing et postmarkapp.com/pricing. Les montants de cette page correspondent à la facturation mensuelle indiquée par chaque éditeur, et la grille officielle fait foi en cas d'écart.