Sending email with inline images via MicrosoftGraph and MicrosoftFlow
/I had previously written how we can use Send Email as Anyone in Microsoft Graph, and as a bonus wrote a section on how we can use it to send inline images.
There was a small problem - sending email is very hard for app-only permissions - app accounts don’t have email boxes. So for that scenario to work, app accounts need a super crazy “send email as anyone” permission.
Sending email is a lot easier with delegate permission - if we have delegate permission Mail.Send - we can send inline attachments very easily. This is not an admin-tenant approval required permission, so any user can grant this.
Plan
Combine two techniques:
Send email via Microsoft Graph to send inline images
Use custom $batch connection (aka the magic wand) to do this via delegate permission
To aad.portal.azure.com
Add Mail.Send (delegate permission)
If you can “grant permissions” to your tenant, doing it here will immediately grant this to your current connection.
Otherwise we have to go back to our Flow connectors and make a new connection for batch.
Create our Flow
Here we are creating a MSGraph mail object JSON getting it ready for send
Using a $batch connector - call /me/sendMail
Results
Inline images are super useful for newsletter or emails where you want to include a nice header, signature or whatever in-between. This is a way to send these with Microsoft Graph and Microsoft Flow.