Automatiser l'envoi de plusieurs emails et plusieurs attachement différents avec Power Automate

Étiquetté : ,

  • Automatiser l'envoi de plusieurs emails et plusieurs attachement différents avec Power Automate

    Posté par CedZ sur 20 avril 2022 à 13h14
    • Bonjour à tous,

      Je cherche le moyen d’automatiser l’envoi d’une centaine d’emails vers des adresses différentes avec des attachements différents.
      Les adresses emails et attachements sont contenus dans une liste SharePoint.

      N’ayant qu’une expérience basique avec Power Automate j’ai consulté plusieurs sites et ai essayé de produire une solution qui m’amène l”erreur suivante ” ‘Append to string variable’ are not valid. Self reference is not supported when udating the value of variable ‘Email’ ”.
      Voici e gros les étapes du flow

      Manually trigger a flow
      Get Items -(dans lequel j’indique le site SP et la liste)-
      Initilize variable -(Nom ‘Email’ et Type ‘String’)-
      Apply to each – Append to string variable -(output =’value’ & dans l’Append j’indique ma variable Email
      Send an email V2 – (pour le moment je n’ai que l’email du destinataire, mais je ne vois pas comment référer la pièce jointe contenue dans la liste SP (?)) -.

    • Est-ce-que Power Automate est adapté pour ce genre de scenario ou verriez-vous une autre alternative ? Si quelqu’un peut m’aider ce serait apprécié. Merci à tous,

      Cédric

    PostID=jVjLGvVNxvZ2sbz

    Guillaume RENARD a répondu Il y a 2 mois, 3 semaines 1 Membre · 3 Réponses
  • 3 Réponses
  • Guillaume RENARD

    Membre
    20 avril 2022 à 14h26

    Bonjour Cédric,

    L’erreur retournée par Power Automate semble liée à une mauvaise utilisation de l’action Append to string variable, celle-ci ne pouvant pas faire référence à elle-même.
    Cependant, je pense que dans ton cas d’utilisation, il n’y ait pas besoin d’utiliser une variable pour l’email.

    Si je comprends bien, tu disposes d’une liste SharePoint avec :
    – une colonne Email : champ texte contenant le destinaire de l’email à envoyer
    – des pièces jointes attachées aux éléments de la liste SharePoint

    La première action à effectuer est bien de récupérer les éléments de la liste SharePoint (Get Items)

    Il faut effectivement ensuite faire une boucle sur les éléments récupérés pour pouvoir envoyer un mail pour chacun.
    Dans cette boucle, on ajoute l’action Send an email V2, et on renseigne le destinataire directement avec la valeur contenue dans le champ correspondant dans la liste SharePoint (ici pour moi le champ Title)

    Pour la récupération de la pièce jointe, cela se passe en plusieurs étapes.
    Il faut tout d’abord utiliser l’action Get attchments, pour récupérer les pièces jointes liées à notre élément de liste.

    Après cette action, comme plusieurs pièces peuvent être jointes à un seul et même élément SharePoint, il faut faire une nouvelle boucle (Apply to each) pour traiter chacune d’entre elles.

    L’action Get attachments ne nous retournant que l’ID et le nom de la pièce jointe, il faut dans cette nouvelle boucle, utiliser une seconde action (Get attachement content) pour récupérer le contenu de la pièce jointe.

    Pour pouvoir joindre les pièces jointes aux emails, il faut dans les propriétés avancées de l’action, cliquer sur l’icône T pour pouvoir modifier la valeur attendue pour la propriété Attachment.

    Et ainsi pouvoir passer les informations liées aux pièces jointes sous forme de tableau de données.

    Le format attendu pour ce tableau de données est le suivant :

    {n    "Name":nom_piece_jointe,n    "ContentBytes":contenu_piece_jointen}

    Pour construire ce tableau, il faut déclarer une variable en début de flow, avec l’action Initialize variable.

    Et dans la boucle sur les pièces jointes, ajouter l’action Append to array variable pour ajouter pour chacune des pièces jointes, une entrée dans le tableau.

    Il reste alors à indiquer dans l’action de l’email, pour la propriété Attachments, la variable de type tableau.

    Et à utiliser une action Set variable, pour vider le tableau des pièces jointes avant de boucler sur l’élément suivant de la liste SharePoint.

    C’est en tout cas un très bon cas d’utilisation d’automatisation d’une tâche récurrente et qui peut faire gagner un temps précieux 👍

    CommentID=koBMScwjF2s0MrI, PostID=jVjLGvVNxvZ2sbz

  • CedZ

    Membre
    21 avril 2022 à 3h44

    Bonjour Guillaume merci beaucoup pour cette description si complète avec les explications.

    J’ai reproduit le même flow cependant lorsque je le roule j’ai un message d’erreur suivant :”the expression of template ction ‘apply to ech 2’ failed; thevresult of the evaluation of ‘foreach’expression ‘@body(‘get items) is of type object. result must be a valid array. ”

    Je ne vois pas ou se trouve l’erreur dans le step de ”Get items” car je ne fais que renseigner le sharepoint ainsi que la liste.

    Merci encore,j’ai beaucoup à apprendre sur Power Automate et ce genre d’explications m’aident énormément.

    Bonne journée,

    Cédric

    CommentID=kfUu1N9ppNypyVR, PostID=jVjLGvVNxvZ2sbz

  • Guillaume RENARD

    Membre
    21 avril 2022 à 7h54

    Bonjour @CedZ,

    Le problème ne provient pas de l’action Get items, mais comme l’erreur l’indique, sur le paramétrage de l’action Apply to each 2.

    Le paramètre à indiquer pour ce champ doit être la propriété body de l’action Obtenir les pièces jointes.
    A ce niveau du flux, c’est sur les pièces jointes de notre élément SharePoint que l’on souhaite faire une boucle pour récupérer le contenu des fichiers.

    CommentID=ud9NwcQt782vK4p, PostID=jVjLGvVNxvZ2sbz

Connectez-vous pour répondre.