Power AutomateでOutlookのメールを自動化:添付の保存・振り分け・定型メールの送信

公開 書いた人 大林 諒

Power Automate(パワーオートメイト)で最初に自動にする仕事は、たいていメールです。届いた請求書の添付を決まったフォルダに保存する、特定の取引先から来たメールだけを Teams に流す、申込があったら決まった文面の受付メールを返す。どれも毎日発生し、手でやると漏れが出ます。この記事では、社員15名の「サンプル工務店」を例に、代表アドレス info@sample-koumuten.example(共有メールボックス)に届く協力会社の請求書PDFを月ごとのフォルダに保存するフローと、定型メールを共有メールボックスの名前で送るフローを作ります。Outlook の仕分けルールで済む仕事との分け方と、メールが二重に処理される、署名の画像まで保存されるといったよくある問題の直し方も書きます。使うのは Microsoft 365 Business Standard に含まれる標準のコネクタだけです。

この記事の内容
  1. 先に決めること
  2. Outlook でよく作るフロー
  3. Office 365 Outlook と Outlook.com、共有メールボックス
  4. 請求書PDFを月ごとのフォルダに保存する
  5. 定型メールを送る
  6. 差出人で絞って知らせる・転送する・フォルダ分けする
  7. 仕分けルールとの使い分け
  8. 二重に処理される・署名の画像まで保存される
  9. 応用:毎朝、未対応の問い合わせをメールで送る
  10. できないことと、その代わり
  11. よく詰まるところ
  12. 次にやること

先に決めること

1. 誰の受信トレイを見るか

フローが見張るメールボックスは、個人の受信トレイか共有メールボックスのどちらかです。仕事のメールが info@ のような共有メールボックスに届くなら、トリガーも共有メールボックス用のものを使います。事務Bの個人の受信トレイに転送してからフローで拾う形にすると、事務Bが休んでも辞めてもフローは動きますが、事務Bの受信トレイの設定を誰かが変えた時点で止まり、原因が見えにくくなります。サンプル工務店では、info@ に届くメールは info@ を直接見張ると決めました。

2. 仕分けルールで済まないか

フォルダへの移動、転送、フラグ、分類項目の設定は、Outlook の仕分けルールでできます。ルールで済む仕事を Power Automate で作ると、動くまでに数分の遅れが出て、管理する物も増えます。添付を SharePoint に保存する、Teams に投稿する、リストに書く、本文に名前や日付を差し込んで返信する、のように Outlook の外に何かを書く仕事だけを Power Automate に回します。使い分けは後の節の表にまとめました。

3. 保存先とファイル名の付け方

請求書は「どこに」「どんな名前で」保存するかを先に決めます。サンプル工務店では、SharePoint の「工事案件」サイトの「ドキュメント」ライブラリに「請求書」フォルダを作り、その下に 2026-10 のように受信した月のフォルダを自動で作って入れます。ファイル名は協力会社が付けた名前の頭に受信日時を付け、同じ名前の請求書が届いても上書きされないようにします。

4. 誰の名前で送るか

フローから送るメールは、何も指定しなければフローの接続を作った人の名前で届きます。お客様や協力会社に送るメールは、info@ から送るほうが返信も info@ に戻ってきて都合がよいので、共有メールボックスから送るアクションを使います。そのための権限は管理者に付けてもらいます。

Outlook でよく作るフロー

作るものトリガー主なアクション区分
添付を SharePoint や OneDrive に保存する「共有メールボックスに新しいメールが届いたとき (V2)」「ファイルを作成する」(SharePoint または OneDrive for Business)標準
特定の差出人のメールだけ Teams に知らせる「新しいメールが届いたとき (V3)」の「差出人」で絞る「チャットまたはチャネルでメッセージを投稿する」標準
申込や問い合わせに定型の受付メールを返すForms の「新しい応答が送信されたとき」など「共有メールボックスからメールを送信する (V2)」標準
条件に合うメールを担当者に転送する「新しいメールが届いたとき (V3)」「メールを転送する (V2)」標準
本文の中身を見てフォルダ分けする「新しいメールが届いたとき (V3)」「メールの移動 (V2)」標準
毎朝、未対応の一覧をメールで送る「繰り返し」「アイテムを取得」「HTML テーブルの作成」「メールを送信する (V2)」標準

どれも Office 365 Outlook コネクタの標準の範囲で、Microsoft 365 のライセンスで作れます(2026年10月時点)。

Office 365 Outlook と Outlook.com、共有メールボックス

コネクタの一覧で「Outlook」と検索すると、Office 365 Outlook と Outlook.com の2つが出てきます。会社のメールに使うのは Office 365 Outlook です。

Office 365 OutlookOutlook.com
対象のアカウント会社の Microsoft 365(職場のアカウント)@outlook.jp・@hotmail.com などの個人の Microsoft アカウント
職場のアカウントでの新しい接続できるできない(既存の接続はしばらく動く)
共有メールボックスのトリガー・アクションある無い
新着メールのトリガー「新しいメールが届いたとき (V3)」「新しいメールが届いたとき (V2)」
区分標準標準

Outlook.com コネクタの説明には、職場のアカウントには Outlook.com と同じ機能を持つ Office 365 Outlook を使うように書かれています。テンプレートやネットの記事を見て作るときは、どちらのコネクタのトリガーかを確かめます。

共有メールボックスには、トリガーとアクションが別に用意されています。

操作名前必要な権限
届いたメールで動く「共有メールボックスに新しいメールが届いたとき (V2)」共有メールボックスへの「フル アクセス」
共有メールボックスから送る「共有メールボックスからメールを送信する (V2)」「フル アクセス」と「メールボックス所有者として送信する」
自分の受信トレイ用の送信で差出人を変える「メールを送信する (V2)」の差出人の欄(リファレンスの表示は「From (Send as)」)「メールボックス所有者として送信する」(Send As)または「代理人として送信する」(Send on behalf)

権限は、管理者が Exchange 管理センターの「受信者」→「メールボックス」で共有メールボックスを選び、「メールボックス委任の管理」から付けます。Microsoft 365 管理センターの「チームとグループ」→「共有メールボックス」でメンバーに追加すると、その人は共有メールボックスを開けるようになります。送信の権限まで付いているかは、Exchange 管理センターの委任の画面で確かめます。フローの接続を作る人がこれらの権限を持っていないと、トリガーもアクションも動きません。

「共有メールボックスに新しいメールが届いたとき (V2)」の「パラメーター」タブで、元のメールボックス アドレスに info@sample-koumuten.example が入っているところ
「共有メールボックスに新しいメールが届いたとき (V2)」の「パラメーター」タブで、元のメールボックス アドレスに info@sample-koumuten.example が入っているところ

請求書PDFを月ごとのフォルダに保存する

協力会社から info@ に届く請求書メールの添付PDFだけを、SharePoint の「請求書」フォルダの下の受信月のフォルダに保存します。署名に入っているロゴ画像や、PDF以外の添付は保存しません。

手順

  1. 「マイ フロー」→「新しいフロー」→「自動化したクラウド フロー」を選ぶ
  2. フロー名に「info@の請求書PDFを月別フォルダに保存」と入れ、トリガーに「共有メールボックスに新しいメールが届いたとき (V2)」を選んで「作成」を選ぶ
  3. 「元のメールボックス アドレス」に info@sample-koumuten.example を入れる
  4. 「詳細パラメーター」を開き、「差出人」(リファレンスの表示は「より」)に協力会社のアドレスをセミコロン区切りで入れ、「添付ファイルのみ」と「添付ファイルを含める」を「はい」にする
  5. トリガーの「設定」タブの「トリガー条件」に、添付が実際にあるときだけ動く式を入れる(下の式1)
  6. 「+」→「アクションの追加」で「コントロール」の「それぞれに適用する」を追加し、「以前の手順から出力を選択」に動的コンテンツの「添付ファイル」を入れる
  7. ループの中に「条件」を追加し、詳細モードで式2を入れる(埋め込み画像ではなく、名前が .pdf で終わるもの)
  8. 条件の「True の場合」に SharePoint の「ファイルを作成する」を追加する
  9. 「サイト アドレス」に「工事案件」、「フォルダー パス」に式3、「ファイル名」に式4、「ファイル コンテンツ」に動的コンテンツの添付ファイルのコンテンツを入れる
  10. 保存し、協力会社のアドレスから自分の別のアドレスを使ってテスト用のメールを送り、実行履歴を確かめる
「それぞれに適用する」の中に「条件」があり、True の側に「ファイルを作成する」が入っているフロー全体
「それぞれに適用する」の中に「条件」があり、True の側に「ファイルを作成する」が入っているフロー全体

式1(トリガー条件)は次のとおりです。Microsoft Defender for Office 365 の安全な添付ファイル(動的配信)を使っている会社では、同じメールで2回動き、1回目は添付の配列が空になります。この式で1回目を落とします。

@greater(length(triggerOutputs()?['body/attachments']), 0)

式2(ループの中の条件)は、埋め込み画像(インライン)ではなく、名前が .pdf で終わる添付だけを通します。大文字の .PDF も拾うよう、名前を小文字にしてから比べます。

@and(equals(items('Apply_to_each')?['isInline'], false), endsWith(toLower(items('Apply_to_each')?['name']), '.pdf'))

式3(フォルダー パス)は、受信日時を日本時間に直して yyyy-MM の形にし、月のフォルダにします。受信日時は世界標準時で届くので、直さないと月末の夜9時以降のメールが翌月のフォルダに入ります。

concat('/Shared Documents/請求書/', formatDateTime(convertFromUtc(triggerOutputs()?['body/receivedDateTime'], 'Tokyo Standard Time'), 'yyyy-MM'))

「ファイルを作成する」の「フォルダー パス」は、ライブラリから始めれば、その下のフォルダが無いときは作られます。月が変わるたびに人がフォルダを作る必要はありません。ライブラリ名は画面では「ドキュメント」ですが、パスでは Shared Documents です。フォルダーの選択ボタンで一度「請求書」フォルダを選ぶと、正しい書き方が分かります。

式4(ファイル名)は、受信日時を頭に付けて上書きを防ぎます。

concat(formatDateTime(convertFromUtc(triggerOutputs()?['body/receivedDateTime'], 'Tokyo Standard Time'), 'yyyyMMdd-HHmm'), '_', items('Apply_to_each')?['name'])

Apply_to_each はループのカードの名前です。カードの名前を変えた場合や、画面で名前が違う場合は、その名前に合わせて読み替えます。名前に空白があるときは _ に置き換えます。

「ファイルを作成する」のパラメーターで、フォルダー パスとファイル名に式が入っているところ
「ファイルを作成する」のパラメーターで、フォルダー パスとファイル名に式が入っているところ

保存したら知らせる

保存しただけでは、経理担当が気づきません。条件の「True の場合」の「ファイルを作成する」の後ろに、Teams の「チャットまたはチャネルでメッセージを投稿する」を足し、「次のように投稿する」を「Flow ボット」、「投稿」でチャネルに出す選択肢を選んで、「事務」チームのチャネルに「〇〇(差出人)から請求書を保存しました」と流します。メッセージに「ファイルを作成する」の出力のパスを入れておくと、どこに入ったかもすぐ分かります。

定型メールを送る

完成見学会の申込(Microsoft Forms)が送信されたら、申込者に info@ から受付メールを返します。本文に申込者の名前と参加日を差し込み、会場の地図のリンクと、当日の持ち物の表を入れます。

手順

  1. トリガーに Microsoft Forms の「新しい応答が送信されたとき」を選び、「完成見学会の申込」フォームを選ぶ
  2. Microsoft Forms の「応答の詳細を取得する」を足し、「応答 ID」にトリガーの「応答 ID」を入れる
  3. Office 365 Outlook の「共有メールボックスからメールを送信する (V2)」を足す
  4. 「元のメールボックス アドレス」に info@sample-koumuten.example、「宛先」(リファレンスの訳は「移行先」)にフォームのメールアドレスの答えを入れる
  5. 「件名」に「【サンプル工務店】完成見学会のお申込みを受け付けました」と入れる
  6. 「本文」に文面を書き、名前と参加日の位置に動的コンテンツの答えを差し込む
  7. 地図の案内にしたい文字を選び、本文のツールバーの「リンク」でリンク先を入れて「追加」を選ぶ
  8. 保存し、自分でフォームに答えて届いたメールを確かめる
「共有メールボックスからメールを送信する (V2)」の本文の欄に、名前と参加日の動的コンテンツが差し込まれ、地図のリンクが入っているところ
「共有メールボックスからメールを送信する (V2)」の本文の欄に、名前と参加日の動的コンテンツが差し込まれ、地図のリンクが入っているところ

本文に表を入れたいときは、「データ操作」の「HTML テーブルの作成」で表を作り、その「出力」を本文に差し込みます。表の元になる配列は、「作成」で直接書いてもよく、SharePoint リストから「アイテムを取得」で取ってきたものを「選択」で列を絞って使うこともできます。持ち物の表なら、「作成」に次のように書きます。

[
  {"持ち物": "スリッパ", "備考": "会場でもお貸しします"},
  {"持ち物": "筆記用具", "備考": "間取り図に書き込めます"},
  {"持ち物": "今のお住まいの図面", "備考": "あればリフォームのご相談が早く進みます"}
]

「HTML テーブルの作成」の出力は罫線の無い表なので、メールで読みにくいことがあります。本文には「出力」の代わりに次の式を差し込むと、罫線が付きます。

replace(body('HTML_テーブルの作成'), '<table>', '<table border="1" style="border-collapse:collapse">')
受信したメールで、申込者の名前・参加日・地図のリンク・持ち物の表が表示されているところ
受信したメールで、申込者の名前・参加日・地図のリンク・持ち物の表が表示されているところ

自分の受信トレイ用の「メールを送信する (V2)」で「差出人」に info@ を入れても送れますが、権限の付け方で失敗しやすいので、共有メールボックスから送るなら「共有メールボックスからメールを送信する (V2)」を使うのが確実です。どちらのアクションも、送ったメールのメッセージ ID は返ってきません。送った記録を残したいときは、送った日時と宛先を SharePoint リストに書く手順を後ろに足します。

差出人で絞って知らせる・転送する・フォルダ分けする

個人の受信トレイを見張るときは「新しいメールが届いたとき (V3)」を使います。設定欄の「フォルダー」「宛先」「CC」「差出人」「重要度」「添付ファイルのみ」「件名フィルター」で絞れます。トリガーで絞った条件に合わないメールではフローが動かないので、実行の回数も減ります。後ろの「条件」で絞ると、関係ないメールでも毎回フローが動いて実行の回数に数えられます。

  • 現場監督Cが、施主からのメールだけを Teams で見たい場合は、「差出人」に施主のアドレスを入れ、「チャットまたはチャネルでメッセージを投稿する」で自分のチャットに投稿する
  • 営業Aの休暇中、件名に「見積」を含むメールを代わりの担当に回す場合は、「件名フィルター」に「見積」を入れ、「メールを転送する (V2)」で転送する
  • 本文に工事番号が書かれたメールを工事ごとのフォルダに分ける場合は、本文から工事番号を式で取り出し、「メールの移動 (V2)」で移す

「宛先」と「CC」は片方だけ入れます。両方に入れると、両方に当てはまるメールだけが対象になります。

仕分けルールとの使い分け

やりたいこと仕分けルールPower Automate
差出人や件名でフォルダに移す向いている本文の中身で分けるときだけ
特定の人に転送する向いている転送前に本文を加工したいときだけ
フラグ・分類項目を付ける向いているほかの処理のついでに付けるとき
添付を SharePoint・OneDrive に保存するできない向いている
Teams に知らせる・リストに書くできない向いている
名前や日付を差し込んで返信するできない向いている
共有メールボックスに届いたメールを処理する共有メールボックスにもルールは作れる向いている

仕分けルールには、Outlook が起動しているパソコンでしか動かないものもあります。クラシック Outlook で作ったルールの一部は新しい Outlook では動きません。Power Automate のフローはクラウドで動くので、パソコンの電源が切れていても動きます。

ルールと Power Automate を同じメールに重ねるときは注意が要ります。ルールで受信トレイから別のフォルダに移すと、そのフォルダを見張っているトリガーが動かないことがあります。トリガーは受信日時でメールを判定するためです。サンプル工務店では、請求書をルールで振り分けるのをやめ、受信トレイを見張るトリガーの「差出人」と「添付ファイルのみ」で絞る形にそろえました。

二重に処理される・署名の画像まで保存される

メールのフローで一番多い困りごとは、この2つです。

二重に処理される

原因はいくつかあり、それぞれ直し方が違います。

原因見分け方直し方
安全な添付ファイル(動的配信)で同じメールに2回動く1回目の実行で添付の配列が空式1のトリガー条件を入れる
同じメールボックスを見張るフローが2本ある「マイ フロー」で同じトリガーのフローを探す1本にまとめ、中の「スイッチ」で分ける
別の環境にフローのコピーがある環境を切り替えて同名のフローを探す使わないほうをオフにする
共有メールボックスでメールを移動した古いメールでも動いているトリガーで差出人や件名を絞る。処理済みを記録して2回目を飛ばす
送信で相手側が応答せず再試行された同じメールが2通届いたまれに起こる。宛先に影響が大きい送信は送信記録で確かめる

どの原因でも効くのは、処理済みのメールを記録しておく方法です。トリガーの出力の「インターネット メッセージ ID」はメールごとに一つなので、これを SharePoint リストに書いておき、フローの最初で同じ ID の行があれば何もせず終わるようにします。

triggerOutputs()?['body/internetMessageId']

署名の画像まで保存される

メールの本文に埋め込まれた画像(署名のロゴ、本文に貼った写真)も、添付ファイルの配列に入ってきます。見分ける印が isInline で、埋め込み画像は true です。式2のように isInline が false のものだけを保存すれば、署名の画像は外れます。名前の拡張子でも絞っておくと、協力会社が Excel の明細を一緒に付けてきた場合も混ざりません。

「それぞれに適用する」の代わりに「配列のフィルター処理」で先に絞る作り方もあります。この場合、絞ったあとの添付のコンテンツは文字(Base64)になるので、「ファイルを作成する」の「ファイル コンテンツ」には base64ToBinary(items('Apply_to_each')?['contentBytes']) のように元に戻してから渡します。戻さないと、開けないPDFが保存されます。

実行履歴でトリガーの出力を開き、添付ファイルの配列に isInline が true の画像と false のPDFが並んでいるところ
実行履歴でトリガーの出力を開き、添付ファイルの配列に isInline が true の画像と false のPDFが並んでいるところ

応用:毎朝、未対応の問い合わせをメールで送る

「繰り返し」トリガーで毎朝8時に、SharePoint の問い合わせ台帳から状態が「未対応」の行を「アイテムを取得」で取り、「選択」で受付日・お名前・内容の3列に絞って「HTML テーブルの作成」に渡し、「メールを送信する (V2)」で営業3名に送ります。Teams を開かない人にも届くので、朝の確認漏れが減ります。0件の日は送らないよう、「条件」で length(body('選択')) が0より大きいときだけ送ります。

できないことと、その代わり

できないこと代わりの手
1つのトリガーで複数のメールボックスを見張るメールボックスごとにフローを分ける
暗号化されたメールの本文を読む出力に本文が入らない。暗号化しない運用にするか、人が読む
50 MB を超えるメールで動かすトリガーは飛ばす。相手にファイル共有のリンクで送ってもらう
送ったメールのメッセージ ID を受け取る送信の記録を SharePoint リストに自分で書く
個人の Microsoft アカウントのメールを会社のフローで扱うOutlook.com コネクタは個人のアカウント用。会社のメールは Microsoft 365 にそろえる
届いた瞬間に動かすメールのトリガーは届いてすぐには動かず、遅れることがある。急ぐ連絡は電話や Teams にする

よく詰まるところ

症状原因直し方
共有メールボックスのトリガーが動かない接続を作った人に共有メールボックスのフル アクセスが無い管理者にフル アクセスを付けてもらい、接続を作り直す
共有メールボックスから送れない「メールボックス所有者として送信する」の権限が無い、個人のメールボックスを共有に変換したもの権限を付けてもらう。変換したメールボックスでは動かないので作り直しも考える
署名のロゴまで保存される埋め込み画像も添付の配列に入るisInline が false のものだけ保存する
保存したPDFが開けない「配列のフィルター処理」を通したコンテンツを文字のまま保存したbase64ToBinary() で戻してから「ファイルを作成する」に渡す
同じ名前のファイルで失敗する同じ名前の請求書が届いたファイル名の頭に受信日時を付ける
月末の夜のメールが翌月のフォルダに入る受信日時が世界標準時のままconvertFromUtc() で日本時間に直してから月を取る
同じメールで2回動く安全な添付ファイル、同じトリガーのフローが2本、メールの移動原因の表を見て直す。インターネット メッセージ ID で処理済みを記録する
一部のメールだけフローが動かない仕分けルールで別のフォルダに移しているルールをやめ、受信トレイを見張ってトリガーで絞る
添付付きのメールでタイムアウトする「添付ファイルを含める」が「はい」で、添付が多い「いいえ」にして、必要なときだけ「添付ファイルの取得 (V2)」で取る
表に罫線が無く読みにくい「HTML テーブルの作成」の出力に罫線の指定が無いreplace() で table に罫線の指定を足す
テンプレートで作ったら動かないOutlook.com コネクタのトリガーを選んでいたOffice 365 Outlook のトリガーに替える

次にやること

メールのフローができたら、ほかの入口と保存先に広げます。

あわせて読む