📨Fonction : Send Email

Objectif

Cette fonction Xano envoie un email transactionnel en utilisant l'API Resend, en récupérant le contenu de l'email à partir d'un modèle et en insérant du contenu dynamique. Elle inclut une gestion d'erreurs robuste et une collecte complète des variables pour le débogage.

Inputs

  • email : L'adresse email du destinataire (type : email)

  • dynamic_content : Un objet contenant le contenu dynamique à insérer dans l'email (type : object)

  • transactional_emails_id : L'ID du modèle d'email à utiliser (type : integer)

Étapes de la fonction

  1. Get Record From transactional_emails:

    • Recherche l'enregistrement dans la table transactional_emails en utilisant l'ID fourni

    • Retourné comme : current_email

  2. Get Record From messages:

    • Recherche un message d'erreur avec le nom interne "no_email_template_found"

    • Retourné comme : error_notemplate

  3. Précondition :

    • Condition : var:current_email|is_empty == false

    • Message d'erreur : var:error_notemplate.message

  4. API Request To Resend:

    • URL : https://api.resend.com/emails

    • Méthode : POST

    • Paramètres :

      • from : %s <%s> (nom de l'expéditeur et email)

      • to : input:email

      • subject : var:current_email.subject

      • html : var:current_email.content (avec remplacement dynamique)

    • Headers :

      • Authorization: Bearer env:resend_api_key

      • Content-Type: application/json

    • Timeout : 10 secondes

    • Retourné comme : send_email

  5. Get Record From messages:

    • Recherche un message d'erreur avec le nom interne "email_not_sent"

    • Retourné comme : error_email

  6. Vérifier que l'email a bien été envoyé et que ça a fonctionné:

    • Précondition : var:send_email.response.status != 400

    • Message d'erreur : var:error_email.message

    • Payload :

      • type : var:error_email.type

      • input : var:error_email.input

    • Type d'erreur : Standard

  7. Get Variables:

    • Récupère toutes les variables de la fonction

    • Retourné comme : __all_vars

Fonctionnement

  1. La fonction récupère le modèle d'email à partir de l'ID fourni.

  2. Elle vérifie que le modèle existe, sinon elle renvoie une erreur.

  3. Elle prépare la requête à l'API Resend en insérant le contenu dynamique dans le modèle d'email.

  4. Elle envoie la requête à l'API Resend pour envoyer l'email.

  5. Elle vérifie le statut de la réponse de l'API Resend.

  6. Si le statut n'est pas 400 (ce qui indique un succès), elle considère que l'email a été envoyé avec succès.

  7. En cas d'erreur (statut 400), elle prépare un message d'erreur avec des détails supplémentaires.

  8. Enfin, elle récupère toutes les variables de la fonction pour un éventuel débogage ou traitement ultérieur.

Response

La fonction retourne toutes les variables de la fonction dans __all_vars, accessible via la clé send_email dans la réponse.

Gestion des erreurs

La fonction inclut plusieurs niveaux de gestion des erreurs :

  1. Vérification de l'existence du modèle d'email avant l'envoi.

  2. Capture des erreurs potentielles lors de l'appel à l'API Resend.

  3. Vérification du statut de la réponse après l'envoi de l'email.

Chaque étape de vérification est associée à un message d'erreur spécifique, permettant une identification précise du problème en cas d'échec.

Utilisation

Cette fonction est utilisée pour envoyer des emails transactionnels personnalisés aux utilisateurs. Elle peut être appelée à différents moments dans l'application, par exemple lors de l'inscription d'un utilisateur, de la réinitialisation d'un mot de passe, ou de l'envoi de notifications importantes.

Cette fonction offre une gestion robuste des erreurs et une collecte complète des variables, ce qui la rend particulièrement utile pour le débogage et le suivi des emails transactionnels dans l'application.

Dernière mise à jour