SharePointの画像をPower Automateのメール本文に挿入しても、受信側で「×印」になって表示されない問題。これは画像への直リンクが原因。
これを解決するには、画像をBase64(データ文字列)に変換して埋め込む必要がある。
本記事では、画像を確実に表示させる実装手順と、標準アクションでは非対応の「画像付きメールの下書き保存」をGraph APIで実現する方法を解説。
本記事のシナリオ:SharePointの画像をメール本文に埋め込む

Power Automateで画像をBase64変換してメール送信する手順




Graph APIを使って画像付きメールを下書き保存する方法
続いて下書き保存。メールを下書き保存にするには、Graph API「https://graph.microsoft.com/v1.0/me/messages」を使用する。

本文
{
"subject":"【メールのタイトル】",
"body":{
"contentType":"HTML",
"content":"@{outputs('作成:HTML本文')}"
},
"toRecipients":[
{
"emailAddress":{
"address":"【送信先メールアドレス】"
},
"emailAddress":{
"address":"【送信先メールアドレスはこのように増やしていけば複数指定も可能】"
}
}
]
}

トラブルシューティング:画像が表示されない・添付されない場合
dataUri関数を利用した方法だと、環境やタイミングによって下書きメールに画像が挿入されない事象が発生することがあるらしい(原因不明)。
下書きメールに画像が挿入されないときや、下書きメールを送信したときに画像が挿入されない、といった事象が発生した場合は、base64データ文字列を使って下書きに画像を挿入する方法も使える。
@{base64(outputs('パスによるファイル_コンテンツの取得:png')?['body'])}


<p>png</p>
<img src='data:image/png;base64, @{outputs('作成:base64_png')}' height='240' />
<p>jpg</p>
<img src='data:image/jpg;base64, @{outputs('作成:base64_jpg')}' height='240' />
<p>gif</p>
<img src='data:image/gif;base64, @{outputs('作成:base64_gif')}' height='240' />

