アプリ開発の調査にかかる
時間を削減したい
内製化支援サービス
アプリを自分たちで
作成できるようになりたい
DX人材育成プログラム
プロに開発を依頼したい
アプリ開発導入支援サービス
SharePoint デザイン拡張サービス
X-SP Style
モダン化から運用管理までサポート
移行・モダン化コンサルティング
こんにちは。アーティサン株式会社の小刀稱(ことね)です。
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で複数(動的)の添付ファイルをメールで送信する方法について說明しました。
また、「メールの送信」アクションと「承認」アクションでは、実装方法が異なりますので、併せてご紹介しました。
参考としていたいだければ幸いです!
【こちらも合わせて読みたい】
小刀稱知哉
大分県出身(温泉大好き)、現在は東京都在住
1990年生まれ
30才でメーカーの技術営業からIT業界にジョブチェンジ!!!
趣味は読書
主にMicrosoftのローコード(SharePoint・Power Platform)に関するに関する営業活動や設計、開発などを担当しております!
(最近はCopilot Studioについても勉強中)
持ってる資格はPL-200/PL-300/PL-400/PL-600/MS-700/AZ-104/AZ-305/SC-200