Aller au contenu principal
Tous les articles
·6 min de lecture

Resend vs SendGrid vs Postmark : quel service email pour votre SaaS ?

Comparatif honnête des trois services d'emails transactionnels pour un SaaS Next.js — DX, deliverability, prix, et le choix qu'on a fait pour HeartCo.

Pourquoi le choix du provider email compte vraiment

Les emails transactionnels sont la plomberie invisible de votre SaaS : confirmation d'inscription, reset de mot de passe, factures, notifications. Quand ils ne marchent pas, c'est silencieux — les utilisateurs ne reçoivent rien, ne se plaignent pas, et churn.

Le mauvais provider = 5-15% de vos emails en spam. Avec 10 000 utilisateurs actifs, ça fait 500 à 1500 personnes qui n'ont jamais reçu votre lien de validation. Vous payez l'acquisition, vous perdez la conversion.

Vue d'ensemble

CritèreResendSendGridPostmark
Prix entréeGratuit jusqu'à 3k/mois19$/mois (50k)15$/mois (10k)
Prix à 100k emails/mois20$90$75$
Templates React Email✅ natif
Deliverability moyenne98%95%99%
Setup DKIM/SPF3 clics8 étapes5 étapes
Webhooks
Logs en clair90 jours7 jours45 jours
API SDK TypeScriptFirst classBonneCorrecte
Support FR (équipe)

Resend — Le challenger qui gagne en 2026

Resend a été créé par les fondateurs de React Email. C'est un service moderne, optimisé pour les SaaS Next.js, avec une DX qu'on n'avait jamais vue avant.

Setup en 30 secondes

// src/lib/email/resend.ts
import { Resend } from "resend";
import { env } from "~/env";
 
export const resend = new Resend(env.RESEND_API_KEY);

Templates avec React Email

// src/emails/welcome.tsx
import {
  Button,
  Container,
  Head,
  Html,
  Preview,
  Section,
  Text,
} from "@react-email/components";
 
interface WelcomeEmailProps {
  userName: string;
  loginUrl: string;
}
 
export default function WelcomeEmail({
  userName,
  loginUrl,
}: WelcomeEmailProps) {
  return (
    <Html>
      <Head />
      <Preview>Bienvenue sur HeartCo, {userName}</Preview>
      <Container style={{ padding: "32px", fontFamily: "system-ui" }}>
        <Section>
          <Text>Salut {userName},</Text>
          <Text>Ton compte HeartCo est prêt. Connecte-toi pour démarrer.</Text>
          <Button
            href={loginUrl}
            style={{
              background: "#6366f1",
              color: "white",
              padding: "12px 24px",
              borderRadius: "8px",
            }}
          >
            Accéder au dashboard
          </Button>
        </Section>
      </Container>
    </Html>
  );
}

Envoi depuis tRPC

import WelcomeEmail from "~/emails/welcome";
 
sendWelcome: protectedProcedure
  .input(z.object({ userId: z.string() }))
  .mutation(async ({ ctx, input }) => {
    const user = await ctx.db.user.findFirstOrThrow({
      where: { id: input.userId },
    });
 
    await resend.emails.send({
      from: "HeartCo <hello@heartco.fr>",
      to: user.email,
      subject: `Bienvenue ${user.name}`,
      react: WelcomeEmail({
        userName: user.name,
        loginUrl: `${env.NEXT_PUBLIC_URL}/dashboard`,
      }),
    });
  }),

Le bénéfice : un email est un composant React typé. Vous le testez en local dans le browser via react-email dev. Plus de templates HTML inline ni de Mailchimp WYSIWYG.

Limites de Resend

  • Pas (encore) de scheduling natif → utilisez Inngest ou Vercel Cron
  • Logs limités à 90 jours sur le plan payant
  • Pas de support téléphone (Discord uniquement)

SendGrid — Le vétéran

SendGrid (Twilio) est le standard de l'industrie depuis 2015. Robuste, mais sur-dimensionné pour un SaaS qui commence.

Setup

import sgMail from "@sendgrid/mail";
sgMail.setApiKey(env.SENDGRID_API_KEY);
 
await sgMail.send({
  to: user.email,
  from: { email: "hello@yoursaas.com", name: "Your SaaS" },
  subject: "Welcome",
  templateId: "d-abc123", // Template Drag&Drop SendGrid
  dynamicTemplateData: {
    userName: user.name,
    loginUrl: `${env.URL}/dashboard`,
  },
});

Pourquoi on l'a abandonné

  • Templates dans une UI Drag&Drop → versioning impossible, pas de Git diff
  • Setup DKIM/SPF tortueux (8 enregistrements DNS)
  • Console UI lente et clunky
  • 90$/mois à 100k emails — 4.5x plus cher que Resend
  • Deliverability moyenne en baisse sur les domaines neufs depuis 2024

SendGrid reste pertinent si vous envoyez >5M d'emails/mois (capacité éprouvée) ou si votre stack est déjà Twilio.

Postmark — Le specialist deliverability

Postmark fait UNE chose et la fait mieux que tout le monde : le transactionnel. Pas de marketing emails, pas de campagnes — juste des emails qui arrivent.

Setup

import { ServerClient } from "postmark";
 
const postmark = new ServerClient(env.POSTMARK_API_KEY);
 
await postmark.sendEmailWithTemplate({
  From: "hello@yoursaas.com",
  To: user.email,
  TemplateAlias: "welcome",
  TemplateModel: {
    user_name: user.name,
    login_url: `${env.URL}/dashboard`,
  },
});

Pourquoi le considérer

  • 99% de deliverability mesurée — le meilleur du marché
  • IPs dédiées pour le transactionnel uniquement (pas de pollution marketing)
  • Support DMARC strict
  • Logs en clair pendant 45 jours

Pourquoi on a pas choisi Postmark

  • Pas de React Email natif (vous compilez vos templates en MJML)
  • Setup template plus lourd
  • 75$/mois à 100k vs 20$ pour Resend
  • Communauté plus petite, moins d'exemples Next.js

Le critère qui change tout : la deliverability

Resend annonce 98%, Postmark 99%, SendGrid 95%. Sur 100k emails par mois, ça fait :

  • Postmark : 1 000 emails en spam
  • Resend : 2 000 emails en spam
  • SendGrid : 5 000 emails en spam

Si vos emails sont critiques (factures, alertes sécurité), 4 000 emails de différence par mois peuvent coûter cher en support.

Comment maximiser votre deliverability quel que soit le provider :

  1. Configurez DKIM + SPF + DMARC sur votre domaine d'envoi
  2. Utilisez un sous-domaine dédié (mail.yoursaas.com, pas l'apex)
  3. Préchauffez votre domaine progressivement (100 → 1k → 10k emails/jour)
  4. Surveillez vos taux de bounce et nettoyez votre liste
  5. Ne mélangez JAMAIS marketing et transactionnel sur la même IP

Notre choix pour HeartCo : Resend

// HeartCo Starter — config par défaut
// src/lib/email/index.ts
import { Resend } from "resend";
import WelcomeEmail from "~/emails/welcome";
import InvoiceEmail from "~/emails/invoice";
import ResetPasswordEmail from "~/emails/reset-password";
 
export const resend = new Resend(env.RESEND_API_KEY);
 
export const emailTemplates = {
  welcome: WelcomeEmail,
  invoice: InvoiceEmail,
  resetPassword: ResetPasswordEmail,
} as const;

Les raisons :

  • DX imbattable — React Email + TypeScript natif
  • Coût — 20$/mois pour 100k emails couvre 95% des SaaS en croissance
  • Domain verification — 3 enregistrements DNS, vérification automatique
  • Webhooks utilesemail.delivered, email.bounced, email.complained faciles à brancher sur tRPC

Quand passer à Postmark

Si vous êtes dans une vertical ultra sensible aux délais d'arrivée (banque, santé, sécurité), passez à Postmark dès 10k emails/mois. Le 1% de deliverability en plus vaut chaque dollar.

Pour tous les autres SaaS B2B classiques, Resend reste le meilleur choix en 2026.

Récapitulatif décisionnel

Si vous êtes...Choisissez
Indie hacker / early-stage SaaSResend
SaaS Next.js avec besoin de templates ReactResend
Vertical critique (santé, banque, sécurité)Postmark
Déjà sur Twilio StackSendGrid
Volume >5M emails/moisSendGrid (capacité éprouvée)

L'email n'est pas glamour, mais c'est l'une des décisions qui impacte le plus votre rétention. Investissez 1h à bien configurer, et oubliez le sujet pendant 2 ans.

Partager
Resend vs SendGrid vs Postmark : quel service email pour votre SaaS ? | HeartCo Dev Blog