Azure DevOpsからの通知メールはカスタマイズできない(要望は出ているのですが)ので、通知メールの振り分けに困るという相談は度々出ていました。配布リストを一人のために作るのもあれだし、困るなぁと思っていました。gmailであればローカルパートに+で識別子をつけれるけど、gmail前提でもないしと思っていたら、Exchange Onlineがgmailと同じ仕様の + で連結するローカルパートをサポートしてくれることになりました。
これを使えば一つのメールアドレスで振り分けルールが比較的自由に作れます。ちょっとやってみましょう。ExchangeのPowerShellモジュールを追加しておきます。次に、PowerShellでExchange Onlineに接続して、Set-OrganizationConfig
で変更します。
Connect-ExchangeOnline -UserPrincipalName 管理者のID Set-OrganizationConfig -AllowPlusAddressInRecipients $true
Get-OrganizationConfig
で設定を確認します。
AllowPlusAddressInRecipients : True
こうなっていればOKです。Exchange Onlineから切断します。
Disconnect-ExchangeOnline
即時反映されているはずです(多分)。次にAzure DevOps側の設定を行います。
User settings(https://dev.azure.com/{organization}/_usersSettings/notifications
)を開いて、チームプロジェクト単位で通知を設定します。たとえば、SessionDemo
というプロジェクトであれば、メールアドレスのローカルパートをkkamegawa+SessionDemo
という形式にします。
Outlookの振り分けルールで+付きのメールアドレスで指定フォルダーに振り分けます。もちろんラベルなどでもいいでしょう。
今回はビルドの通知だけいじりましたが、ビルド完了通知が正しく振り分けられていますね!本来はTeamsとかSlackへのポストがいいんでしょうけど、使えないこともあると思います。
全部の設定を変更するの大変かもしれないですが、REST APIで登録できたはずなので、その辺りグローバルルールを全部無効にして、こういうルールを追加していけば振り分けも楽になるかもしれません。