allof
および anyof
の複合テスト
PureMessage ポリシースクリプト内の一部のテストは論理演算子として使用されます。これらのテストは、他のテストを引数として使用するため複合テストと呼ばれます。allof
または anyof
コマンドを使用して複合テストを設定します。allof
コマンドは論理式の AND として機能します。(ブロック内の該当アクションが実行されるには、allof
リストの複合テストがすべて「true」になる必要があります。)anyof
コマンドは論理式の OR として機能します。(ブロック内の該当アクションが実行されるには anyof
ストの複合テストのいずれか 1つが「true」である必要があります。)
ポリシースクリプト内で、allof
と anyof
コマンドはテストおよびリストを引数として処理します。複合テストを作成するには、ブロックのステートメントの前に、個々のテストと関連する引数を丸括弧内にまとめて配置します。リスト内の複合テストは、各テストの終わりをカンマ「,」で区切る必要があります。
- 一般的な例:
-
if anyof (test :match_type "list", test :match_type "list") { action; next_action; }
この例では、
anyof
コマンドで 2つのテストが行われます。各テストでは、リストの引数を使って match-type を解釈します。複合テストは括弧で囲まれています。各テストを、カンマで区切られています。 - ポリシースクリプト例:
-
if anyof (host :memberof "whitelisted-hosts", sender :memberof "whitelisted-senders") { keep; stop; }
ポリシーフィルタによって、ホストと送信者の両方についてPureMessage の「whitelist」(許可リスト) に登録されているメンバーであるかどうかが確認されます。ホストまたは送信者のいずれかが「whitelist」(許可リスト) に含まれている場合、メッセージは宛先のすべての受信者に配信されます。スクリプトは
stop
コマンドによって、その後で停止します。
© 2017 Sophos Limited. All rights reserved.