Passer au contenu principal

Configurer une Action de fournisseur de courriel à l’aide de l’Auth0 Dashboard

Pour utiliser l’Auth0 Dashboard afin de configurer votre locataire avec une Action de fournisseur de courriel personnalisée :
  1. Accédez à Auth0 Dashboard > Image de marque > Fournisseur de courriel.
  2. Activez le bouton bascule Use my own email provider.
  3. Dans la section fournisseur de courriel, sélectionnez fournisseur personnalisé.
  4. Dans le champ From, entrez l’adresse de 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 les messages à votre fournisseur de courriel. Consultez la documentation de votre fournisseur pour 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 en forme de clé pour ajouter des secrets (par exemple, pour vous authentifier auprès d’une API), puis 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 pour gérer l’Action et ses versions. Toutes les Actions sont soumises aux mêmes limitations.

Configurer une Action de fournisseur de courriel à l’aide de Terraform

Le fournisseur Auth0 pour Terraform utilise la Auth0 Management API pour effectuer des opérations sur la plateforme Auth0. Vous pouvez utiliser le fournisseur Auth0 pour Terraform pour créer une Action de fournisseur de courriel personnalisée et configurer votre locataire pour l’utiliser.

1. Dissociez ou supprimez les Actions en conflit

Vous ne pouvez avoir qu’une seule Action associée au déclencheur custom-email-provider. Si votre locataire est déjà configuré avec une Action personnalisée de fournisseur de courriel, réinitialisez-la avant de créer une nouvelle Action de fournisseur de courriel avec Terraform :
  1. Accédez à Auth0 Dashboard > Image de marque > Fournisseur de courriel.
  2. Dans la section Fournisseur de courriel, cliquez sur Fournisseur personnalisé.
  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. Dressez la liste de vos Actions pour repérer les doublons.
  2. Mettez à jour leurs associations au déclencheur ou supprimez les Actions.

2. Créez une nouvelle Action de fournisseur de courriel

Utilisez la ressource Terraform auth0_action pour créer une Action compatible avec le déclencheur custom-email-provider. Définissez deploy = true pour qu’une nouvelle version de l’Action soit créée immédiatement.
resource "auth0_action" "custom_email_provider" {
  name    = "Custom Email Provider"
  runtime = "node20"
  deploy  = true
  code    = <<-EOT
    /**
    * Handler to be executed while sending an email notification
    * @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) => {
      // Insérer le code ici
      return;
    };
  EOT
  supported_triggers {
    id      = "custom-email-provider"
    version = "v1"
  }
}
Dans l’ébauche de fonction, écrivez votre code Action pour transmettre des messages à votre fournisseur de courriel. Consultez la documentation de votre fournisseur pour obtenir des renseignements sur son API ou son serveur SMTP.

3. Associer l’Action au déclencheur du fournisseur de courriel

Utilisez la ressource Terraform auth0_trigger_action pour associer l’Action au déclencheur custom-email-provider :
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
  ]
 }

4. Configurez le fournisseur de courriel de votre locataire au moyen de l’Action

Utilisez la ressource Terraform auth0_email_provider pour configurer votre locataire de façon à ce qu’il utilise l’Action de fournisseur de courriel :
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 ne prend pas effet, il se peut qu’une Action déjà déployée soit lié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.

Exemple d’Action pour un fournisseur de courriel

Voici un exemple d’Action pour le déclencheur custom-email-provider. Dans cet exemple de code, la fonction onExecuteCustomEmailProvider reçoit deux arguments de l’objet d’événement custom-email-provider : event, qui contient des renseignements sur l’utilisateur et le contexte de la notification, et api, qui fournit des méthodes utilitaires pour personnaliser le comportement lors de l’envoi des notifications.
/**
 * Gestionnaire à 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 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 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 les Actions, consultez Comprendre le fonctionnement des Auth0 Actions.