この記事でわかること
- Power Automate for desktop(PAD)のBase64アクションの概要
- PADのBase64アクションを使ってメール本文にローカル画像を埋め込む方法
- Base64についてざっくり解説
- Base64を使ってTeamsメッセージ本文に画像を埋め込む方法
Base64アクションが追加されました。(2022年2月のアップデート)
2022年2月のPower Automate for desktop のアップデートもたくさんありました。一番の注目の的はカスタムフォーム作成機能の追加かなとは思いますがそちらはまた別の記事で試してみるとして、この記事では今回のアップデートで追加されたBase64アクションについて書きたいと思います。
PADに追加された「Base64」アクションとは?
実際に追加されたのは下記の2つのBase64のアクションです。
追加された2つのBase64のアクション
- 「ファイルをBase64に変換する」アクション
- 「Base64をファイルに変換する」アクション
どんなアクションか、については公式ブログに下記の説明がありました。Base64については下記が解説の全文です。
A file is sent over the internet (typically via an API) as a Base64 encoded string representation. By allowing the users to easily convert a file to Base64 string and vice versa, file transfer over the internet is facilitated.
引用:Microsoft Power Automate Blog
(以下Deepl翻訳)インターネット上では、ファイルはBase64でエンコードされた文字列表現で送信される(通常はAPI経由)。ユーザーが簡単にファイルをBase64文字列に変換したり、逆にBase64文字列に変換したりできるようにすることで、インターネット上でのファイル転送を容易にすることができる。
そもそもBase64ってなんなの?
Base64とは一言でいうと画像などのバイナリデータをテキストに変換する際の変換方式です。
メールシステムの中で添付ファイルをエンコード・デコードするシーンで用いられているようです。私たちは普段日常的にメールを使っていますがBase64なんて言葉聞いたことない方も多いかと思います。それはメールアプリケーションがエンコードもデコードも内部でこっそり自動でやってくれているのでBase64なんて言葉を知らなくても添付ファイルを送ったり見れたりするわけですね。
Power Automate for desktopでのBase64アクションの活用方法は?
Base64をHTMLに埋め込む方法
Power Automate for desktopでの「Base64アクション」の使い道として一番活躍する場面としてはHTMLにローカルPCの画像ファイル(他バイナリファイル)を埋め込む時ではないでしょうか。
通常HTMLファイルやHTMLメール(普通のメール)に画像を挿入する場合、<img src="images/画像.png" />
のようにimgタグを使って画像ファイルを指定しますが、ここで指定する画像はインターネット上にアップロードされている必要があります。ローカルpcの「C:¥Users\user\images\画像.png」というファイルをHTMLメールの本文に挿入したいからといって、<img src=C:¥Users\user\images\画像.png />
というようにメールに記述しても、受け取った側としては当然画像を見ることはできません。
しかしBase64を使ってエンコードして直接HTMLに埋め込んでしまえばローカルの画像ファイル(他バイナリファイル)を直接送信することが可能です。imgタグを使った記述方法の例は下記です。
.png画像を挿入する
<img src="data:image/png;base64,Base64エンコード文字列" />
.jpeg/.jpg画像を挿入する
<img src="data:image/jpeg;base64,Base64エンコード文字列" />
文中の「Base64エンコード文字列」は「ファイルをBase64に変換する」アクションから生成された変数を渡します。
次の項から実際に「ファイルをBase64に変換する」アクションを使ってメール・TeamsにローカルPCの画像を挿入してみたいと思います。
Base64アクションを使ってOutlookメール本文に画像を埋め込む方法!
Outlookメール本文に画像ファイルを送信してみます。
Power Automate for desktopを使って文中に画像を挿入されたメールを送信することが今回のゴールです。
わたしはCドライブに保存された画像ファイルを使います。
▲「ファイルをBase64に変換する」アクションを追加します。「ファイルをBase64に変換する」アクションはファイルグループの中にあります。
▲「ファイルをBase64に変換する」アクションのパラメータを入力します。入力すべき項目としては画像ファイルのパスを入力するだけなので簡単ですね。ファイルピッカーを使ってファイルを選択しても良いですし、フルパスを手入力しても良いですし変数を渡すことももちろんできます。
このアクションでは画像がテキストに変換され、変換されたテキストはデフォルトでは%Base64Text%という変数に格納されます。
▲「Outlookを起動します」アクションを追加します。Outlookインスタンス名は変更せずにデフォルトのままOKを押します。
▲「Outlookからメールメッセージの送信」アクションを追加してパラメータを入力します。
- Outlookインスタンス:%OutlookInstance%
- アカウント:メールアドレスを入力します。
- メールメッセージの送信元:送信元メールアドレスを入力します。
- 宛先:宛先メールアドレスを入力します。
- 件名:件名を入力します。
- 本文:別記
- 本文はHTMLです:オンにします。
こんにちは! 画像のテスト送信です! <BR><BR> <img style='display:block; ' id='base64image' src='data:image/jpeg;base64, %Base64Text%' /> <BR><BR>
<BR>タグはHTMLにおいて改行を意味するタグです。PADで「HTML」を有効化すると改行タグ(あるいはブロックタグ)を使わないと改行できないので注意してくださいね。imgタグに「ファイルをBase64に変換する」アクションの戻り値である%Base64Text%を使用しています。
フローを実行してメールを確認してみます。今回はテストとして自分自身にメールを送ってみました。メールを確認してみると画像付きメールの受信が確認できるかと思います。
画像サイズを調整するには?
imgタグに直接インラインCSSを使って指定すれば調整できます。(例:width:100pxなど。)
Teamsにローカルの画像サイズを送信する方法!
Teamsにもメッセージ本文に画像ファイル付きメッセージを送信してみます!
PADからメッセージを送信する方法はいくつかありますが、今回はTeamsの各チャネルが持つメールアドレスにメール送信してTeamsにメッセージを送信します。
方法は、先程Outlookメールに送信したフローと全く同じで、「Outlookからのメールメッセージの送信」アクションの宛先メールアドレスをTeamsのチャネルのメールアドレスにするだけです。
▲送信したいTeamsのチャネルのメールアドレスをゲットします。取得方法は上の記事で紹介していますので参考にしてください。
▲フローの作成手順は先程Outlook宛てに作成したフローと同じです。「Outlookからのメールメッセージの送信」アクションの宛先をTeamsのチャネルのメールアドレスにします。「本文HTMLです」のチェックオンも忘れないようにしてください。
フローを実行してみます。ターゲットにしたTeamsのチャネルで、画像付きメッセージを受信できれば成功です。
Teamsに埋め込める画像サイズは?
Teamsの場合、画像サイズをかなり小さくしないと表示できません。(クリックすれば表示することはできます。)こちらでテストした結果20KB前後が表示できる最大サイズのようです。
▲画像サイズが大きいときの表示。
メールアプリによっては画像を表示できません。
受信アプリによっては画像を表示できないことがありますので注意してください。例えば下記のアプリでは画像ファイルを表示できませんでした。
- スマホ版Teams
- Gmail
2022年2月に追加されたその他の新機能
関連記事
まとめ
以上、Base64を使ってメール本文に画像挿入する方法についてご紹介しました!
PADのフローの中でWebのスクリーンショットを取ってメールの本文にその画像を埋め込んで送信するなど、いくつか使うシーンはあるのではないかと思いました。
このブログではRPA・ノーコードツール・VBA/GAS/Pythonを使った業務効率化などについて発信しています。
参考になりましたらブックマーク登録お願いします!
Power Automate学習教材
▲Kindleと紙媒体両方提供されています。デスクトップフロー、クラウドフロー両方の解説がある書籍です。解説の割合としてはデスクトップフロー7割・クラウドフロー3割程度の比率となっています。両者の概要をざっくり理解するのにオススメです。
▲Power Automate for Desktopの基本をしっかり学習するのにオススメです。この本の一番のメリットはデモWebシステム・デモ業務アプリを実際に使ってハンズオン形式で学習できる点です。本と同じシステム・アプリを使って学習できるので、本と自分の環境の違いによる「よく分からないエラー」で無駄に躓いて挫折してしまう可能性が低いです。この点でPower Automate for desktopの一冊目のテキストとしてオススメします。著者は日本屈指のRPAエンジニア集団である『ロボ研』さんです。
▲Power Automate クラウドフローの入門書です。初心者の方には図解も多く一番わかりやすいかと個人的に思っています。
Microsoft 365/ Power Automate / Power Platform / Google Apps Script…
▲Udemyで数少ないPower Automateクラウドフローを主題にした講座です。セール時は90%OFF(1200円~2000円弱)の価格になります。頻繁にセールを実施しているので絶対にセール時に購入してくださいね。満足がいかなければ返金保証制度がありますので安心してご購入いただけます。