【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ファイルにメールの内容が出力されているか確認する。(プライバシーガードが発動中)

まとめ

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