トランスポート ルールで [以降のルールは処理しない] が機能しない
こんにちは。Exchange サポート チームの小間です。
今回は Exchange 2013 で報告されているトランスポート ルールの問題についてご紹介いたします。
事象について
トランスポート ルールでメッセージの承認を受けるように構成し、かつ [以降のルールは処理しない] が有効になっている場合、処理されないはずであるルールの処理が実行されてしまいます。
具体的な影響の例としては、1 通のメッセージに対して 2 通の承認依頼のメッセージが送信されます。
今回の事象の発生条件
- 発生条件 (再現手順)
以下のような手順によって今回の事象が発生いたします。
1. 以下の内容で 2 つのルールを作成します。
2 つとも内容は同じですが、Exchange 管理センターの設定画面の [以降のルールは処理しない] が有効になっているため、管理者としては '承認2' は実行されることがないという認識になります。
Name : | 承認1 |
Description : | メッセージが次の場合: |
'User01@contoso.com' から受信した場合 | |
次の操作を行います: | |
承認を受けるため、メッセージを 'User02@contoso.com' に転送する | |
および 他のルールは処理しない |
Name : | 承認2 |
Description : | メッセージが次の場合: |
'User01@contoso.com' から受信した場合 | |
次の操作を行います: | |
承認を受けるため、メッセージを 'User02@contoso.com' に転送する | |
および 他のルールは処理しない |
2. User01 からメッセージを送信します。
3. User02 に承認依頼が送信されるので、User02 はそれを承認します。
4. User02 に 2 通目の承認依頼が送信されます。この 2 通目の承認依頼は、管理者が意図したものではありません。
- 動作について
User02 がメッセージの送信を承認した後に、User01 が送信したメッセージは再度トランスポート ルールの評価を受けます。
既に実行済みのトランスポート ルールは、メッセージのヘッダーに Rule History として情報が保持されています。
そして既に Rule History にあるルール (今回の場合は '承認1') はスキップされます。
現在の Exchange 2013 の実装では、その時に '承認1' で [以降の処理は適用しない] が有効になっているかどうかの確認がされないため、より優先度の低いルール (今回の場合は '承認2') が適用されてしまいます。
回避策
本動作について、現時点では製品の修正は予定されておりません。
この動作によるお客様への業務影響の規模や、回避策の有無などを鑑みてこのような判断となっております。
回避策としては、上記のような 2 つのルールの間に、[以降のルールは処理しない] が有効になっているトランスポート ルールを追加する方法がございます。
追加するトランスポート ルールで [以降のルールは処理しない] が有効になっているため、2 通目の承認依頼を送信するルールが実行されなくなるためです。
'承認1' の条件と回避策として追加するルールの条件を同一にすることで、他のルールの動作には影響を与えずに事象を回避することが可能となります。
例えば以下のように、存在しないヘッダーを削除するトランスポート ルールを追加することが回避策として有効です。
Name : | 回避用 |
Description : | メッセージが次の場合: |
'User01@contoso.com' から受信した場合 | |
次の操作を行います: | |
次のヘッダーを削除する: 'X-WORKAROUNDHEADER' | |
および 他のルールは処理しない |
ルールを追加すること自体の影響といたしましては、本来は必要のないルールが作成されることによって管理が煩雑になることや、メッセージによっては評価が必要なルールが増えることになるため多少のメッセージの処理速度の低下が考えられます。
お客様にはご迷惑をおかけいたしますが、今回ご紹介したようなトランスポート ルールを設定されている場合は、回避策となる設定の追加や、トランスポート ルールの設定の見直しをご検討いただきますようお願いいたします。
今後も当ブログおよびサポート チームをよろしくお願いいたします。