
# 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.

```yaml
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). |

:::callout
**`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](/fr/docs/auth-passwordless).
:::

## 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). |

```yaml
auth:
  emailTemplates:
    invitation:
      subject: '$inviterName invited you to MyApp'
      text: |
        Hi $name,
        $inviterName invited you to join.
        Set your password: $url
```

:::callout
**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](/fr/docs/env-vars).
:::

## Pages connexes

- [Présentation des stratégies](/fr/docs/auth-strategies) — le bloc `auth` où ils s'inscrivent.
- [Lien magique et OTP](/fr/docs/auth-passwordless) — le flux que `emailOtp` active.
- [E-mail et mot de passe](/fr/docs/auth-email-password) — où `verification` et `resetPassword` se déclenchent.
- [Invitations](/fr/docs/auth-invitations) — où `invitation` se déclenche.
- [Deux facteurs](/fr/docs/auth-two-factor) — où `twoFactorBackupCodes` se déclenche.
