> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Configurer un fournisseur de courriel avec une Action personnalisée

> Rédigez une Action qui achemine les messages par l’entremise de votre fournisseur de courriel depuis l’Auth0 Dashboard ou le Terraform Auth0 provider, et ajoutez une logique personnalisée adaptée à votre cas d’utilisation.

<div id="configure-an-email-provider-action-using-the-auth0-dashboard">
  ## Configurer une Action de fournisseur de courriel à l’aide de l’Auth0 Dashboard
</div>

Pour utiliser l’Auth0 Dashboard afin de configurer votre tenant avec une Action de fournisseur de courriel personnalisée :

1. Accédez à [Auth0 Dashboard > Branding > Email Provider](https://manage.auth0.com/#/templates/provider).

2. Activez la bascule **Use my own email provider**.

3. Dans la section **Email Provider**, sélectionnez **Custom Provider**.

4. Dans le champ **From**, saisissez l’adresse courriel par défaut à partir de laquelle les courriels seront envoyés.

5. Dans l’éditeur de code, écrivez le code de votre Action pour envoyer des messages à votre fournisseur de courriel. Consultez la documentation de votre fournisseur pour connaître les détails de son API ou de sa connexion SMTP.

   Dans le menu de gauche de l’éditeur de code, vous pouvez cliquer sur l’icône de clé pour ajouter des secrets (par exemple, pour vous authentifier auprès d’une API) et sur l’icône de boîte pour ajouter des dépendances.

6. Lorsque vous avez terminé d’écrire l’Action, cliquez sur **Save** pour la déployer.

Pour tester votre configuration, cliquez sur **Send Test Email**.

Comme pour les autres Actions, vous pouvez utiliser la [Management API](https://auth0.com/docs/api/management/v2/actions/get-actions) pour gérer l’Action et ses [versions](/docs/fr-ca/customize/actions/manage-versions). Toutes les Actions sont soumises aux mêmes [limitations](/docs/fr-ca/customize/actions/limitations).

<div id="configure-an-email-provider-action-using-terraform">
  ## Configurer une Action de fournisseur de courriel à l’aide de Terraform
</div>

Le [Terraform Auth0 provider](https://registry.terraform.io/providers/auth0/auth0/latest/docs) utilise l’[Auth0 Management API](https://auth0.com/docs/api/management/v2) pour effectuer des opérations sur la plateforme Auth0.

Vous pouvez utiliser le Terraform Auth0 provider pour créer une Action de fournisseur de courriel personnalisé et configurer votre tenant pour l’utiliser.

<div id="1-unbind-or-delete-conflicting-actions">
  ### 1. Dissocier ou supprimer les Actions en conflit
</div>

Vous pouvez avoir au maximum une Action associée au déclencheur `custom-email-provider`.

Si votre tenant est déjà configuré avec une Action de fournisseur de courriel personnalisé, réinitialisez cette Action avant de créer une nouvelle Action de fournisseur de courriel avec Terraform :

1. Accédez à [Auth0 Dashboard > Branding > Fournisseur de courriel](https://manage.auth0.com/#/templates/provider).
2. Dans la section **Fournisseur de courriel**, cliquez sur **Custom Provider**.
3. Sous l’éditeur de code Actions, cliquez sur **Réinitialiser**.

Vous pouvez vérifier si d’autres Actions déployées sont associées au déclencheur `custom-email-provider` à l’aide de la Management API :

1. [Listez vos Actions](https://auth0.com/docs/api/management/v2/actions/get-actions) pour repérer toute Action en double.
2. [Mettez à jour les liaisons de leur déclencheur](https://auth0.com/docs/api/management/v2/actions/patch-bindings) ou [supprimez les Actions](https://auth0.com/docs/api/management/v2/actions/delete-action).

<div id="2-create-a-new-email-provider-action">
  ### 2. Créer une nouvelle Action de fournisseur de courriel
</div>

Utilisez la ressource [Terraform `auth0_action`](https://registry.terraform.io/providers/auth0/auth0/latest/docs/resources/action) pour créer une Action qui prend en charge le déclencheur `custom-email-provider`. Définissez `deploy = true` pour créer immédiatement une nouvelle version de l’Action.

```terraform lines theme={null}
resource "auth0_action" "custom_email_provider" {
  name    = "Custom Email Provider"
  runtime = "node20"
  deploy  = true
  code    = <<-EOT
    /**
    * Handler à exécuter lors de l'envoi d'une notification par courriel
    * @param {Event} event - Détails sur l'utilisateur et le contexte dans lequel il se connecte.
    * @param {CustomEmailProviderAPI} api - Méthodes et utilitaires pour modifier le comportement d'envoi d'une notification par courriel.
    */
    exports.onExecuteCustomEmailProvider = async (event, api) => {
      // Le code va ici
      return;
    };
  EOT
  supported_triggers {
    id      = "custom-email-provider"
    version = "v1"
  }
}
```

Dans le squelette de la fonction, écrivez le code de votre Action pour acheminer les messages à votre fournisseur de courriel. Consultez la documentation de votre fournisseur concernant son API ou les détails de son serveur SMTP.

<div id="3-bind-the-action-to-the-email-provider-trigger">
  ### 3. Associer l’Action au déclencheur du fournisseur de courriel
</div>

Utilisez la ressource [Terraform `auth0_trigger_action`](https://registry.terraform.io/providers/auth0/auth0/latest/docs/resources/trigger_action) pour associer l’Action au déclencheur `custom-email-provider` :

```terraform lines theme={null}
resource "auth0_trigger_action" "custom_email_provider" {
  trigger = "custom-email-provider"
  actions {
    id           = auth0_action.custom_email_provider.id
    display_name = auth0_action.custom_email_provider.name
  }
   depends_on = [
    auth0_action.custom_email_provider
  ]
 }
```

<div id="4-configure-your-tenants-email-provider-with-the-action">
  ### 4. Configurez le fournisseur de courriel de votre tenant avec l’Action
</div>

Utilisez la ressource Terraform [`auth0_email_provider`](https://registry.terraform.io/providers/auth0/auth0/latest/docs/resources/email_provider) pour configurer votre tenant afin d’utiliser l’Action du fournisseur de courriel :

```terraform lines theme={null}
resource "auth0_email_provider" "custom_email_provider" {
  name                 = "custom"
  enabled              = true
  default_from_address = "accounts@example.com"
  credentials {}
  depends_on = [
    auth0_trigger_actions.custom_email_provider
  ]
```

Si vous créez une nouvelle Action de fournisseur de courriel avec Terraform et qu’elle n’entre pas en vigueur, il se peut qu’une Action déployée soit déjà associée au déclencheur `custom-email-provider`. Pour résoudre ce problème, suivez la première étape de cet article pour [dissocier ou supprimer les Actions en conflit](#1-unbind-or-delete-conflicting-actions).

<div id="example-email-provider-action">
  ## Exemple d’Action de fournisseur de courriel
</div>

Voici un exemple d’Action pour le déclencheur `custom-email-provider`.

Dans cet exemple de code, la fonction `onExecuteCustomEmailProvider` prend en paramètre deux arguments de l’[`objet d’événement custom-email-provider`](/docs/fr-ca/customize/actions/reference/custom-email-provider/custom-email-provider-event-object) : `event`, qui contient des renseignements sur l’utilisateur et le contexte de la notification, et de l’[`objet API custom-email-provider`](/docs/fr-ca/customize/actions/reference/custom-email-provider/custom-email-provider-api-object) : `api`, qui fournit des méthodes utilitaires permettant de personnaliser l’envoi des notifications.

```javascript lines expandable theme={null}
/**
 * Handler à exécuter lors de l'envoi d'une notification par courriel.
 * @param {Event} event - Détails sur l'utilisateur et le contexte dans lequel il se connecte.
 * @param {CustomEmailProviderAPI} api - Méthodes et utilitaires pour modifier le comportement lors de l'envoi d'une notification par courriel.
 */
exports.onExecuteCustomEmailProvider = async (event, api) => {
  // Définir le payload du courriel
  const emailPayload = {
    from: {
      name: "Test Sender",
      email: "sender@example.com"
    },
    to: [{ email: event.user.email }],
    subject: event.notification.message_type,
    html: event.notification.html,
    text: event.notification.text,
  };
  try {
    // Effectuer l'appel d'API pour envoyer le courriel
    const response = await fetch('https://api.example.com/send-email', {
      method: 'POST',
      headers: {
        'Authorization': `Bearer ${event.secrets.api_key}`,
        'Content-Type': 'application/json',
      },
      body: JSON.stringify(emailPayload),
    });
    if (response.ok) {
      console.log('Email sent successfully');
    } else if (response.status >= 500) {
      api.notification.retry(
        `Internal Server Error received from Messaging Proxy. Status code: ${response.status}.`
      );
      return;
    }
  } catch (error) {
    console.error(`Error sending email: ${error.message}`);
    api.notification.drop(`An unexpected error occurred. Error: ${error.message}`);
  }
  return;
};
```

Pour en savoir plus sur Actions, consultez [Comprendre le fonctionnement d’Auth0 Actions](/docs/fr-ca/customize/actions/actions-overview).
