こんにちは。アーティサン株式会社の小刀稱(ことね)です。
Power Automateでは、メールを送信する際、ファイルを添付することができます。
添付するファイル数が決まっている場合は、簡単に実装できますが、添付ファイル数が都度異なる(動的である)場合は、一工夫が必要となります。
そこで、今回はPower Automateで複数(動的)の添付ファイルをメールで送信する方法について說明します。
また、「メールの送信」アクションと「承認」アクションでは、実装方法が異なりますので、併せてご紹介します。
内容としては、既にPower Automateでフローを作成したことがある方に向けた記事です。
Power Automate初心者の方は、以下の記事も参考にしてください。
前提
SharePointリストの「添付ファイル」列にファイルが格納されています。
この添付ファイルを取得し、メールを送信するという流れです。
Power Automateを用いて、メールを送信する際、以下の2パターンの状況が考えられます。
- 「メールの送信」アクションを用いる
- 「承認」アクションを用いる
(承認アクションとは、「承認を作成」や「開始して承認を待機」アクションを指します。)
以下では、それぞれのパターンに関する実装方法を說明します。
「メールの送信」アクションを用いる
まずは、「メールの送信」アクションを用いる場合です。
作成したフローは以下のとおりです。
複数(動的)の添付ファイルをメールで送信する際は、配列(アレイ)を用います。
フローのポイントは以下2点です。
「配列変数に追加」アクション
「メールの送信」アクション
「配列変数に追加」アクション
「配列変数に追加」アクションの値を以下に設定してください。
{
"Name": @{item()?['DisplayName']},
"ContentBytes": @{body('添付ファイルのコンテンツの取得')}
}
このフローを実行した際の attachmentsForOutlook の値は以下となります。
※$content-typeや$contentの内容は、添付ファイルの種類や中身によって異なります。
[
{
"Name": "添付1.docx",
"ContentBytes": {
"$content-type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"$content": "UEsDBBQABgAIAAAAIQB~"
}
},
{
"Name": "添付2.xlsx",
"ContentBytes": {
"$content-type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"$content": "UEsDBBQABgAIAAAAIQB~"
}
}
]
ちなみに、SharePointリストではなく、ドキュメントライブラリからコンテンツContentBytesを取得する場合は、 ファイルコンテンツの取得やパスによるファイルコンテンツの取得アクションを用いてください。
「メールの送信」アクション
アクションを追加した最初の状態では、添付ファイルに配列を設定することができません。 よって、添付ファイルの右端にあるアイコンをクリックして、配列を設定できるよう変更します。 その後、配列(attachmentsForOutlook)を設定します。
実行結果
それでは、フローを実行してみましょう。
メールにファイルが添付されました!
「承認」アクションを用いる
続いて、「承認」アクションを用いる場合です。
注意点
「承認」アクションを用いた場合、OutlookとTeamsに通知されます。
Power Automateの仕様として、Outlookにはファイルが添付されますが、Teamsには添付されません。(2022年5月時点)Teamsでファイルを参照したい場合は、ファイルへのリンクを本文に記載するなどにより対応してください。
(機会があれば、こちらの方法についてもブログを作成します!)
作成したフローは以下のとおりです。
フローのポイントは以下2点です。
「配列変数に追加」アクション
「承認」アクション
「配列変数に追加」アクション
「配列変数に追加」アクションの値を以下に設定してください。
{
"Name": @{item()?['DisplayName']},
"Content": @{body('添付ファイルのコンテンツの取得')}
}
「承認」アクション
アクションを追加した最初の状態では、添付ファイルに配列を設定することができません。
よって、添付ファイルの右端にあるアイコンをクリックして、配列を設定できるよう変更します。
その後、配列(attachmentsForApproval)を設定します。
実行結果
それでは、フローを実行してみましょう。
Outlookにはファイルが添付されています。
前述したとおり、Teamsにはファイルは添付されていません。
さいごに
本記事では、はPower Automateで複数(動的)の添付ファイルをメールで送信する方法について說明しました。
また、「メールの送信」アクションと「承認」アクションでは、実装方法が異なりますので、併せてご紹介しました。
参考としていたいだければ幸いです!
【こちらも合わせて読みたい】
地方自治体ローコード導入・運用支援サービス(Power Apps・Power Automate)
Microsoft社が提供するローコード技術であるPower Platformを用いて、自治体様のDX化を支援します。
X-SP | SharePoint デザイン・機能拡張サービス
デザイン×機能を兼ね備えたSharePointを提供いたします。
SharePointの利便性を向上し、操作性と視認性を兼ね備えたデザインでユーザーの業務効率化・ストレス低減を提供します。
内製化支援サービス | Power Platform(Power Apps・Power Automate)
Power Platform(Power Apps・Power Automate)開発や運用をスムーズに内製できるよう支援いたします。
DX人材育成プログラム | Power Apps・Power Automte 教育
Microsoft社が提供するローコード技術であるPower Platformを用いて、社内のDX化を推進するための人材を育成いたします。
Power Apps/Power Automateアプリ開発・導入支援サービス
Microsoft社が提供するPower Apps / Power Automateの導入支援として、高度なアプリも最速で作れる業務アプリ作成支援サービスを提供いたします。
SharePointモダン化コンサルティングサービス
従来のSharePoint から移行・モダン化したい方に向けて、事前調査からサイト作成・活用支援までトータルなコンサルティング・技術支援を提供いたします。
小刀稱知哉
大分県出身(温泉大好き)、現在は東京都在住
1990年生まれ
30才でメーカーの技術営業からIT業界にジョブチェンジ!!!
趣味は読書
Power Platform(SharePoint・Power Apps・Power Automate)に関する営業活動や設計、開発などを担当しております!
持ってる資格はPL-200/PL-300/PL-400/PL-600/MS-700/AZ-104/AZ-305/SC-200