allof および anyof の複合テスト

PureMessage ポリシースクリプト内の一部のテストは論理演算子として使用されます。これらのテストは、他のテストを引数として使用するため複合テストと呼ばれます。allof または anyof コマンドを使用して複合テストを設定します。allof コマンドは論理式の AND として機能します。(ブロック内の該当アクションが実行されるには、allof リストの複合テストがすべて「true」になる必要があります。)anyof コマンドは論理式の OR として機能します。(ブロック内の該当アクションが実行されるには anyof ストの複合テストのいずれか 1つが「true」である必要があります。)

ポリシースクリプト内で、allofanyof コマンドはテストおよびリストを引数として処理します。複合テストを作成するには、ブロックのステートメントの前に、個々のテストと関連する引数を丸括弧内にまとめて配置します。リスト内の複合テストは、各テストの終わりをカンマ「,」で区切る必要があります。

一般的な例:
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 コマンドによって、その後で停止します。