Sun Java System Messaging Server 6 2005Q4 管理ガイド

サイト定義のアドレス妥当性チェックと変換

サイトで妥当性チェックを実行したり、受取人の電子メールアドレスでエンコードされた SMS 宛先アドレスを変換する必要がある場合もあります (「電子メールをチャネルに送信する」を参照)。たとえば、サイトで実行する処理には以下のようなものがあります。

上記の最初の2 つのタスクは、「DESTINATION_ADDRESS_NUMERIC」および 「DESTINATION_ADDRESS_PREFIX」チャネルオプションを使用して実行できます。一般的に、上記の 3 つのタスクおよびその他のタスクは、マッピングテーブルを使用して実装できます。書き換えルールからマッピングテーブルを呼び出す方法、または FORWARD マッピングテーブルによる方法のどちらかを使用します。書き換えルールからマッピングテーブル呼び出す方法を使用した場合は、柔軟性がもっとも高く、サイト定義のエラー応答が付いたアドレスを拒否することもできます。この節の以下の部分では、このようなアプローチ、つまり書き換えルールからマッピングテーブルを呼び出す方法を使用する場合について説明します。

宛先アドレスは数字のみで、10 または 11 桁の長さを持ち、文字列「+1」が先頭に付いている必要があると仮定します。これは、次の書き換えルールを使用して実現できます。

sms.siroe.com      ${X-REWRITE-SMS-ADDRESS,$U}@sms.siroe.com
sms.siroe.com       $?Invalid SMS address

上記の最初の書き換えルールは、X-REWRITE-SMS-ADDRESS という名前のサイト定義のマッピングテーブルを呼び出しています。このマッピングテーブルは、検査のために電子メールアドレスのローカル部分に渡されます。マッピングプロセスで、そのローカル部分が受け入れ可能と判断された場合は、アドレスは受け入れられ、SMS チャネルに書き換えられます。マッピングプロセスで、そのローカル部分が受け入れ不可と判断された場合は、次の書き換えルールが適用されます。次の書き換えルールは「$?」書き換えルールであるので、アドレスは拒否され、「Invalid SMS address」というエラーテキストが表示されます。

以下に X-REWRITE-SMS-ADDRESS マッピングテーブルを示します。このマッピングテーブルによって、属性と値のペアのリスト形式または SMS 宛先アドレスの行のどちらかであるローカル部分に対して必要な検証ステップが実行されます。

X-VALIDATE-SMS-ADDRESS

! 数値以外の文字を取り除く
 $_*$[$ -/:-~]%* $0$2$R
! アドレス形式が 1nnnnnnnnnn または nnnnnnnnnn の場合は受け入れる
! 受け入れる場合、出力は +1nnnnnnnnnn であることを確認する    1%%%%%%%%%%      +1$0$1$2$3$4$5$6$7$8$9$Y
   %%%%%%%%%%       +1$0$1$2$3$4$5$6$7$8$9$Y
! このアドレスは受け入れられなかったため、無効となる
   *                $N

X-REWRITE-SMS-ADDRESS
    */id=$_*/*       $C$0/id=$|X-VALIDATE-SMS-ADDRESS;$1|/$2$Y$E
    */id=$_*/*       $N
    *                $C$|X-VALIDATE-SMS-ADDRESS;$0|$Y$E
    *                $N

上記の設定の場合、「DESTINATION_ADDRESS_NUMERIC」オプションの値は必ず 0 (デフォルト) にしてください。それ以外の値では、SMS 宛先アドレスから「+」が取り除かれます。