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

# Modifier le modèle de script de courriel

> Décrit le script d’action personnalisé de la base de données permettant de modifier l’adresse courriel d’un utilisateur.

Le script Change Email (Modifier le courriel) met en œuvre la fonction définie lorsque l’adresse de courriel d’un utilisateur ou son statut de vérification de l’adresse courriel change. Nous recommandons de nommer cette fonction `changeEmail` (Modifier le courriel).

Le script est seulement utilisé dans un [scénario d’authentification héritée](/docs/fr-ca/authenticate/database-connections/custom-db/overview-custom-db-connections), et est nécessaire si vous souhaitez mettre à jour l’adresse de courriel d’un utilisateur (et/ou le statut de vérification de l’adresse courriel) dans Auth0 et dans votre base de données externe au cours de la même opération.

Le script Modifier le courriel n’est pas configurable via Auth0 Dashboard. Pour gérer ce script, vous devez utiliser le point de terminaison de Management API Auth0 [Créer une connexion](https://auth0.com/docs/api/management/v2#!/Connections/post_connections) ou [Mettre à jour une connexion](https://auth0.com/docs/api/management/v2#!/Connections/patch_connections_by_id), ou l’outil [Auth0 Deploy CLI](/docs/fr-ca/deploy-monitor/deploy-cli-tool).

<Warning>
  Si vous gérez les scripts d’action de la base de données d’une connexion personnalisée via le Auth0 Dashboard (Tableau de bord Auth0), le script de changement de courriel sera automatiquement supprimé lors de l’enregistrement.

  Pour vous assurer que le script de modification de courriel n’est pas supprimé accidentellement, utilisez Management API Auth0 ou l’outil Auth0 Deploy CLI lorsque vous gérez la connexion.

  Si vous changez manuellement l’adresse courriel d’un utilisateur dans votre base de données personnalisée, vous devez patcher l’utilisateur séparément. Auth0 ne détectera pas automatiquement le changement.
</Warning>

## Fonction changeEmail

La fonction changeEmail devrait :

* Mettre à jour de l’adresse courriel de l’utilisateur dans la base de données externe.
* Renvoyer une erreur si l’opération a échoué ou si une erreur s’est produite.

### Définition

La fonction `changeEmail` accepte quatre paramètres et renvoi à une fonction de `callback` :

```javascript lines theme={null}
changeEmail(email, newEmail, verified, callback): function
```

| Paramètre  | Type           | Description                                                                                        |
| ---------- | -------------- | -------------------------------------------------------------------------------------------------- |
| `email`    | Chaîne         | Adresse courriel actuelle de l’utilisateur.                                                        |
| `newEmail` | Chaîne         | Valeur à définir comme nouvelle adresse courriel de l’utilisateur dans la base de données externe. |
| `verified` | Boolean        | Statut de vérification du courriel de la nouvelle adresse courriel.                                |
| `callback` | Fonctionnalité | Utilisée pour transmettre les données d’erreur à travers le pipeline.                              |

### Exemple

Il s’agit d’un exemple pseudo-JavaScript de la manière dont vous pourriez implémenter la fonction `changeEmail` :

```javascript lines theme={null}
function (email, newEmail, verified, callback) {
  // Prepare the API call
  let options = {
    url: "https://example.com/api/users",
    action: "PATCH",
    body: {
      email: email,
      new_email: newEmail,
      email_verified: verified
    }
  };

  // Call the API
  send(options, err => {
    // Return `false` value in callback if operation failed
    if (err && err.id == "FAIL_CHANGE_EMAIL") {
      return callback(null, false);
    } else if (err) {
      // Return error in callback if unspecified error occurred
      return callback(new Error("My custom error message."));
    }

    // Return `true` value in callback if operation succeeded
    return callback(null, true);
  });
```

## Fonction de rappel

La fonction de `callback` accepte deux paramètres et renvoie une fonction.

### Définition

```javascript lines theme={null}
callback(error, operationResult): function
```

| Paramètre         | Type    | Requis     | Description                                                     |
| ----------------- | ------- | ---------- | --------------------------------------------------------------- |
| `error`           | Objet   | Requis     | Contient des données d’erreur.                                  |
| `operationResult` | Booléen | Facultatif | Indique le résultat de l’opération de modification de courriel. |

### Retourne un succès

Si l’opération de modification de courriel est réussie, renvoyez la fonction de `callback`, et passez à une valeur `null` comme paramètre d’`error` et une valeur `true` comme paramètre `operationResult` :

```javascript lines theme={null}
return callback(null, true);
```

### Renvoyer un échec

Si l’opération de modification du courriel a échoué, renvoyez la fonction de `callback`, et passez à une valeur `null` comme paramètre d’`error` et une valeur `false` comme paramètre `operationResult` :

```javascript lines theme={null}
return callback(null, false);
```

### Renvoyer une erreur

Si une erreur survient, renvoyez la fonction de `callback`, et passer l’information pertinente concernant l’erreur comme paramètre `error` :

```javascript lines theme={null}
return callback(new Error("My custom error message."));
```

## En savoir plus

* [Modifier les modèles de script de mot de passe](/docs/fr-ca/authenticate/database-connections/custom-db/templates/change-password)
* [Créer des modèles de script](/docs/fr-ca/authenticate/database-connections/custom-db/templates/create)
* [Modèles de script de suppression](/docs/fr-ca/authenticate/database-connections/custom-db/templates/delete)
* [Modèles de script Get User](/docs/fr-ca/authenticate/database-connections/custom-db/templates/get-user)
* [Modèles de script de connexion](/docs/fr-ca/authenticate/database-connections/custom-db/templates/login)
* [Modèles de scripts Verify](/docs/fr-ca/authenticate/database-connections/custom-db/templates/verify)
