【Power Automate】特定の宛先で受信したメールをエクセルに出力する

ネコニウム研究所

PCを利用したモノづくりに関連する情報や超個人的なナレッジを掲載するブログ

【Power Automate】特定の宛先で受信したメールをエクセルに出力する

2021-12-3 | ,

M365環境下で特定の宛先で受信したメールをエクセルに出力したい!

例えば、問い合わせ用のグループメールアドレスを作っておいて、そこで受信したメールをエクセルに登録して行くことを想定してます。

皆さん、ローコード開発は好きですか?私は逆に覚えることが多いように感じてあまり好きじゃないです!!!

仕様書

  • 特定のメールアドレス宛にメールが届いたら、指定のxlsxファイルにメールの内容を出力する。
  • xlsxファイルは、OneDrive、または、SharePointに保管する。
  • IDはメールを受信する度に1ずつインクリメントする。

手順書

出力先のxlsxファイルの準備

受信したメールの情報を記録する下記の表のようなテーブルをOneDrive(またはSharepoint)上に保管されたxlsxファイルの中に作る。

ID Datetime From Subject Body
1からカウント開始 メールの受信日時 メールの発信先メールアドレス メールの件名 メールの本文
  1. OneDriveなり、SharePointなりに出力先のxlsxファイルを作る。今回は、mail2excel.xlsxと言う名前のファイルを作った。
  2. テーブルを作成する。ヘッダー行の一部を選択した後にタブ「挿入」の中の「テーブル」をクリックする。
  3. ダイアログが表示されるので、「先頭行をテーブルの見出しとして使用する」にチェックを付け「OK」をクリックする。
  4. 範囲に色が付き、フィルターが適用されたような表示になる。

Power Automate でフロー作成

Power Automateでフローを作る。フローは完成すると下記のような感じになる。

  1. Power Automateにアクセスして「マイフロー」->「新しいフロー」->「自動化したクラウド フロー」の順にクリックする。
  2. 「フロー名」は任意の名前、「フローのトリガーを選択してください」には「新しいメールが届いたとき(V3)」を設定する。
  3. 「フローの編集」へ推移するので「新しいメールが届いたとき(V2)」を設定する。
    「フォルダー」は「Inbox」、「宛先」はメールを受け取るメールアドレス(今回は例として「inquery@example.com」とする)を入力する。
  4. 新しいステップ「タイム ゾーンの変換」を追加する。
    「基準時間」は動的コンテンツから「受信日時」、「変換元のタイムゾーン」は「(UTC)協定世界時」、「変換先のタイムゾーン」は「(UTC+9:00)大阪、札幌、東京」、「書式設定文字列」はカスタム文字列として「yyyy-MM-dd HH:mm:ss」と入力する。
  5. 新しいステップ「変数を初期化する」を追加する。
    名前は「日時」、種類は「文字列」、値は動的なコンテンツにある「変換後の時間」とする。名前は任意で良い。
  6. 新しいステップ「表内に存在する行を一覧表示」を追加する。
    場所、ドキュメントライブラリ、ファイル、テーブルで出力先の xlsx ファイルとテーブルを指定する。
  7. 新しいステップ「変数を初期化する」を追加する。
    名前は「行情報」、種類は「アレイ」、値は動的なコンテンツにある「value」とする。名前は任意で良い。
  8. 新しいステップ「変数を初期化する」を追加する。
    名前は「行数」、種類は「整数」、値は式で「length(variables('行情報'))」とする。
  9. 新しいステップ「変数の値を増やす」を追加する。
    名前は「行数」。値は「1」とする。
  10. 新しいステップ「表に行を追加」を追加する。
    場所、ドキュメントライブラリ、ファイル、テーブルで出力先の xlsx ファイルとテーブルを指定する。その下にテーブルの列が表示されているはずなので ID は「行数」、Datetime は「日時」、From は「差出人」、Subject は「件名」、Body は「本文のプレビュー」[1] をそれぞれ動的なコンテンツから設定する。
  11. 画面の右上の「保存」をクリックしてフローを保存する。

[1] 「本文」にすると HTML やらヘッダー情報やらが表示されて xlsx ファイル上では見辛くなる。

テスト

  1. 画面の右上の「テスト」をクリックする。
  2. 「手動」にチェックを付けて「テスト」をクリックする。
  3. 「今すぐ動作を確認するには、受信トレイで新しいメールを送信します。」と表示されるので、「新しいメールが届いたとき(V2)」の「宛先」に設定したメールアドレス宛にメールを送信してみる。
  4. 正常にフローが実行されたか確認する。
  5. xlsxファイルにメールの内容が出力されているか確認する。(プライバシーガードが発動中)

まとめ

こういうローコード開発って慣れれば、素早く目的を達成できるような気もする。しかし、大量のコンポーネント的なものの使い方を覚えるまでが大変だ…。…大変だ…。