Windows App SDK の Push Notifications で「PFN Mapping Request(Mapping Request)」を [email protected] に送ったのに、処理完了の返信が来ない――この手の“待ちぼうけ”は、実装以前に「メール到達」「依頼内容の不足」「週次処理のタイミング」「受信側フィルタ」のどこかで詰まっていることが多いです。状況確認の近道は、ステータス確認に頼るのではなく、チェック項目を順に潰していくことです。
結論:Mapping Request は「週次処理」だが、利用者が見られるステータス画面は基本的に用意されていない
まず前提として、Microsoft Learn の Quickstart では、パッケージ化された Win32 アプリの場合に「PFN を Azure AppId にマップするための依頼メール」を送るよう案内されており、処理は週次で行われ、完了したら通知される、と記載されています。
一方で、Microsoft Q&A でも「ステータスを確認する明確な方法は案内されていない」「週次処理で、完了時に通知されるとしか書かれていない」といった趣旨の回答が出ています。
つまり、やるべきことはシンプルです。
- 依頼メールの仕様(件名・本文・3項目)に漏れがないか
- そもそもメールが届いているか/返信が受信できているか
- Windows/Windows App SDK がサポート範囲・最新パッチか
- 一定期間(週次処理のサイクル)を過ぎたら、同じスレッドで丁寧にフォローアップ
そもそも「Mapping Request」とは何か(何をマッピングして、なぜメールが必要なのか)
Windows App SDK のプッシュ通知は、WNS(Windows Push Notification Service)を利用しつつ、認証・識別には Azure AD(Azure App Registration)の情報を使います。
Quickstart では、Azure AD でアプリ登録を行い、Azure AppId(Application/Client ID)やObjectIdなどを準備したうえで、パッケージ化された Win32 アプリの場合は、アプリの PFN(Package Family Name)を Azure AppId に紐付ける作業として Mapping Request をメールで申請する流れになっています。
ここで混乱しやすいのが、UWP 時代(Partner Center / MSA 連携)との違いです。Windows App SDK の Push Notifications は Azure AD ベースで、Partner Center(Microsoft Partner Center)での運用はサポートしない旨が明記されています。
Mapping Request が必要になりやすいケース早見表
| アプリ形態 | PFN(Package Family Name) | Mapping Request の必要性 | まずやること |
|---|---|---|---|
| MSIX などでパッケージ化された Win32 | あり | 必要(Quickstart の案内) | PFN / AppId / ObjectId を揃えて依頼メール送信 |
| 外部ロケーションでのパッケージ(いわゆる “packaged with external location”) | あり | 状況によって必要になり得る | Quickstart の“packaged”の手順を前提に確認 |
| アンパッケージ(実行時に package identity がない) | なし | PFN マッピングという概念自体が成立しない | Quickstart のアンパッケージ向け手順/IsSupported の確認 |
※「メールを送らなくても動いた」という報告もありますが、これはアプリ形態や条件が異なる可能性があるため、再現性のある“正攻法”としては Quickstart に沿って進めるのが安全です。
最重要:依頼メールの“仕様”をもう一度確認(件名・本文フォーマット)
Quickstart で案内されている依頼メールの要点は次のとおりです。
| 項目 | 指定内容 | よくあるミス | 対策 |
|---|---|---|---|
| 宛先 | [email protected] | タイプミス/別名アドレスへ送る | コピペで統一。送信済みの宛先表記も見直す |
| 件名 | Windows App SDK Push Notifications Mapping Request | 件名が違う/スレッドが分散する | Quickstart 指定の件名を維持。フォローアップも同一スレッド推奨 |
| 本文 | PFN: ...AppId: ...ObjectId: ... | 3項目の欠落、コロン表記ゆれ、GUID 取り違え | まずは素直にプレーンテキストで記載(署名は最小化) |
| 処理サイクル | 週次で処理、完了時に通知 | 翌日には返ると思い込む | 最低でも“週次処理のサイクル”を意識して待機+計画的に追跡 |
そのまま使える Mapping Request メールテンプレ(最小構成)
まずは“仕様どおりの最小構成”に寄せるのがコツです(長い説明や添付ファイルは避け、必要情報だけを明確に)。
To: [email protected]
Subject: Windows App SDK Push Notifications Mapping Request
PFN: Contoso.SampleApp_1234567890abc
AppId: 00000000-0000-0000-0000-000000000000
ObjectId: 11111111-1111-1111-1111-111111111111
注意:この依頼に「クライアントシークレット」や証明書などの秘匿情報を同梱する必要はありません。Quickstart が求めているのは PFN / AppId / ObjectId です。
完了通知が来ない“典型パターン”と切り分け
「返事が来ない」場合、原因は大きく ①送れていない/届いていない、②届いているが処理待ち、③内容不備で止まっている、④返信が受信側で見えていない に分かれます。
| 症状 | 可能性が高い原因 | 確認ポイント | 打ち手 |
|---|---|---|---|
| 送信直後に配信不能通知(NDR)が返る | 宛先が無効/受信側ディレクトリに存在しない扱い | NDR の本文(「存在しない」「ディレクトリにない」等) | 宛先を再確認。転送・ゲートウェイ経由なら管理者にも確認依頼 |
| 送信後、何も返らない(自動応答もなし) | そもそも自動応答がない/処理待ち/返信が迷惑メール | スパム、隔離、ルール、別フォルダ(Focused/Other) | 受信環境の徹底確認+一定期間後にフォローアップ |
| 2~3週間以上何も返らない | 処理待ち継続/依頼内容が曖昧/スレッドが分散 | 件名、本文3項目、値の正しさ、送信日時 | 同一スレッドで丁寧に状況確認。必要なら再送(重複は明記) |
| 社内のセキュリティ製品が厳しい | Microsoft ドメインからの返信が隔離 | 隔離レポート、ゲートウェイのログ、許可リスト | microsoft.com からの受信許可(可能なら) |
| 返信が来ても担当者に届かない | 共有メールボックス/転送ルールの不備 | 送信者(From)の表記、共有受信箱の監視 | 受信責任者を固定、共有受信箱の監視体制を整える |
実際に Microsoft Q&A でも、宛先側の扱いにより「受信側ディレクトリに無いので拒否された」という趣旨のエラーメッセージが報告されています。まずは“届いている前提”を疑うのが重要です。
質問1:依頼に不備があった場合、エラー通知は返ってくるのか?
結論から言うと、「必ずエラー通知が返る」とは期待しない方が安全です。公式ドキュメント上は「週次で処理し、完了したら通知する」ことは明記されていますが、不備があった場合に必ず何らかのフィードバックが返るとは書かれていません。
現実的には、次の2パターンを想定しておくと運用が破綻しません。
- 配信不能(NDR)だけは返ることがある:宛先の問題、ゲートウェイ拒否、ポリシー違反など(この場合は“送れていない”)
- 内容不備でも沈黙することがある:キューに滞留、手動確認が必要、追加確認が来ないまま止まる等(この場合は“送れているが進んでいない”)
したがって、「不備があれば通知が来るはず」と待つのではなく、送信側で“仕様どおりの内容”をセルフレビューし、一定期間後にフォローアップする設計が堅実です。
質問2:処理状況(ステータス)を確認する方法はあるのか?
Mapping Request 自体のステータスを、利用者が自動で確認できる仕組みは(少なくとも公開情報としては)示されていません。 Microsoft Q&A の回答でも「明確な確認手段がない」とされています。
ただし混同しやすい点として、Windows App SDK には「チャネル要求(WNS Channel URI を取得する要求)」があり、こちらは非同期で進み、状況を確認できる旨の記述があります。これは“メールの Mapping Request”とは別物です。
整理すると次のとおりです。
| 対象 | 何をする | ステータス確認の可否 | 詰まったときの打ち手 |
|---|---|---|---|
| Mapping Request(メール) | PFN と Azure AppId の紐付けを申請 | 公開された手段は見当たりにくい | メール到達確認/内容再確認/フォローアップ/別チャネルで相談 |
| Channel request(アプリ実装側) | WNS Channel URI を取得 | 状況を確認できる旨の記述あり | 実装・権限・対応OS/SDK・IsSupported で切り分け |
実務で効く:送受信の“見落とし”を潰すチェックリスト
フォローアップ前に、まず「返信が来ていない」のではなく「返信が見えていない」を潰します。特に企業・組織アカウントでは、迷惑メールよりも隔離(Quarantine)やセキュリティゲートウェイで止まるケースが多いです。
受信側チェック(Outlook/Exchange でありがちなポイント)
- 受信トレイだけでなく、迷惑メール、その他(Focused/Other)、アーカイブも確認
- 自分やチームのメールボックスに、振り分けルール/転送/共同作業者の共有受信箱がある場合、返信が別箱へ行っていないか確認
- M365(Defender for Office 365 等)を使っているなら、隔離に Microsoft からの返信が入っていないか管理者に確認
- 自社のメールセキュリティ製品(Proofpoint / Mimecast / Barracuda 等)があるなら、ログで「microsoft.com からのメールが拒否・隔離されていないか」を確認
送信側チェック(送れている前提を疑う)
- 送信済みアイテムで、宛先が
[email protected]になっているか再確認 - NDR(配信不能通知)が来ていないか確認(来ているなら“未到達”)
- 組織の送信制限(外部宛送信ブロック、添付制限、DLP)が発動していないか確認
依頼内容のセルフレビュー:PFN / AppId / ObjectId の“取り違え”が一番多い
Mapping Request の本文は短いですが、3つの値は似ているため、取り違えが起きがちです。Quickstart では、Object ID の取り方について「Essentials ページにあるものではなく、Managed application から辿った Object ID を使う」といった注意が書かれています。
| 項目 | 何の値か | 取得場所の目安 | よくある落とし穴 |
|---|---|---|---|
| PFN | パッケージの「Package Family Name」 | MSIX/パッケージ情報、PowerShell、アプリ識別情報 | PackageFullName と混同する/別環境のPFNを貼る |
| AppId | Azure App Registration の Application (client) ID | Azure ポータルの App registration | Tenant ID と混同する/別アプリの Client ID を貼る |
| ObjectId | サービスプリンシパル/関連オブジェクトの ID(Quickstart で案内されるもの) | Azure ポータル(Managed application から辿る) | Essentials の Object ID を貼る(正しい Object ID と一致しない) |
また、Push Notifications の Quickstart では、Azure AD のアプリ登録で マルチテナントを選ぶ必要があるとも明記されています。ここがズレると、後段のチャネル取得やトークン取得で予期せぬ失敗に繋がるため、念のため確認してください。
フォローアップ(催促)メールの実務テンプレ:丁寧+情報を増やしすぎない
週次処理である以上、送信タイミングによっては「1週間以上」待つこと自体はあり得ます。ですが、週次処理のサイクルを複数回跨いでも反応がない場合は、同じ宛先・同じスレッドで状況確認を入れるのが最も角が立ちません。
フォローアップの目安(運用としての考え方)
| 経過 | おすすめアクション | ポイント |
|---|---|---|
| 送信から数日 | まずは受信・隔離・NDR の確認 | “そもそも届いていない”を最優先で潰す |
| 週次処理の1サイクル後 | 依頼内容(3項目)を再レビュー | 値の取り違え・不足がないか確認 |
| 週次処理を複数回跨いでも返信なし | 同一スレッドでフォローアップ | 再送なら「重複の可能性」を明記して混乱を避ける |
英語フォローアップテンプレ(そのまま貼れる)
Subject: RE: Windows App SDK Push Notifications Mapping Request
Hello,
I sent a PFN mapping request previously, but I haven't received a completion notification yet.
Could you please confirm whether the request is received and/or provide the current status?
PFN: Contoso.SampleApp_1234567890abc
AppId: 00000000-0000-0000-0000-000000000000
ObjectId: 11111111-1111-1111-1111-111111111111
Sent date (UTC): 2026-01-XX
Thank you.
このときのコツは、情報を増やしすぎないことです。ログや背景説明を長文で載せると、かえって要点が埋もれます。必要なら「追加情報は求められ次第すぐ出せる」旨を一文添える程度に留めるとスムーズです。
Windows/Windows App SDK の互換性とバージョンを確認し、可能なら最新パッチに寄せる
Mapping Request そのものはメール処理ですが、そもそも Push Notifications は OS と Windows App SDK の組み合わせで挙動が変わり得ます。少なくとも以下は押さえておきたいポイントです。
- Windows App SDK は Windows 10 バージョン 1809 以降で動作する旨が案内されています。
- 開発環境としての最小要件も Windows 10 1809(17763)以降が明記されています。
- Microsoft のサポートは「サポート対象OS」かつ「最新パッチ適用」が前提になり、GitHub Issues/Discussions や CSS(有償の場合あり)などのサポート導線もここに整理されています。
OS と Windows App SDK の“サポート観点”の確認(見落とし防止)
Windows App SDK はバージョンごとに、サポート対象の Windows リリースが一覧化されています。開発機・検証機が古い Windows で止まっている場合、Push Notifications の切り分けが難しくなるため、最低でも「OS がサポート範囲か」「Windows App SDK がサポート期間内か」を確認してください。
チェック項目と確認方法(コピペで使える)
| チェック項目 | 確認方法 | 見るべきポイント |
|---|---|---|
| Windows のバージョン | winver/設定 > システム > バージョン情報 | サポート対象の Windows リリースか |
| Windows App SDK(NuGet)の参照バージョン | .csproj / packages.props / NuGet 管理画面 | 古いメジャー・古いパッチで止まっていないか |
| Windows App SDK Runtime のインストール状況 | PowerShell で get-appxpackage *appruntime* | 想定する Runtime が入っているか、アーキテクチャが揃っているか |
Windows App SDK Runtime の確認コマンドは Microsoft Learn に明記されています(例:get-appxpackage *appruntime*)。
Push Notifications 側の“仕様・制限”も押さえる(Mapping Request 以前に詰まるケース)
「Mapping が終わっていない」ことばかりに目が行きがちですが、Push Notifications 自体にも制限があります。ここを見落とすと、Mapping 完了後も“動かない”状態が続き、原因が二重化します。
よくある制限・注意点
- Self-contained での配布や、管理者権限(elevated/admin)での実行ではサポートされない可能性がある(その場合は
IsSupported()で判定し、代替手段も検討する) - 現時点でサポートされるのは Raw push と App pushで、Badge / Tile push はサポートされない
- 検証用には、Microsoft Learn の Push Notifications Sample も参考になる(WNS Channel URI の取得やフォアグラウンド/バックグラウンド受信の流れが確認できる)
「Mapping Request が原因か?」を判断するための切り分け表
| 状況 | Mapping Request が主因の可能性 | 先に確認すべきこと |
|---|---|---|
IsSupported() が false | 低い(環境要因が濃厚) | self-contained/admin 実行/OS・SDK サポート範囲 |
| WNS Channel URI 取得の段階で失敗 | 中~高 | Azure AppId/tenant、アプリ登録設定、ObjectId の取り違え |
| パッケージ化 Win32 で、PFN を使うシナリオなのに紐付けが未完了 | 高い | 依頼メールの3項目・件名・宛先・到達確認 |
長期間返事がない場合の“現実的な相談先”
メールだけに依存すると詰まりやすいので、次の逃げ道を用意しておくと開発が止まりません。
- Microsoft Q&A:同様の事例や、Microsoft staff / moderator からの案内が得られることがある
- Windows App SDK の GitHub(Issues / Discussions):不具合・仕様確認の導線として Microsoft も案内している
- Microsoft サポート(CSS):契約形態によっては有償になり得るが、正式な問い合わせ経路として用意されている
特に企業案件では、「週次処理」「外部メール」「手動オペレーション」が絡むだけで、承認フローや期限に影響します。詰まり始めた時点で “複線化” しておくのが安全です。
最後に:この順番でやれば迷わない(行動チェックリスト)
| 手順 | やること | 完了の目安 |
|---|---|---|
| 依頼メールの仕様確認 | 宛先・件名・本文(PFN/AppId/ObjectId)の3点セットを Quickstart 通りに揃える | 送信済みメールがテンプレ通り |
| 到達・受信確認 | NDR/隔離/迷惑メール/ルール/共有受信箱を確認する | 「届いていない」を否定できる |
| 値の取り違え防止 | AppId/tenant/ObjectId を Azure で再確認(特に ObjectId) | 別IDの混入がない |
| 環境の健全性確認 | Windows と Windows App SDK をサポート範囲+最新パッチへ寄せる | “古さが原因”を排除できる |
| フォローアップ | 週次処理を複数回跨いでも返事がないなら、同一スレッドで状況確認 | 進捗確認の足掛かりができる |
| 相談先の複線化 | Microsoft Q&A / GitHub / サポートケースを状況に応じて併用 | 開発が止まらない |
「不備があればエラーが返るはず」「ステータス画面で確認できるはず」と期待してしまうと、何も起きない時間が増えるだけになりがちです。まずは仕様通りの依頼メールと到達性を固め、週次処理の現実に合わせてフォローアップする――これが最短ルートです。

コメント