Azure Logic app : How to Send an Email with one or more attachments after getting the content from Blob storage?

Sagar K picture Sagar K · Jul 23, 2018 · Viewed 18.8k times · Source

I want to read blob contents using azure logic app get blob contents connector and send that contents as attachment via email using azure logic app send email connector.

Attachments could be one or more.

Send email requires attachment data in following json format :

[
  {
    "ContentBytes": "@{body('Get_blob_content')}",
    "Name": "Test"
  }
]

Answer

Joey Cai picture Joey Cai · Jul 24, 2018

You could add When a blob is added or modified (properties only) (Preview) as trigger to focus on the Container which you want to listen to.

Then add Get blob content as action to get the blob content.

Finally add Send email as action to sent email to users. Here I choose Gmail and as you have add Get blob content action, so in Attachments Content column you could insert File Content which is equal to @{base64(body('Get_blob_content'))}.

If you want to add one or more attachment, you only need to click Add new item in Send email action.

Here is designer screenshot and code view screenshot. enter image description here enter image description here


For attaching a dynamic number of files to an email, there is a toggle in the UI to use an input array instead

toggle-for-dynamic-input

which changes the UI to something like this

dynamic-attachments-input

The input here expects an array of items in this format

{
  "Name": "<NameOfFile>",
  "ContentBytes": "<Base64OfFileContent>"
}