ルドルフもわたるふもいろいろあってな

Microsoft 365、Power Platform、PowerShellについて調べたことや検証したことなどを投稿します。技術の話は面白い。

【質問回答】Excelで定義した特定の行に記載しているメールアドレスに自動でBCCメールを送りたい

ましゅまろで質問をいただいたので回答します。

こんなましゅまろをいただきました。

Excelで定義した特定のユーザーに自動でBCCメールを送るフロー」のサンプルを紹介します。

「期日3日前に送信」についてはサンプルフローの章のあとに調査のとっかかりになる情報を紹介しますのでご自身で挑戦してみてください。 To: ましゅまろくれたかた。

まずはExcelで「参加者一覧」テーブルを作成する

Excelファイルをひとつ作成します。「参加者一覧」という名前のテーブルを定義します。

作成したExcelファイルを任意のSharePointサイト(またはOneDrive)にアップロードする

ここでは例としてOneDriveにアップロードしました。

フローを作る

全体図


「手動でフローをトリガーします」トリガー

ここではサンプルとして手動トリガーを使っています。

「表内に存在する行を一覧表示」アクション

Excel Online (Business)」>「表内に存在する行を一覧表示」アクションです。これ使って先ほど定義したテーブルのすべての行を取得します。

「アレイのフィルター処理」アクション

「データ操作」>「アレイのフィルター処理」アクションです。「メール送信」フラグ列が"はい" の行だけ取得します。

"from": "@outputs('表内に存在する行を一覧表示')?['body/value']",
"where": "@equals(item()?['メール送信フラグ'], 'はい')"

「選択」アクション

「データ操作」>「選択」アクションです。取得した行の列のうち、「参加者メールアドレス」列をプロパティ名無しで取得する。

"from": "@body('アレイのフィルター処理')",
"select": "@item()?['参加者メールアドレス']"

「結合」アクション

「データ操作」>「結合」アクションです。「参加者メールアドレス」の配列をセミコロン区切りで1行のテキストにします。

"from": "@body('選択')",
"joinWith": ";"

「変数を初期化する」アクション

「変数」>「変数を初期化する」アクションです。メール送信アクションに宛先の文字列を渡すために変数化します。

"variables": [
{
"name": "宛先",
"type": "string",
"value": "@body('結合')"
}
}

「メールの送信 (V2)」アクション

「Office 365 Outlook」>「メールの送信 (V2)」アクションです。先ほど定義した変数を「BCC」欄に入れます。宛先欄は必須なのでメールの送信アカウントをいれておきます。

フローを実行してみる。

ちゃんと送信されたようです。

BCCの宛先のユーザーにメールが届いたことも確認できました。

「期日3日前に送信」をどうやって実現するか

やることは2つです

  1. 期日を定義する
  2. 期日の3日前にメール送信のアクションを実行する

1 については「Excelシートに記載する」とのことなので参加者一覧と同様にExcelファイル内で別のテーブルを定義して参照してあげれば実現できると思います。

2については、下記記事の章『「スケジュール実行」と「即時実行」の分岐後の処理』を参考にしてください。
この記事のフローで「延期期限」アクションを使うことによって指定した日時に目的のアクションを実行しています。
wataruf.hatenablog.com


以上です。