このページの本文へ

松本典子の「はじめよう!Azure Logic Apps/Power Automateでノーコード/ローコード」 第37回

「毎月の請求書送付」「毎週のレポート送付」などを自動化できるPower Automateフロー

フォルダー内のすべてのファイルを添付してメールを自動送信するフローを作ろう

2024年05月08日 11時00分更新

文● 松本典子 編集● 大塚/TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

 こんにちは、Microsoft MVP(Azure / Business Applications)の松本典子です。

 今回は、Power Automate / Azure Logic AppsのOutlookコネクタを利用し、指定のフォルダー内に保存されている「複数のファイル」を添付して、メールを自動送信する方法のご紹介です。

 今回作成するフローは、前回記事と同じように動作検証的なものになっていますが、たとえば「毎月、同じ宛先に複数の請求書ファイルを送信する」といった定型作業を自動化するなど、こういう使い方ができることを知っておくとほかにも応用が効くと思います。

1. 事前準備

利用するSharePoint Onlineの設定

 事前に「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」というアクション名であり、フローに表示される名前は変更前の「Apply to each」のままです。

アクションの設定:それぞれに適用する(Apply to each)

 「以前の手順から出力を選択」には、「ファイルの取得 (プロパティのみ)」の動的なコンテンツである「value」を選択します。これにより、添付するファイルの数だけ処理が繰り返されます。

2-5. アクションの設定:ファイル コンテンツの取得

Apply to each内のアクションの追加

 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の枠の外に追加します。

アクションの設定:メールの送信 (V2)

 検索窓に「Outlook」と入力して「Outlook」コネクタを選択し、アクション一覧から「メールの送信 (V2)」をクリックします。アクションは次のとおり設定します。

 (1)宛先:メール送信先を入力
 (2)件名:わかりやすい件名を入力
 (3)添付ファイル:赤枠内のアイコンをクリック

添付ファイルの表示切り替え

 (3)のアイコンをクリックすると、上図のような表示に変わります。ここでは「変数」の動的なコンテンツの「添付ファイル一覧」を選択します。

 以上でワークフローは完成です! 最後にワークフローの名前を入力して「保存」をクリックします。

3. 実行結果

 さっそくフローを実行して、複数のファイルを添付したメールが送信されることを確認しましてみましょう。

実行結果

 上図のように、SPOフォルダーにアップロードした5つのファイルがすべて添付された状態で、メールが送信されました。

最後に

 今回のフローでは、トリガーを手作業で実行するかたちにしましたが、たとえば特定の相手(宛先アドレス)に対して定期的にファイルを添付したメールを送りたいような場合には、定期的に自動実行するかたちにするとよいでしょう。

 ただし今回のフローでは、実行後も送信済みのファイルは指定フォルダー内にそのまま残ります。これだと、次回実行時には同じファイルが再送信されてしまいますので、メール送信後にファイルを別のフォルダーに移動する(もしくは削除する)といったアクションを追加する必要がありそうです。

 また、指定フォルダー内にあるファイルはすべて送信されてしまいますので、誤って機密情報や個人情報が含まれるファイルをアップロードしないよう注意が必要です。こうした点に注意しつつ、ぜひ適宜活用、応用してみてください。

カテゴリートップへ

この連載の記事
ピックアップ