デスクワークを超絶快適にするおすすめギアたち詳しく見る

【クラウドフロー】メール本文中にOneDriveの画像ファイルを埋め込む方法

この記事でわかること!

  • Power Automateを使ってメール本文にOneDriveの画像を挿入する方法がわかる。
  • データURIとBase64の概要がざっくりわかる。
目次

OneDriveの画像をOutlookメールに埋め込みたい。

じょじお

Power Automateを使って、OneDriveの画像をOutlookメールの本文に挿入してみました。

Power Automate Outlook 画像埋め込み
ios版Outlookでの埋め込み画像の表示

OneDriveの画像をOutlookメールに埋め込むには?

Outlookメール(HTMLメール)本文に画像を埋め込むにはHTMLのimgタグに外部公開された画像URLを渡す方法があります。

<img src=”URL” />

しかしOneDriveは誰でもアクセスできる場所ではないのでOneDriveの画像ファイルの共有アドレスをimgタグに渡しても、メール受信者は画像を表示することはできません。

じょじお

そこでデータURIの仕組みを使って、画像ファイルを直接メールに埋め込んでみました。

「データURI」とは?

ぽこがみさま

データURIとは、外部データを直接HTMLに埋め込む仕組み、と、それを表現した文字列(URI)です。

データURIとは?
https://ja.wikipedia.org/wiki/Data_URI_scheme

「Base64」とは?

ぽこがみさま

データURIに直接画像バイナリデータを渡すのはセキュリティ上危険です。

じょじお

なので、一般的によく利用されるBase64という変換形式にエンコードしてからデータURIに画像を渡します。

Base64

Base64とは一言でいうと画像などのバイナリデータをテキストに変換する際の変換方式です。

「Base64はテキストしか受け付けないアプリ(あるいはそこまでの経路)の中で、画像ファイルなどのファイルデータを一時的にテキストにエンコード(符号化)するよ。」

メールシステムの中で添付ファイルをエンコード・デコードするシーンで用いられているようです。私たちは普段日常的にメールを使っていますがBase64なんて言葉聞いたことない方も多いかと思います。それはメールアプリケーションがエンコードもデコードも内部でこっそり自動でやってくれているのでBase64なんて言葉を知らなくても添付ファイルを送ったり見れたりするわけですね。

エンコードしたBase64文字列を、HTMLのimgタグに渡すことで画像を本文中に表示することができます。

Power AutomateでBase64にエンコード(変換)する方法は?

Power Automateの「Base64関数」を使う!

Power AutomateでBase64にエンコードするには、Power AutomateのBase64関数を使います。

Base64(‘<value>’)

Base64関数のリファレンス

https://docs.microsoft.com/en-us/azure/logic-apps/workflow-definition-language-functions-reference#base64

データURIの使い方は?

データURIの構文は下記です。

data:[<MimeType>][;base64],<data>

  • <MimeType>
    • MimeTypeを入力します。
  • <data>
    • Base64にエンコード後の文字列を入力します。

画像ファイルの場合は、上記のデータURIの構文をHTMLのimgタグのsrcのバリューとして渡します。

imgタグの書き方

.png画像を挿入する

<img src="data:image/png;base64,Base64エンコード文字列" />

.jpeg/.jpg画像を挿入する

<img src="data:image/jpeg;base64,Base64エンコード文字列" />

Power Automateでフローを作成する。

じょじお

前置きが長くなってしまいましたが、実際にOneDriveの画像をメールに埋め込むための簡単なクラウドフローを作成してみたいと思います。

フローを作成する

STEP
画像をOneDriveに保存します。
Power Automate Outlook 画像埋め込み
OneDrive Web管理画面
Power Automate Outlook 画像埋め込み
sigh-stb.png

OneDriveフォルダ内に画像を準備します。

メールではあまり大きなサイズの画像を表示することができません。このため初めてフローを作成するときはまずは10kb前後の小さい画像でテストすることをおすすめします。画像が表示できなかった場合、画像ファイルサイズが原因なのかそれ以外の関数の構文などに原因があるのかを特定しやすくするためです。

(画像ファイル名、signをsighと綴りミスってますが気にせずそのまま進みます。)

STEP
Power Automateにログインします。

Power Automateポータル画面を開きます。

Power Automate ポータル画面
https://japan.flow.microsoft.com/

STEP
「インスタントクラウドフロー」で新規フローを作成します。
Power Automate インスタントクラウドフロー

▲「作成」>「インスタントクラウドフロー」をクリックします。

今回はテストなのでお手軽にフローを実行できるインスタントクラウドフローにしました。

STEP
トリガー「手動でフローをトリガーします」を選択します。
Power Automate Outlook 画像埋め込み

▲パラメータを入力します。

  1. フロー名を入力します。
  2. 「手動でフローをトリガーします」トリガーを選択します。
  3. 作成をクリックします。
STEP
OneDriveコネクタ「ファイルコンテンツの取得」アクションを追加します。
Power Automate Outlook 画像埋め込み

▲「OneDrive Business」コネクタ(またはOneDrive)の中にある「ファイルコンテンツの取得」アクションを追加します。

フォルダをたどってファイルを選択します。(手入力でもOK)

STEP
「変数を初期化する」アクションを追加します。(Base64)
Power Automate Outlook 画像埋め込み

▲「変数」コネクタ(組み込みグループ)の中の「変数を初期化する」アクションを追加します。

  • 名前:Base64
  • 種類:文字列
  • 値:@{base64(body(‘ファイル_コンテンツの取得’))}
Power Automate Outlook 画像埋め込み
Base64関数

▲関数を手入力するときは必ず関数入力モードにしてから入力してください。

アクションの名前を変更しよう。
Power Automate Outlook 画像埋め込み

▲「変数」アクションをこの後も追加するので、両者を区別するためにアクションに名前を付けておきます。アクションの名前を変更するには、アクションの右側の3点リーダーをクリック>名前の変更をクリック>アクションの名前を入力します。

STEP
「変数を初期化する」アクションを追加します。(CSS)
Power Automate Outlook 画像埋め込み

▲「変数を初期化する」アクションをもう一個追加します。これはメールの装飾をカスタマイズするためのCSSを記述するために使っています。

画像のサイズ・右寄せ・センタリング・フォントサイズ・フォントなどを調整する場合はCSSを使います。装飾をデフォルトのまま送信する場合はこのアクションは不要です。

STEP
「メールの送信(v2)」アクションを追加します。

Outlookコネクタの中の「メールの送信(v2)」アクションを追加します。v2というバージョンを表す数字はその時点で最新のもので構いません。

Power Automate Outlook 画像埋め込み

▲まずはメール本文を入力します。本文入力はコードビューに切り替えてから行います。コードビューに切り替えるには</>をクリックします。

Power Automate Outlook 画像埋め込み

▲本文を入力します。imgタグには変数の動的コンテンツを使います。

本文を入力したら、その他の値を下記のように入力します。今回はテストなので自分のアドレスを宛先としました。

  • 宛先:宛先メールアドレス
  • 件名:メール件名
  • (オプショナル)添付ファイル:添付ファイルを選択
  • (オプショナル)CC:CCメールアドレス
  • (オプショナル)BCC:BCCメールアドレス
STEP
フローが作成できたので保存します。
Power Automate Outlook 画像埋め込み

▲フローが完成しました。保存します。

フローを実行する

STEP
テスト実行します。

画面右上にある「テスト」をクリックしてテスト実行します。

STEP
Outlookメールを確認します。

今回はテストで自分のアドレスにメールしているのでメールを確認してみます。

Power Automate Outlook 画像埋め込み
ぽこがみさま

画像を確認することができました。

STEP
iOS版の表示
Power Automate Outlook 画像埋め込み
ios版Outlookでの埋め込み画像の表示

メールに画像を埋め込むときの注意点

Webメールクライアントによっては画像を表示することができません。

Gmailなどの多くのWebメールクライアントではセキュリティ対策上、Base64を排除してしまうので画像を表示することができません。(Outlook・Outlook on the web(Outlook online)・Outlook Android版・Outlook iOS版では画像を表示することができました。)

画像の配置を位置やサイズを変更する方法は?

画像の配置・位置を調整するにはCSSを使って調整します。CSSを使えばその他フォントサイズ・フォントカラーなどのカスタマイズも可能です。簡単なCSSの使い方については下記の記事で解説しています。

参考URL

Power Automate for desktopでメールに画像を埋め込んでみた。

じょじお

PADでローカルPCの画像を埋め込むケースをやってみました。OutlookとTeamsに同時に送信しました。

まとめ

じょじお

Power AutomateでOutlookメールにOneDrive画像を埋め込む方法でした。

ぽこがみさま

このブログではRPA・ノーコードツール・VBA/GAS/Pythonを使った業務効率化などについて発信しています。
参考になりましたらブックマーク登録お願いします!

Power Automate学習教材

Power AutomateをKindleで学びたい方はコチラ

▲Kindleと紙媒体両方提供されています。デスクトップフロー、クラウドフロー両方の解説がある書籍です。解説の割合としてはデスクトップフロー7割・クラウドフロー3割程度の比率となっています。両者の概要をざっくり理解するのにオススメです。

Power Automate for Desktopの基本をしっかり学習するのにオススメです。RPA界隈では有名なRPAエンジニア集団である『ロボ研』さんが監修されている解説書です。テスト用の業務Webシステム/デスクトップ業務アプリを使いながら実践形式で学習できる点が一番のメリットかなぁと思います。

Power Automate クラウドフローの入門書です。日本語の解説書は数少ないのでレアかと思います。変数の解説から代表的なアクションの解説がされているので初心者におすすめの本です。

Microsoft 365/ Power Automate / Power Platform / Google Apps Script…

Power Automateを動画で学びたい方はコチラ

▲Udemyで数少ないPower Automateクラウドフローを主題にした講座です。セール時は90%OFF(1200円~2000円弱)の価格になります頻繁にセールを実施しているので絶対にセール時に購入してくださいね。満足がいかなければ返金保証制度がありますので安心してご購入いただけます。

この記事が気に入ったら
フォローしてね!

シェアしてくれたらウレシイ(·:゚д゚:·)
  • URLをコピーしました!
  • URLをコピーしました!
目次
閉じる