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

文字セットの変換

プローブを行い、メッセージフォーマットを変換する必要があると判断した場合、MTA はメッセージにおける各部分のチェックを開始します。テキスト部分はすべて検出され、その文字セットのパラメータは 2 回目のプローブに使用されます。ただし、変換が必要であると判断されるまで 2 回目のプローブは行われません。2 回目のプローブを行うための入力文字列は次のとおりです。

IN-CHAN=in-channel;OUT-CHAN=out-channel;IN-CHARSET=in-char-set

in-channelout-channel の部分は前述の例と同じです。in-char-set は該当する部分の文字セット名を示します。この 2 回目のプローブで一致するものがない場合、文字セットの変換は行われません (ただし、フォーマットの変換、たとえば MIME 構造への変換などは、最初のプローブで一致したキーワードに基づいて行われる)。一致するものが見つかった場合は、次の文字列が返されます。

OUT-CHARSET=out-char-set

この場合、in-char-setout-char-set が示す文字セットに変換されます。これらの文字セットは、MTA テーブルディレクトリに含まれる文字セット定義テーブル charsets.txt 内で定義されているものでなくてはなりません。文字セットがこのファイル内で適切に定義されていないと、変換は行われません。しかし、このファイルの中には現在もっとも利用度の高い数百種の文字セットが定義されているため、特に心配する必要はないでしょう。charsets.txt ファイルの詳細については、imsimta chbuild (UNIX および NT) ユーティリティーの説明を参照してください。

すべての条件が満たされると、MTA は文字セットマッピングを作成し、変換を実行します。変換されたメッセージ部分のラベルは、変換後の文字セット名に変更されます。

文字セット変換マッピングの機能は拡張されて、次に示す機能が新しく追加されました。


例 13–2 ISO-8859-1 から UTF-8 への変換およびその逆の変換

ローカルで使用している ISO-8859-1 を、インターネットで使用するために UTF-8 に変換する必要があるとします。さらに、インターネットへの接続は tcp_local を通して行われ、内部メッセージの発信と配信は tcp_internalims-ms で行われるとします。次に示す CHARSET-CONVERSION テーブルは、このような変換を実現します。各 IN-CHAN エントリは、それぞれを単一の行にする必要があります。円記号 (\) はこれを示すために使用されています。


CHARSET-CONVERSION

 IN-CHAN=tcp_internal;OUT-CHAN=tcp_local;CONVERT               Yes
 IN-CHAN=tcp_local;OUT-CHAN=tcp_internal;CONVERT               Yes
 IN-CHAN=tcp_local;OUT-CHAN=ims-ms;CONVERT                     Yes
 IN-CHAN=*;OUT-CHAN=*;CONVERT                                  No
 IN-CHAN=tcp_internal;OUT-CHAN=tcp_local;IN-CHARSET=ISO-8859-1 OUT-CHARSET=UTF-8
 IN-CHAN=tcp_local;OUT-CHAN=tcp_internal;IN-CHARSET=UTF-8 OUT-CHARSET=ISO-8859-1
 IN-CHAN=tcp_local;OUT-CHAN=ims-ms;IN-CHARSET=UTF-8       OUT-CHARSET=ISO-8859-1


例 13–3 EUC-JP から ISO-2022-JP への変換およびその逆の変換

次に示す CHARSET-CONVERSION テーブルは、ローカルで使用している EUC-JP と ISO 2022 ベースの JP コードとの変換を指定しています。


CHARSET-CONVERSION

  IN-CHAN=ims-ms;OUT-CHAN=ims-ms;CONVERT                  No
  IN-CHAN=tcp_internal;OUT-CHAN=ims-ms;CONVERT            No
  IN-CHAN=tcp_internal;OUT-CHAN=tcp_internal;CONVERT      No
  IN-CHAN=tcp_internal;OUT-CHAN=*;CONVERT                 Yes
  IN-CHAN=*;OUT-CHAN=ims-ms;CONVERT                       Yes
  IN-CHAN=*;OUT-CHAN=tcp_internal;CONVERT                 Yes
  IN-CHAN=tcp_internal;OUT-CHAN=*;IN-CHARSET=EUC-JP      OUT-CHARSET=ISO-2022-JP
  IN-CHAN=*;OUT-CHAN=ims-ms;IN-CHARSET=ISO-2022-JP        OUT-CHARSET=EUC-JP
  IN-CHAN=*;OUT-CHAN=tcp_internal;IN-CHARSET=ISO-2022-JP  OUT-CHARSET=EUC-JP