Ce qui est branché · 3 min
Resend pour votre courrier, Resend en SMTP pour celui de Supabase, et la limite d'offre gratuite qui donne l'impression que tout est cassé.
Il y a deux chemins et on les confond facilement.
Votre courrier passe par l'API Resend depuis src/lib/email.ts : reçus,
messages de bienvenue, tout ce que votre application décide d'envoyer.
Le courrier de Supabase, c'est le lien magique et la confirmation. C'est Supabase qui l'envoie, pas vous, donc il faut lui dire de passer par Resend en SMTP.
Votre courrier
import { sendEmail } from "@/lib/email";
await sendEmail({
to: user.email,
subject: "C'est prêt",
html: "<p>Tout est en place.</p>",
});Les modèles sont de simples fonctions qui renvoient { subject, html }. Pas de
moteur de template, pas d'étape de build MJML. Si vous voulez le HTML d'un
designer, collez-le.
Le courrier de Supabase
Sous Project settings, Authentication, SMTP :
Host smtp.resend.com
Port 465
User resend
Password votre clé d'API Resend
Sender la même adresse que EMAIL_FROM
Réécrivez ensuite les trois modèles comme décrit dans Authentification. Les modèles par défaut ne connecteront personne.
La délivrabilité
Trois enregistrements DNS décident si votre courrier arrive ou part en indésirable. Resend vous donne les trois quand vous ajoutez un domaine :
| Type | Hôte | Rôle |
|---|---|---|
| TXT | resend._domainkey | DKIM. Prouve que le message n'a pas été altéré |
| MX | send | Où vont les rebonds |
| TXT | send | SPF. Autorise Amazon SES à envoyer pour vous |
Ils sont sur un sous-domaine send, donc ils n'entrent pas en conflit avec une
redirection de courrier existante sur votre apex.
Changer de fournisseur
src/lib/email.ts fait une quarantaine de lignes et exporte une fonction.
Postmark, SES et Loops prennent la même forme. Changez ce fichier ; rien d'autre
n'importe le SDK.
Une erreur ou un manque sur cette page ? Dites-le-nous.