Power Automateを使ってメールを自動送信する際、画像を本文に表示したり添付したいケースは多くあります。例えば、レポートにグラフを含めたい場合や、ブランドロゴを挿入したい場合です。
本記事では、画像をメールに添付する3つの方法を紹介し、それぞれの特徴やメリット・デメリットを比較します。
事前準備
事前準備として、以下のように画像を用意しました。
- 方法1:インターネット上に公開され、外部からアクセス可能な画像を用意しました*1
- 方法2・3:SharePointのドキュメントライブラリ内に画像を配置しました
※ インターネット上に公開された画像の参照時は、著作権や利用規約に準拠した上で利用してください。自社のWebサーバーや、権利を確認済みのストレージを推奨します。
方法 1:<img>タグを利用して本文に添付
最もシンプルな方法は、HTMLメールの本文に<img>タグを記述し、画像のURLを指定する方法です。
手順
- Power Automateの「メールの送信」アクションで「</>」をクリックして、本文をHTML形式に設定します。

- 以下のように<img>タグを利用して記述します。widthやheightを使用して画像のサイズを変更する事もできます。

<img src="{画像のURL}"> - メールの本文に画像が添付されていることを確認します。

メリット・デメリット
メリット
- 簡単に実装できます。
- メールサイズが小さいです。
デメリット
- 画像は外部URLを参照するため、受信者のメールクライアントやセキュリティ設定によっては表示されない場合があります。
方法 2:<img>タグ+base64を利用して本文に添付
続きまして、画像をbase64形式に変換し、HTML本文に直接埋め込む方法を紹介します。
base64形式とは
Base64形式は、データをA-Z, a-z, 0-9, +, / の64種類の文字で表現するエンコード方式です。主に、バイナリデータ(画像やファイルなど)をテキストとして扱いたいときに使われます。
手順
- 「ファイル コンテンツの取得」アクションを使用して、SharePoint ドキュメントライブラリ上にある画像ファイルのコンテンツを取得します。

- 画像をbase64に変換(Power Automateの「式」で「base64」関数を使用して可能)します。

base64(outputs('ファイル_コンテンツの取得')?['body']) - Power Automateの「メールの送信」アクションで「</>」をクリックして、本文をHTML形式に設定します。

- <img>タグのsrc属性に「data:image/jpg;base64, {base64形式に変換したファイルコンテンツ}」を付けて埋め込みます。

<img src = "data:image/jpg;base64, {base64形式に変換したファイルコンテンツ}> - メールの本文に画像が添付されていることを確認します。

メリット・デメリット
メリット
- 外部のURLが不要になるので、オフラインでも表示することが可能です。
デメリット
- 画像が本文に埋め込まれるため、方法1よりメールサイズが大きくなります。
方法 3:添付ファイルとして添付
最後は、画像をメールの添付ファイルとして送信する方法です。
手順
- 「ファイル コンテンツの取得」アクションを使用して、SharePoint ドキュメントライブラリ上にある画像ファイルのコンテンツを取得します。

- Power Automateの「メールの送信」アクションで、添付ファイルの名前とファイルコンテンツを指定します。ファイルコンテンツは「ファイル コンテンツの取得」アクションで取得した動的なコンテンツ「ファイル コンテンツ」を使用します。

- 添付ファイルとして画像が添付されているメールを確認します。

メリット・デメリット
メリット
- 確実に画像を送信できます。
デメリット
- 画像が直接に表示されない場合は、受信者が添付ファイルをダウンロードして確認する必要があります。
3つの方法の比較
3つの方法の違いを表でまとめました。
| 方法 | 表示場所 | 外部URL参照 | 実装難易度 |
|---|---|---|---|
| imgタグ | 本文 | あり | 低 |
| imgタグ + base64 | 本文 | なし | 中 |
| 添付ファイル | 添付 | なし | 低 |
まとめ
本文に画像を表示したい場合は、方法1または方法2を使用します。
- 方法1は軽量で簡単ですが、外部URLの参照があります。
- 方法2は確実に表示できますが、方法1よりメールサイズが増えます。
確実に画像を送信したい場合は、方法3を使用します。
- 添付ファイルは表示性よりも送信の確実性を重視する場合に最適です。
*1:今回は自分が撮影した写真を用意しました