2
votes

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"
  }
]
2

2 Answers

7
votes

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>"
}
0
votes

For me, I had to use array variable in below format.

{
  "ContentData": "<Base64OfFileContent>",
  "FileName": "FileName.txt"
}

Instead of "Name" I used "FileName" and instead of "ContentBytes" I used "ContentData".