Showing results for 
Search instead for 
Did you mean: 
Regular Visitor

Send 1 email with all attachments


  • We have a sharepoint "tickets" list.
  • A ticket can contain multiple attachments.
  • We use a flow to send a status email about the changes to their ticket.

If we send a status update and there are no attachments, then my flow works perfectly.

If we send a status update and there is only 1 attachment, then it also works perfectly.

However, when we send a status email and there are multiple attachments in that ticket, then as many status emails are sent as there are attachments.


My current flow looks like this:Naamloos.png

I have read a lot and tried a lot, but the flow continues to send multiple emails equal to the number of attachments. I hope someone can say what I am doing wrong or has a solution for me.


Accepted Solutions

@RDolfing ,

for txt. file you have to convert content byte in Base64. Try to use this formula

  "Name": "@{items('Apply_to_each')?['DisplayName']}",
  "ContentBytes": "base64(body('Get_attachment_content'))"



View solution in original post

Super User
Super User

@RDolfing, your Send an email is inside the Apply to each so will; send an email for each attachment. Try moving it below/outside the apply to each.

Los Gallardos
If I've answered your question or solved your problem, please mark this question as answered. This helps others who have the same question find a solution quickly via the forum search. If you liked my response, please consider giving it a thumbs up. Thanks.

Kudo Kingpin
Kudo Kingpin

Hi @RDolfing ,

First of all get your send Email Action out of the Apply to each Section Like this;


Now Select Attachment in send Email action;


For Any Assitance feel free to Post.



Thank you for the suggestion. I've tested that already... then it's giving me an error:


The template validation failed: 'The inputs of template action 'Send_an_email' at line '1 and column '5111' is invalid. Action 'Apply_to_each' must be a parent 'foreach' scope of action 'Send_an_email' to be referenced by 'repeatItems' or 'items' functions.'.


When I re-edit the Attachments Name - "DisplayName" and my variable "TicketAttachments" in Attachments Content within "Advanced Options" of "Send an email", hits [Save[ again... my flow is automatically adjusted and a message appears:


Based on the output parameters you selected, we've added a for each container for you. For each enables you to perform actions for each individual item in a set of values


So a new "Apply to each" appears:Naamloos.png



Hi @Harry_G  (and @RobElliott )


I managed to configure the "Send an email" outside the "Apply to each" Section, by "Attachments" clicked to switch view and added my variable. Saved the flow again did a testrun. It fails now:


Action 'Send_an_email' failed


Error Details
Parameter 'Attachment Content' cannot be null or empty.
clientRequestId: 7f04ead9-df5d-43d1-a879-5f1d9dc546f3


Note that the same variable was used before and was succesfull (ie only 1 email per attachment)

So why is the content now empty?

@RDolfing Kindly upload your screen shot of error with full Flow and expression written in append to variable action.




@Harry_G wrote:

@RDolfing Kindly upload your screen shot of error with full Flow and expression written in append to variable action.




Hi @Harry_G ,


My full flow including the expression written in "append to array variable"Naamloos.png


The exact code:

  "Name": @{items('Apply_to_each')?['DisplayName']},
  "ContentBytes": @{items('Apply_to_each')?['$content']}

The error screenshot after a testrun:Knipsel.PNG

The exact error:

Parameter 'Attachment Content' cannot be null or empty.
clientRequestId: 88479fd5-2ee9-4ce7-bcc8-cb30495f9d99


Another addition after moving the "for each" befor the "condition".

The array variable is filled with the (in this case 3) attachments but the ContentBytes is now "null"?Knipsel.PNG


@RDolfing ,

for txt. file you have to convert content byte in Base64. Try to use this formula

  "Name": "@{items('Apply_to_each')?['DisplayName']}",
  "ContentBytes": "base64(body('Get_attachment_content'))"



@Harry_G ,

n advance, I am happy with the help you offer! So thanks for that!

However, I have pasted that code and then re-executed the flow, after which I received the error message below.

Unable to read message or attachment content.
clientRequestId: 5a94a6e2-2484-476b-a834-58dddfd64ae9
serviceRequestId: 898c1a6e-e25c-4f0d-a620-787213ca9838

Conclusion: it appears that my previous workflow already works as long as they are not TXT attachments.
Is there a solution for this? So what if I have a PDF and a TXT attachment in a ticket? Or only TXT attachments (what I used during testing 😉

@RDolfing ,

You just have to convert .txt attachment in Base64, however rest of attachment extension already in base 64 format. Please apply condition for .txt file. first three images show how to tackle .txt attachments and other 2 images show how to tackle with other than .txt file.






I have solved the issues... the TXT files were solved with the expression 


But what if you have a TXT and another attachment (such as PDF)? The solution for that, a second "append to array variable" with "configure run after" on "have failed" selected. That did the trick (together with your solution to convert it to base64) 😉




This comment was the key for me!! Thx!

Helpful resources

Power Platform Conf 2022 768x460.jpg

Join us for Microsoft Power Platform Conference

The first Microsoft-sponsored Power Platform Conference is coming in September. 100+ speakers, 150+ sessions, and what's new and next for Power Platform.

New Ideas Forum MPA.jpg

A new place to submit your Ideas for Power Automate

Announcing a new way to share your feedback with the Power Automate Team.

Carousel_PP_768x460_Wave2 (1).png

2022 Release Wave 2 Plan

Power Platform release plan for the 2022 release wave 2 describes all new features releasing from October 2022 through March 2023.

MPA Virtual Workshop Carousel 768x460.png

Register for a Free Workshop

Learn to digitize and optimize business processes and connect all your applications to share data in real time.

365 EduCon 768x460.png

Microsoft 365 EduCon

Join us for two optional days of workshops and a 3-day conference, you can choose from over 130 sessions in multiple tracks and 25 workshops.

Users online (3,172)