SMTP 規則の構文規則

SMTP 規則を作成するときは、以下の構文規則を使用します。
規則そのものの他に、システム構成時にデータ・セット内のどの規則をアクティブにすべきかを決定するための、幾つかの単純論理に関する機能があります。 これらの条件は、以下の例に示すように、IF-THEN-ELSE ステートメントの形式で指定されます。
   IF cond THEN
      statement list
   ELSE
      statement list
   ENDIF
ステートメント・リストは、任意の数の規則またはネストされた IF ステートメント (あるいはその両方) で構成されます。 各 IF ステートメントは、それがネストされているかどうかに関係なく、ENDIF キーワードで終わる必要があります。他のプログラミング言語における IF ステートメントの場合と同様、ELSE 節はオプションです。

IF ステートメントが認識するのは次の 2 つの条件だけです。

  1. IF 事前定義キーワード = '文字ストリング' THEN ... ENDIF
  2. IF 事前定義キーワード CONTAINS '文字ストリング' THEN ... ENDIF

条件演算子 = および CONTAINS に接頭部としてワード NOT を付けると、その条件を反転することができます。

事前定義キーワード は、システム構成時に単一の値に解決されるキーワードでなければなりません。 最初の条件の中の文字ストリングはヌルでもかまいません。文字ストリングは、2 行以上にスパンすることはできません。

以下の例は、IF ステートメントの使用法を示しています。
IF NJEDomain = '' THEN
   A '@' AnyNJEHostName => A '%' AnyNJEHostName '@' TCPHostName;
ELSE
   A '@' NJEHostName '.' NJEDomain    => A '@' TCPHostName;
   A '@' NJEHostName '.' AltNJEDomain => A '@' TCPHostName;
   IF NJEDomain CONTAINS '.' THEN
      A '@' AnyNJEHostName                   =>
         A '@' AnyNJEHostName '.' NJEDomain;
      A '@' AnyNJEHostName '.' NJEDomain    =>
         A '@' AnyNJEHostName '.' NJEDomain;
      A '@' AnyNJEHostName '.' AltNJEDomain =>
         A '@' AnyNJEHostName '.' NJEDomain;
   ELSE
      A '@' AnyNJEHostName                   =>
         A '%' AnyNJEHostName '.' NJEDomain '@' TCPHostName;
      A '@' AnyNJEHostName '.' NJEDomain    =>
         A '%' AnyNJEHostName '.' NJEDomain '@' TCPHostName;
      A '@' AnyNJEHostName '.' AltNJEDomain =>
         A '%' AnyNJEHostName '.' NJEDomain '@' TCPHostName;
   ENDIF
ENDIF