> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-docs-event-stream-action-templates.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Personnaliser les modèles de courriels

> Apprenez à personnaliser vos courriels à l’aide de la syntaxe Liquid Templating.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Vous devez configurer une adresse From (De) au niveau du fournisseur ou du modèle pour envoyer des courriels personnalisés. Pour en savoir plus, lisez la section **Configurer une adresse De** dans [Configurer les champs du modèle](#configure-template-fields).
</Callout>

Vous devez configurer votre propre fournisseur de messagerie en utilisant un service tiers (tel que Amazon SES, Mandrill, SendGrid, SparkPost, Mailgun, ou un fournisseur SMTP personnalisé) pour pouvoir personnaliser vos courriels. Pour en savoir plus, lisez [Configurer les fournisseurs SMTP externes](/docs/fr-ca/customize/email/smtp-email-providers).

Auth0 vous permet de personnaliser vos [Courriels](https://manage.auth0.com/#/emails) en HTML dans Dashboard, en fournissant également un modèle avec certains attributs contextuels dans Liquid. Pour en savoir plus, lisez [Utiliser la syntaxe Liquid dans les modèles de courriels](/docs/fr-ca/customize/email/email-templates/use-liquid-syntax-in-email-templates). Cela peut inclure des références au contexte de l’application ou de l’utilisateur actuel.

Vous ne pouvez utiliser qu’un seul modèle pour chaque type de modèle. Auth0 ne prend pas en charge les courriels en clair/basés sur du texte.

Vous pouvez personnaliser les champs **Adresse d’origine**, **Objet**et **Corps du message** de chaque modèle de courriel. Vous pouvez utiliser la syntaxe Liquid pour générer dynamiquement du contenu, en accédant à un certain nombre de variables contextuelles qui seront remplacées par les valeurs appropriées lors du rendu des courriels.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Lorsque vous cliquez sur le bouton **Essayer**, Auth0 envoie un courriel pour une application par défaut nommée d’après le nom brut de votre locataire (et non le nom amical). Pour tester les modèles de différentes applications, créez un exemple d’utilisateur et passez en revue les flux pertinents.

  Les courriels de vérification peuvent toutefois être déclenchés manuellement pour des applications et des utilisateurs spécifiques à l’aide du point de terminaison [Envoyer un courriel de vérification de l’adresse courriel](https://auth0.com/docs/api/management/v2#!/Jobs/post_verification_email) de Auth0 Management API.
</Callout>

## Variables communes

Vous pouvez accéder aux variables communes suivantes lorsque vous utilisez la syntaxe Liquid dans les champs **Adresse d’origine**, **Objet** et **Corps du message** :

* L’objet `application`, avec accès aux propriétés client standard telles que

  * `application.name`
  * `application.clientID`
  * `application.metadata`
* `connection.name` (à l’exception du **Courriel pour l’inscription à l’authentification multifactorielle (<Tooltip href="/docs/fr-ca/glossary?term=multifactor-authentication" tip="Authentification multifacteur (MFA)
  Processus d’authentification de l’utilisateur qui utilise un facteur en plus du nom d’utilisateur et du mot de passe, tel qu’un code par SMS." cta="Voir le glossaire">MFA</Tooltip>)** )
* L’objet `user`, avec accès aux propriétés suivantes :

  * `user.email`
  * `user.email_verified`
  * `user.picture`
  * `user.nickname`
  * `user.given_name`
  * `user.family_name`
  * `user.name`
  * `user.app_metadata` - stocke des informations (telles que le plan de support d’un utilisateur, les rôles de sécurité ou les groupes de contrôle d’accès) qui peuvent avoir un impact sur les fonctionnalités de base d’un utilisateur, telles que le fonctionnement d’une application ou ce à quoi l’utilisateur peut accéder.
  * `user.user_metadata` - stocke les attributs de l’utilisateur (tels que les préférences de l’utilisateur) qui n’ont pas d’impact sur la fonctionnalité principale de l’utilisateur.
* Informations relatives au locataire (définies dans les [Tenant Settings (Paramètres du locataire)](https://manage.auth0.com/#/tenant) :

  * `tenant` - le nom complet du locataire
  * `friendly_name`
  * `support_email`
  * `support_url`

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Les propriétés utilisateur suivantes sont jugées de confiance et doivent être transmises à la fonction Liquid `escape` (`{{ user.name | escape }}`):

  * user.picture
  * user.nickname
  * user.given\_name
  * user.family\_name
  * user.name

  En outre, toutes les propriétés `user.user_metadata` susceptibles de contenir des informations fournies par l'utilisateur doivent faire l'objet d'un échappement.
</Callout>

Les modèles de courriels suivants peuvent être personnalisés pour les [Organizations](/docs/fr-ca/manage-users/organizations/organizations-overview) :

* **Bienvenue** : Reçu par l’utilisateur final une fois qu’il a vérifié son adresse courriel ou, si la vérification du courriel est désactivée, lorsqu’il s’inscrit (ou se connecte pour la première fois).
* **Réinitialisation du mot de passe** : Reçu par l’utilisateur final lorsqu’il demande un changement de mot de passe. Contient un lien qui le redirige vers la page de réinitialisation du mot de passe.
* **Compte bloqué** : Reçu par l’utilisateur final lorsqu’il tente de se connecter dix fois ou plus sans succès à partir de la même adresse IP.
* **Alertes de mots de passe compromis** : Reçues par l’utilisateur final lorsque Auth0 détecte que l’utilisateur tente d’accéder à l’application en utilisant un mot de passe qui a été divulgué par un tiers.
* **Invitation de l’utilisateur** : Reçu par l’utilisateur final lorsqu’il est invité dans une organization. Contient un lien qui le redirige vers une page d’invitation personnalisée. Pour en savoir plus, voir [Inviter les membres d’une Organization](/docs/fr-ca/manage-users/organizations/configure-organizations/invite-members).

Lorsqu’un utilisateur se connecte par l’intermédiaire d’une [Organization](/docs/fr-ca/manage-users/organizations/organizations-overview), les variables supplémentaires suivantes sont disponibles :

* `organization.id`
* `organization.display_name`
* `organization.name`
* `organization.metadata`
* `organization.branding.logo_url`
* `organization.branding.colors.primary`
* `organization.branding.colors.page_background`

Les variables sont référencées en utilisant la syntaxe de `{{ variable_name }}` dans Liquid. Par exemple :

`Bonjour {{ user.name }}. Bienvenue sur {{ application.name }} de la part de {{ friendly_name }}.`

Les attributs disponibles pour l’objet `user` dépendent du type de connexion utilisé. Les modèles de courriel individuels définissent des variables supplémentaires qui sont appropriées pour le modèle spécifique.

Pour les courriels dans lesquels l’utilisateur doit suivre un lien pour agir, vous pouvez également configurer le **Délai d’expiration de l’URL** et l'URL **de redirection** une fois que l’action est complétée. La syntaxe Liquid est également prise en charge dans le champ de la**URL de redirection**, mais seules trois variables sont prises en charge :

* `application.name`
* `application.clientID`
* `application.callback_domain`

## Configurer les champs du modèle

Vous devez configurer les champs suivants :

<Accordion title="1 Adresse de provenance">
  Les utilisateurs verront l’adresse courriel en tant qu’expéditeur dans le champ **Adresse de provenance** lorsqu’ils recevront un courriel d’Auth0. Si vous ne configurez pas le champ **Adresse de provenance** pour un modèle de courriel, Auth0 utilisera, dans le champ **provenance**, l’adresse courriel configurée pour votre [Fournisseur de courriel](/docs/fr-ca/customize/email/smtp-email-providers).

  <Warning>
    Pour des raisons de sécurité, les courriels personnalisés ne peuvent être envoyés qu’à partir d’adresses d’expéditeur (From) qui ne contiennent pas `@auth0.com`. Si vous saisissez une adresse courriel `@auth0.com` dans les adresses d’expédition (From), Auth0 continuera d’envoyer des courriels par défaut, mais ignorera toutes les personnalisations configurées. Si vous êtes un utilisateur du Nuage privé, vous pouvez configurer une liste de blocage de domaines similaire.
  </Warning>

  Le champ **adresse de provenance** prend en charge toutes les variables courantes pour les modèles, mais voici les plus fréquemment utilisées :

  * `application.name`
  * `friendly_name` (pour le nom amical défini du locataire)

  Vous pouvez utiliser ces variables pour définir le nom d’affichage de **l’adresse de provenance** de manière à ce qu’il soit en rapport avec l’application à laquelle l’utilisateur s’est inscrit. Par exemple, le champ pourrait afficher `{{ application.name }} <support@fabrikamcorp.com>`, au lieu de `<support@fabrikamcorp.com>`.

  Vous devez ajouter les enregistrements DNS du Sender Policy Framework (Cadre de politique d’expéditeur) (SPF) (pour en apprendre davantage, lisez  [Sender Policy Framework \[SPF\]](https://en.wikipedia.org/wiki/Sender_Policy_Framework) sur Wikipédia) et du DomainKeys Identified Mail (pour en apprendre davantage, lisez [DomainKeys Identified Mail (DKIM)](https://en.wikipedia.org/wiki/DKIM)  sur Wikipédia) dans le fichier de zone de votre domaine afin de permettre à Auth0 d’envoyer des courriels signés numériquement en votre nom. Sans ces enregistrements, les courriels risquent de se retrouver dans les dossiers de courriels indésirables de vos utilisateurs. En outre, vos utilisateurs peuvent voir l’élément suivant comme une **adresse de provenance**

  `MyApp support@mail128-21.atl41.mandrillapp.com on behalf of MyApp support@fabrikamcorp.com`

  ##### Configuration du SPF (cadre de politique de l’expéditeur)

  Vous pouvez configurer le SPF en ajoutant un enregistrement TXT au fichier de votre zone domaine. Vous devez définir le nom d’hôte sur `@`, ou le laisser vide, selon le fournisseur. La valeur de l’enregistrement doit ressembler à ce qui suit :

  `"v=spf1 include:spf.mandrillapp.com -all"`

  Si vous avez déjà un enregistrement SPF, vous pouvez simplement ajouter `include:spf.mandrillapp.com` à l’enregistrement existant.

  ##### Configuration du DKIM

  Configurez le DKIM en ajoutant un enregistrement TXT au fichier de zone de votre domaine. Ce domaine doit être celui que vous utilisez pour envoyer des courriels. Par exemple, si vous utilisez [Mandrill](https://www.mandrill.com/signup/), vous allez devoir définir le nom d’hôte de cet enregistrement comme `mandrill._domainkey` et la valeur comme :

  ```javascript lines theme={null}
  v=DKIM1; k=rsa; 
  p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrLHiExVd55zd/IQ/J/mRwSRMAocV/hMB3jXwaHH36d9NaVynQFYV8NaWi69c1veUtRzGt7yAioXqLj7Z4TeEUoOLgrKsn8YnckGs9i3B3tVFB+Ch/4mPhXWiNfNdynHWBcPcbJ8kjEQ2U8y78dHZj1YeRXXVvWob2OaKynO8/lQIDAQAB;
  ```
</Accordion>

<Accordion title="2 Objet">
  Le champ **Objet** prend en charge toutes les variables courantes pour les modèles, y compris :

  * `application.name`
  * `user.email` (et d’autres propriétés de l’objet `user`)

  Si le champ **Objet** est vide, Auth0 remplira automatiquement ce texte en fonction du type de courriel que vous envoyez. Par exemple, une ligne d’objet pourrait être « Vérifiez votre courriel ».

  ##### Ligne d’objet multilingue

  La langue sélectionnée par l’utilisateur peut être stockée dans `user.user_metadata` et la syntaxe Liquid utilisée pour le champ Objet.

  Par exemple :

  ```javascript lines theme={null}
  {% assign language = request_language %}
    {% if language %}
      {% assign language = request_language | slice: 0,2 %}
    {% endif%}
  {% if language == 'es' %}
    Cuenta de Example: bloqueada
  {% elsif language == 'de' %}
    Ihr Example wurde gesperrt
  {% elsif language == 'fr' %}
    Compte Example bloqué
  {% elsif language == 'ja' %}
    Example アカウントがブロックされました
  {% elsif language == 'pt' %}
    Conta da Example bloqueada
  {% elsif language == 'zh' %}
    Example　帐户被阻止
  {% else %}
    Example account blocked
  {% endif %}
  ```
</Accordion>

<Accordion title="3 Délai d’expiration de l’URL">
  Le **courriel de vérification**, **le courriel de changement de mot de passe**  et **le courriel de compte bloqué** contiennent des liens permettant aux utilisateurs de vérifier leur adresse courriel lors de l’inscription, de confirmer leur changement de mot de passe ou de débloquer un compte bloqué.

  Vous pouvez modifier le délai d’expiration de ce lien pour des raisons de sécurité. Par défaut, le délai d’expiration est de 432 000 secondes (cinq jours).

  Si les utilisateurs cliquent sur un lien expiré et qu’une URL de **redirection** est configurée, ils seront redirigés vers l’URL de **redirection** configurée. Le texte suivant sera ajouté à la chaîne de requête :

  `http://myapplication.com/my_page/?email=john%contoso.com&message=Access%20expired.&success=false`
</Accordion>

<Accordion title="4 URL de redirection">
  L’URL de **redirection** est une destination optionnelle vers laquelle l’utilisateur est redirigé après que l’action pertinente (vérification de compte, réinitialisation du mot de passe, déblocage de compte) a été effectuée.

  Avec l’expérience classique de connexion universelle, vous pouvez fournir une URL vers laquelle les utilisateurs sont redirigés après la réinitialisation de leur mot de passe. Auth0 envoie un indicateur de`success` et un `message` à l’URL. Pour en savoir plus sur ces deux paramètres, voir [Description des modèles de courriels](/docs/fr-ca/customize/email/email-templates/email-template-descriptions).

  Avec la nouvelle expérience de connexion universelle, Auth0 redirige les utilisateurs vers le chemin de connexion par défaut lorsque l’utilisateur parvient à réinitialiser son mot de passe. Au cas contraire, Auth0 gère les erreurs dans le cadre du flux de connexion universelle et ignore l’URL de redirection fournie dans le modèle de courriel.

  Les trois variables suivantes sont les seules disponibles sur l’URL de **redirection**

  * `application.name` (ou son synonyme `client.name`)
  * `application.clientID`
  * `application.callback_domain` (ou son synonyme `client.callback_domain`)

  La variable `application.callback_domain` contiendra l’origine de la **première** URL répertoriée dans la liste des **URL de rappel autorisée** de l’application. Cela vous permet de rediriger les utilisateurs vers un chemin de l’application qui a déclenché l’action en utilisant une syntaxe semblable à celle-ci :

  `{{ application.callback_domain }}/result_page`

  Notez que même si la variable s’appelle `callback_domain`, il s’agit en réalité d’une origine et elle inclut donc le protocole en plus du domaine, par exemple `https://myapp.com`.

  Si votre application contient plusieurs **URL de rappel autorisées** et configurées, Auth0 utilisera la première URL répertoriée. Vous pouvez également fournir une origine par défaut en utilisant la syntaxe Liquid :

  `{{ application.callback_domain | default: "https://my-default-domain.com" }}/result_page`

  ##### URL de redirection dynamique

  En fonction du nom de votre application, vous pouvez configurer différentes URL de redirection. Par exemple :

  `{% if application.name == 'JWT.io' %} https://jwt.io {% else %} https://auth0.com {% endif %}`

  Étant donné que le nom de l’application est encodé pour des raisons de sécurité, vous devez toujours utiliser une valeur encodée (surtout si le nom de votre application contient un caractère qui change une fois encodé). Par exemple, vous allez vouloir utiliser `My%20App` au lieu de `My App`.

  Pour les applications web à page unique (SPA), l’URL de **redirection** peut contenir le hash et le chemin pour un état ou une vue en particulier dans l’application, suivis des paramètres du chemin. Cela peut engendrer le problème suivant avec l’URL de **redirection** :

  `http://localhost:3000/#/register`

  Ce qui entraînera la redirection de l’utilisateur vers l’URL suivante :

  ```lines theme={null}
  http://localhost:3000/?supportSignUp=true
    &supportForgotPassword=true
    &email=john.doe%40exampleco.com
    &message=Your%20email%20was%20verified.%20You%20can%20continue%20using%20the%20application.
    &success=true#/register
  ```

  Ceci est décrit par les normes Internet (pour en apprendre davantage, lisez la spécification [RFC 3986](https://tools.ietf.org/html/rfc3986#section-3) de l’Internet Engineering Task Force) qui définissent l’ordre attendu d’une URL comme suit `scheme|authority|path|query|fragment`. Cependant, les cadres d’applications SPA (comme Angular) attendent généralement des URL au format `scheme|authority|path|fragment|query`(avec les paramètres de la chaîne de requête à la fin). Cela pousse l’application à ne pas entrer dans l’état attendu. Par exemple, avec l’URL susmentionnée, l’application sera dirigée vers `/` au lieu de `/#/register (registre)`.

  Pour contourner cette limitation des cadres d’applications SPA, il est recommandé d’utiliser une URL de rappel côté serveur comme l’URL de **redirection** avec un paramètre de `chemin` qui préserve le chemin de l’application SPA pour la redirection. Une fois dans cette URL côté serveur, il suffit de rediriger vers le chemin de l’application Web à page unique enregistrée dans le paramètre de `chemin` avec le reste de la chaîne de requête.

  1. Ajoutez une URL côté serveur comme URL de **redirection** avec un paramètre de route qui enregistre le chemin de l’application à page unique (SPA) pour la redirection.
     `http://localhost:3001/register?route=register`
  2. Créez un contrôleur de chemin côté serveur qui lit le `chemin` et les autres paramètres de l’URL, puis redirige vers la route de l’application Web monopage indiquée dans le paramètre de `chemin`. N’oubliez pas d’ajouter les autres paramètres reçus d’Auth0.

     ```javascript lines theme={null}
     var express = require('express');
     var router = express.Router();
     var qs = require('qs'); // to read query string params and stringify them

     router.get('/register', function(req, res, next) {
       var route = req.query.route; // retrieve the route param that contains the SPA client side route user needs to be redirected to.

       delete req.query.route; // remove it from query params.
       res.redirect('http://localhost:3000/#/' + route + '?' +  qs.stringify(req.query)); // Send a 302 redirect for the expected route
     });

     module.exports = router;
     ```
</Accordion>

<Accordion title="5 Corps du message">
  Les corps de message contiennent du contenu HTML et la syntaxe Liquid est la syntaxe de modélisation à utiliser qui est actuellement prise en charge. Vous pouvez utiliser toutes les variables courantes, ainsi que les variables définies dans chaque modèle individuel.

  ##### Modèles de courriels multilingues

  Vous pouvez utiliser la syntaxe Liquid conjointement avec la propriété`user_metadata.lang` de l’objet utilisateur pour modifier le contenu en fonction de la langue préférée de l’utilisateur. Par exemple, vous pouvez [utiliser une action](/docs/fr-ca/customize/actions/actions-overview) pour définir la propriété `user_metadata.lang`sur`it` pour l’italien. Vous devez définir la propriété de langue au moyen d’une action ou autrement.

  ##### Déboguer les variables du modèle Liquid

  Pour vous aider dans le développement de vos modèles, nous avons ajouté une balise `{% debug %}` Liquid personnalisée qui affiche un résumé des variables de modèle disponibles pour votre modèle lors de son rendu. N’oubliez pas de supprimer cette balise de tous les modèles en « direct ».
</Accordion>

## En savoir plus

* [Description des modèles de courriel](/docs/fr-ca/customize/email/email-templates/email-template-descriptions)
* [Personnaliser les courriels des comptes bloqués](/docs/fr-ca/customize/email/customize-blocked-account-emails)
* [Personnaliser le traitement des courriels](/docs/fr-ca/customize/email/manage-email-flow)
* [Configuration des notifications par courriel pour MFA](/docs/fr-ca/secure/multi-factor-authentication/multi-factor-authentication-factors/configure-email-notifications-for-mfa)
* [Utilisation de la syntaxe Liquid dans les modèles de courriel](/docs/fr-ca/customize/email/email-templates/use-liquid-syntax-in-email-templates)
