メールの件名で添付ファイルを振り分ける(SharePointの保存先を図解)
件名に「請求書」があれば請求書フォルダー、それ以外はその他へ。2通・3添付の分岐図で保存先を確認し、保存しない練習からSharePointへの作成へ進みます。
画面上の名前は、表示言語やバージョンによって異なる場合があります。クラウドフローはトリガー(フローを開始する条件)から始まり、その後にアクションを実行します。値の受け渡しには、前のステップの出力を選ぶ「動的コンテンツ」を使います。式は[式]欄へ入力します。
実行前に確認
- 組織アカウント、Outlook・SharePointへの接続と書き込み権限が必要です。標準コネクタでも契約の利用権と組織のDLPポリシーを確認します。メール添付を保存先の閲覧者へ共有してよいかも確認してください。
- 判定するのはメールの件名です。添付名やPDFの内容を分類する仕組みではありません。「請求書ではありません」のような件名も「請求書」を含むため、請求書側へ進みます。
- 最初は作成(Compose)だけで保存先を確認し、実際のファイル作成は後から追加します。差出人を自分に限定し、機密を含まない小さな通常の添付を使います。保護・署名付きメール等では取得できない場合があります。
- guid()による別名保存は二重登録を防ぎません。同じメールの再送やフローの再実行でも別ファイルが増えます。本番運用にはメールID+添付IDの処理済み管理などを別途設計します。
1使うトリガーとアクション
- トリガー新しいメールが届いたとき (V3)Office 365 Outlook/自分宛ての新着テストメール
- アクションそれぞれに適用するトリガーの添付ファイルを1件ずつ
- アクション条件インライン判定:isInline=falseか。いいえ側は何もしない
- アクション添付ファイルの取得 (V2)インライン判定のはい側:添付の中身を取得
- アクション条件インライン判定のはい側で、件名に「請求書」を含むか
- アクションファイルの作成件名判定のはい側:SharePointの請求書フォルダー
- アクションファイルの作成件名判定のいいえ側:SharePointのその他フォルダー
図で見る処理のイメージ
概念図同じ「請求書.pdf」でも、メールの件名によって保存先が変わります。A・Bは別々の新着メールです。
分かれ道は「メールの件名」
Bも「請求書.pdf」だけど → その他へ添付ファイルの名前や中身では判定しません。
Aの通常添付2件は請求書フォルダー、Bの通常添付1件はその他フォルダーへ新しく保存します。元のメールや添付は移動・削除しません。
説明用の架空データと期待値です。実際のPower Automate・Outlook・SharePointで実行して確認した結果ではありません。
設定と処理を説明する模式図です。実際の設定画面や実行結果のスクリーンショットではありません。
2実際の設定内容
入力する値・操作手順を確認する11ステップの設定と確認方法
- 1
準備:自分のOffice 365 Outlookメールボックスと、書き込みできるSharePointサイトを使います。ドキュメントライブラリに「振分け練習」を作り、その下へ「請求書」「その他」の2フォルダーを用意します。空の練習先と架空の小さな添付を使い、共有メールボックスや本番の請求書は対象にしません。
- 2
自動化したクラウドフローのトリガーは「新しいメールが届いたとき (V3)」。フォルダー=受信トレイ、差出人=自分の組織メール、添付ファイル付きのみ=はい、添付ファイルを含める=いいえにします。件名フィルターは空欄です。ここに「請求書」を入れると、その他の件名は起動前に除外され、いいえ側を試せません。
- 3
「それぞれに適用する」の入力へ、トリガーの「添付ファイル」を選びます。「添付ファイルを含める=いいえ」でも添付のID・名前・isInline等は受け取れますが、中身は後で取得します。ループの中で条件を追加し、左の式 item()?['isInline'] が右の式 false と等しいかを判定します。falseは文字列ではなく真偽値です。いいえ側には何も置きません。
- 4
保存しない初回確認:上の条件のはい側に、もう1つ条件を置きます。左=トリガーの動的コンテンツ「件名」、演算子=「含む」、右=請求書です。添付の名前を左に選ばないでください。この段階では「添付ファイルの取得」「ファイルの作成」をまだ追加しません。
- 5
件名条件のはい側にデータ操作「作成」を置き、入力に「請求書フォルダー/」と現在の添付の名前を入れます。いいえ側の「作成」は「その他フォルダー/」と現在の添付の名前にします。作成(Compose)は出力を実行履歴へ残すだけで、SharePointにファイルを作りません。
- 6
フローを保存してから、自分宛てにテストメールA「請求書 10月」を送り、通常の添付を「請求書.pdf」「明細.txt」にします。続けてメールB「資料の送付」に「請求書.pdf」を添付します。期待値はAの作成が請求書側に2件、Bがその他側に1件です。Bは添付名に「請求書」があってもその他側です。本文の署名画像がisInline=trueとして返る場合は、最初の条件のいいえ側で除外されます。
- 7
保存へ進む準備:インライン判定のはい側で、件名条件の前に「添付ファイルの取得 (V2)」を追加します。メッセージID=メール受信トリガーのメッセージID、添付ファイルID=ループの現在の添付ファイルIDです。2つのIDを入れ替えないでください。
- 8
件名条件の両側へSharePointの「ファイルの作成」を追加します。サイトのアドレス=準備した練習用サイト。フォルダーのパスは選択ボタンから、はい側「振分け練習/請求書」、いいえ側「振分け練習/その他」をそれぞれ選びます。既存ライブラリから始まるパスで、表示例は /Shared Documents/振分け練習/請求書 です。ライブラリの名前・パスは環境に合わせ、フォルダー欄へファイル名は入れません。
- 9
両側ともファイル名の式は concat(guid(),'_',item()?['name'])、ファイルコンテンツは「添付ファイルの取得 (V2)」の「コンテンツのバイト(Content Bytes)」を選びます。トリガーには中身を含めていないため、トリガー側のコンテンツは使いません。guid()は添付ごとに新しい識別子を付け、同じ添付名の衝突を避けるための例です。
- 10
保存後にA・Bを新しいメールとして送り直し、請求書フォルダーに2件、その他フォルダーに1件の新規ファイルができるか確認します。ファイル名の先頭は毎回異なります。各ファイルを開き、元の添付と内容が同じかも確認します。メールと元の添付は受信トレイに残ります。添付なしのメールはトリガーの対象外で、履歴ができない場合と、起動した後にインライン判定で除外された場合を区別します。
- 11
つまずいたら:その他側の履歴がないときは件名フィルター、通常の添付が全て除外されるときはisInlineの実値と真偽値false、保存ファイルが空・壊れているときは添付取得のIDとContent Bytesの参照元を確認します。保存先が見つからない・アクセス拒否ならサイト、フォルダーの選択、接続ユーザーの書き込み権限を確認します。途中まで保存された実行をそのまま再実行すると、保存済みの分も別名で増えるため、まず履歴と保存先を照合します。
- 対象環境
- Power Automate クラウドフロー
- 更新日
- 2026年10月11日