Many developers try embedding images directly into HTML emails using Base64 Data URI format , while this works in browsers, most email clients like especially Outlook block or ignore Data URI images for security reasons.

Stepwise Implementation

1 - Create a flow

2 - Get image or gif from Dcument library

Screenshot - 2026-05-25T140800.823

3 - Add img tag with image Content ID

Screenshot - 2026-05-25T141033.917

4 - Add HTTP action

Screenshot - 2026-05-25T141350.332
Url: https://graph.microsoft.com/v1.0/me/sendMail
Body: {
  "message": {
    "subject": "Email With Embedded Image (size > 1 mb)",
    "body": {
      "contentType": "HTML",
      "content": "@{outputs('Compose_2')}"
    },
    "toRecipients": [
      {
        "emailAddress": {
          "address": "[email protected]"
        }
      }
    ],
    "attachments": [
      {
        "@odata.type": "#microsoft.graph.fileAttachment",
        "name": "giphy.gif",
        "contentType": "@{body('Get_file_content_using_path')?['$content-type']}",
        "contentBytes": "@{body('Get_file_content_using_path')?['$content']}",
        "isInline": true
      }
    ]
  }
}

5 - Run the flow

Screenshot - 2026-05-25T141723.218

Conclusion

Here we have learnt that embedding images using the Data URI method may not work properly in many email clients, especially Microsoft Outlook. Using the cid: approach in Power Automate is a more reliable way to display inline images in email bodies by attaching the image and referencing it through a Content-ID.