松本典子の「はじめよう!Azure Logic Apps/Power Automateでノーコード/ローコード」 第37回
「毎月の請求書送付」「毎週のレポート送付」などを自動化できるPower Automateフロー
フォルダー内のすべてのファイルを添付してメールを自動送信するフローを作ろう
2024年05月08日 11時00分更新
こんにちは、Microsoft MVP(Azure / Business Applications)の松本典子です。
今回は、Power Automate / Azure Logic AppsのOutlookコネクタを利用し、指定のフォルダー内に保存されている「複数のファイル」を添付して、メールを自動送信する方法のご紹介です。
今回作成するフローは、前回記事と同じように動作検証的なものになっていますが、たとえば「毎月、同じ宛先に複数の請求書ファイルを送信する」といった定型作業を自動化するなど、こういう使い方ができることを知っておくとほかにも応用が効くと思います。
1. 事前準備
事前に「SharePoint Online(以下、SPO)」内にサイトを作成します(今回は「FilePlace」というサイト名にします)。
また、SPO内に、メールに添付するファイルをアップロードしておくフォルダーを作成します(今回は「添付ファイル用」というフォルダー名にします)。作成したフォルダー内には、添付ファイルとして送信したいファイルをいくつか入れておきます。筆者は5つのファイルをアップロードしました。
2. フロー全体図
今回、Power Automateで作成するワークフローの全体像は上図のとおりです。ボタンをクリックしてフローを実行(トリガー)すると、SPO内の指定フォルダーに保存されているファイルをすべてメールに添付し、送信するというフローです。
なお、今回はクラシックデザイナーの画面で説明していますが、フローはモダンデザイナーでも同じように作成できます。
2-1. トリガーの設定
今回のフローのトリガーには「モバイルのフローボタン」コネクタを利用します。
上部の「組み込み」タブをクリックすると、「モバイルのフローボタン」コネクタが表示されるのでクリックします。トリガーの一覧が表示されたら「手動でフローをトリガーします」を選択します。
このトリガーは、特に追加で設定することはありません。
2-2. アクションの設定:ファイルの取得 (プロパティのみ)
SPO内の指定フォルダーにあるファイルを取得します。
検索窓に「SharePoint」と入力して「SharePoint」コネクタを選択し、アクション一覧から「ファイルの取得 (プロパティのみ)」をクリックします。このアクションは次のように設定します。
(1)サイトのアドレス:「1.事前準備」で作成したSPOサイトを選択
(2)ライブラリ名:「ドキュメント」を選択
(3)エントリをフォルダーに制限する:「1.事前準備」で作成したフォルダーを選択
2-3. アクションの設定:変数を初期化する
メールに添付するファイルの情報を格納するための変数を準備します。
上部の「組み込み」タブをクリックして「変数」コネクタを選択します。
アクション一覧が表示されたら「変数を初期化する」をクリックします。ここでのポイントは、複数のファイルの情報が格納できるように、「アレイ(配列)」型の変数として初期化するところです。
(1)名前:今回は「添付ファイル一覧」と入力
(2)種類:「アレイ」を選択
(3)値:半角で「[]」を入力
2-4. アクションの設定:それぞれに適用する(Apply to each)
添付するファイルを1つずつ取得し、変数(の配列)に格納する処理をファイルの数だけ繰り返し行います。
検索窓に「コントロール」と入力して「コントロール」コネクタを選択します。
次に、アクション一覧から「それぞれに適用する」をクリックします。なお、本来これは「Apply to each」というアクション名であり、フローに表示される名前は変更前の「Apply to each」のままです。
「以前の手順から出力を選択」には、「ファイルの取得 (プロパティのみ)」の動的なコンテンツである「value」を選択します。これにより、添付するファイルの数だけ処理が繰り返されます。
2-5. アクションの設定:ファイル コンテンツの取得
SPOからファイル コンテンツを取得していきます。まず、Apply to each内の「アクションの追加」をクリックします。
検索窓に「SharePoint」と入力して「SharePoint」コネクタを選択し、アクション一覧から「ファイル コンテンツの取得」をクリックします。アクションは次のように設定します。
(1)サイトのアドレス:「1.事前準備」で作成したSPOサイトを選択
(2)ファイル識別子:「ファイルの取得 (プロパティのみ)」の動的なコンテンツ「識別子」を選択
2-6. アクションの設定:配列変数に追加
引き続き、Apply to each内の「アクションの追加」をクリックします。
上部の「組み込み」タブをクリックし「変数」コネクタを選択し、アクション一覧が表示されたら「配列変数に追加」をクリックします。
アクションは次のとおり設定します。これは、配列変数に「ファイルの名前」と「ファイルの内容(コンテンツ)」をセットで格納する処理です。
(1)名前:「添付ファイル一覧」を選択
(2)値:以下の内容をコピペ
{
"Name": @{items('Apply_to_each')?['{FilenameWithExtension}']},
"ContentBytes": @{body('ファイル_コンテンツの取得')}
}
2-7. アクションの設定:メールの送信 (V2)
最後に、メールを送信する処理を追加します。
メール送信は1回で良いので、Apply to eachの枠の外に追加します。
検索窓に「Outlook」と入力して「Outlook」コネクタを選択し、アクション一覧から「メールの送信 (V2)」をクリックします。アクションは次のとおり設定します。
(1)宛先:メール送信先を入力
(2)件名:わかりやすい件名を入力
(3)添付ファイル:赤枠内のアイコンをクリック
(3)のアイコンをクリックすると、上図のような表示に変わります。ここでは「変数」の動的なコンテンツの「添付ファイル一覧」を選択します。
以上でワークフローは完成です! 最後にワークフローの名前を入力して「保存」をクリックします。
3. 実行結果
さっそくフローを実行して、複数のファイルを添付したメールが送信されることを確認しましてみましょう。
上図のように、SPOフォルダーにアップロードした5つのファイルがすべて添付された状態で、メールが送信されました。
最後に
今回のフローでは、トリガーを手作業で実行するかたちにしましたが、たとえば特定の相手(宛先アドレス)に対して定期的にファイルを添付したメールを送りたいような場合には、定期的に自動実行するかたちにするとよいでしょう。
ただし今回のフローでは、実行後も送信済みのファイルは指定フォルダー内にそのまま残ります。これだと、次回実行時には同じファイルが再送信されてしまいますので、メール送信後にファイルを別のフォルダーに移動する(もしくは削除する)といったアクションを追加する必要がありそうです。
また、指定フォルダー内にあるファイルはすべて送信されてしまいますので、誤って機密情報や個人情報が含まれるファイルをアップロードしないよう注意が必要です。こうした点に注意しつつ、ぜひ適宜活用、応用してみてください。
この連載の記事
-
第44回
Team Leaders
契約書を確実に期限管理! SharePoint+Power Automateで期日通知を自動化 -
第43回
Team Leaders
社内からの質問に自動回答! AI Builder+ノーコードでQ&Aボットを作ろう -
第42回
Team Leaders
Power Automateで複数人の承認(多段階承認)ワークフローを簡単作成しよう -
第41回
Team Leaders
重要なTeamsメッセージの見失い/見落としを防ぐPower Autometeのフローを作ろう -
第40回
Team Leaders
クラウドフローからデスクトップフローを「Picture-in-Picture」で起動する -
第39回
Team Leaders
面倒なカレンダー登録作業を生成AIで自動化するワークフローを作ろう -
第38回
Team Leaders
生成AIに日本語プロンプトで指示を出し、メールから情報を抽出してもらおう -
第36回
Team Leaders
ローカルPCのテキストファイルをPower Automateに読み込ませて活用しよう -
第35回
Team Leaders
受信メールの添付ファイルを種類に応じたフォルダに自動保存する -
第34回
Team Leaders
Power AutomateでTeamsのチーム全員にメンションを送る方法 - この連載の一覧へ