Modèles d'e-mail
Les e-mails d'authentification sont la partie de votre produit qu'un utilisateur lit avant même d'avoir vu votre application. auth.emailTemplates remplace les valeurs par défaut par vos propres objet et corps.
Chaque modèle est optionnel — Better Auth fournit une valeur par défaut judicieuse pour chacun : une application qui n'en définit aucun envoie donc quand même du courrier fonctionnel.
auth:
strategies:
- type: emailAndPassword
- type: magicLink
emailTemplates:
verification:
subject: Verify your email for MyApp
text: 'Hi $name, confirm your email: $url'
resetPassword:
subject: Reset your password
text: 'Reset your password: $url'
html: '<p>Click <a href="$url">here</a> to reset your password.</p>'
magicLink:
subject: Your sign-in link
text: 'Sign in to MyApp: $url'
Les huit modèles
| Modèle | Quand il est envoyé |
|---|---|
verification |
Vérification de l'e-mail après l'inscription. |
resetPassword |
Demande de réinitialisation du mot de passe. |
magicLink |
Connexion par lien magique. |
emailOtp |
Code e-mail à usage unique (sa présence active l'OTP par e-mail). |
twoFactorBackupCodes |
Envoi des codes de secours à deux facteurs. |
welcome |
E-mail de bienvenue après la vérification. |
accountDeletion |
Confirmation de suppression de compte. |
invitation |
Invitation émise par un administrateur (intégration sans mot de passe). |
emailOtp n'est pas seulement cosmétique. Le définir active le flux de connexion par OTP par e-mail — il n'existe pas d'entrée de stratégie pour l'OTP. Tous les autres modèles ne font que changer la formulation d'un flux déjà activé. Voir Lien magique et OTP.
Forme d'un modèle
Chaque modèle prend un subject obligatoire et un corps text et/ou html optionnel.
| Clé | Description |
|---|---|
subject |
Obligatoire. Ligne d'objet. Prend en charge $variable. |
text |
Corps en texte brut. Prend en charge $variable. |
html |
Corps HTML. Prend en charge $variable. |
Fournir à la fois text et html laisse le choix aux clients de messagerie ; ne fournir que text est le choix le plus sûr, car il s'affiche partout et ne déclenche jamais un filtre anti-spam sur du balisage.
Variables
Les corps et les objets prennent en charge la substitution $variable. Les variables réellement porteuses d'une valeur dépendent de l'e-mail envoyé — $code n'a aucun sens dans une réinitialisation de mot de passe, $inviterName uniquement dans une invitation administrateur.
| Variable | Signification |
|---|---|
$url |
Lien d'action (vérifier, réinitialiser, lien magique, accepter une invitation). |
$name |
Nom du destinataire. |
$email |
Adresse e-mail du destinataire. |
$code |
Code à usage unique (OTP par e-mail). |
$organizationName |
Nom de l'organisation (invitations). |
$inviterName |
Nom de l'administrateur qui a envoyé l'invitation (invitations administrateur uniquement). |
auth:
emailTemplates:
invitation:
subject: '$inviterName invited you to MyApp'
text: |
Hi $name,
$inviterName invited you to join.
Set your password: $url
Les modèles ne délivrent pas le courrier ; SMTP le fait. Les e-mails de lien magique, d'OTP, de réinitialisation, de vérification et d'invitation nécessitent tous SMTP. Sans SMTP défini, l'application démarre avec l'e-mail désactivé et consigne un avertissement — les modèles sont lus, et rien n'est envoyé. Voir Variables d'environnement.
Pages connexes
- Présentation des stratégies — le bloc
authoù ils s'inscrivent. - Lien magique et OTP — le flux que
emailOtpactive. - E-mail et mot de passe — où
verificationetresetPasswordse déclenchent. - Invitations — où
invitationse déclenche. - Deux facteurs — où
twoFactorBackupCodesse déclenche.
Dernière mise à jour 27 juillet 2026
Cette documentation a été rédigée avec de l'IA : des erreurs ou du contenu obsolète sont donc possibles. Sovrium est en bêta — les contributions et corrections sont les bienvenues.