kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

Azure DevOpsの通知メールを振り分け可能にカスタマイズする

Azure DevOpsからの通知メールはカスタマイズできない(要望は出ているのですが)ので、通知メールの振り分けに困るという相談は度々出ていました。配布リストを一人のために作るのもあれだし、困るなぁと思っていました。gmailであればローカルパートに+で識別子をつけれるけど、gmail前提でもないしと思っていたら、Exchange Onlineがgmailと同じ仕様の + で連結するローカルパートをサポートしてくれることになりました。

techcommunity.microsoft.com

これを使えば一つのメールアドレスで振り分けルールが比較的自由に作れます。ちょっとやってみましょう。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側の設定を行います。

f:id:kkamegawa:20201029153438p:plain

User settings(https://dev.azure.com/{organization}/_usersSettings/notifications)を開いて、チームプロジェクト単位で通知を設定します。たとえば、SessionDemoというプロジェクトであれば、メールアドレスのローカルパートをkkamegawa+SessionDemoという形式にします。

f:id:kkamegawa:20201029153430p:plain

Outlookの振り分けルールで+付きのメールアドレスで指定フォルダーに振り分けます。もちろんラベルなどでもいいでしょう。

f:id:kkamegawa:20201029153434p:plain

今回はビルドの通知だけいじりましたが、ビルド完了通知が正しく振り分けられていますね!本来はTeamsとかSlackへのポストがいいんでしょうけど、使えないこともあると思います。

全部の設定を変更するの大変かもしれないですが、REST APIで登録できたはずなので、その辺りグローバルルールを全部無効にして、こういうルールを追加していけば振り分けも楽になるかもしれません。

docs.microsoft.com