HowTos/自動アクションとルール

出典: ScalixWikiJP

Scalix Wiki -> How-Tos -> HowTos/自動アクションとルール

このセクションは HowTos/Auto_Actions(米国サイト)をもとに作成しています。


自動アクション(Auto Actions)は、自動応答・転送・振り分けなどのサーバ側でのルールを提供する機能です。 ユーザ毎に設定することができ、ユーザが受信する新しいメッセージに適用されます。


目次

自動アクションの設定

自動アクションは様々な方法で設定することができます。自動アクションの設定で通常使用されるのは次の方法です。

  • Outlook の Out Of Office アシスタント
  • Outlook の Scalix Rules Wizard
  • Webベースのルールウィザード
  • sxaa ツール (sxaaは11.1以前ではAdmin Resource Kitとして提供されている)

場合によっては、それらは暗黙のうちに設定されることがあります。

  • Outlook ユーザに予定表のアイテムの転送を含む代理人アクセスを設定したとき。


サーバでの自動アクションの実装

3d ファイル

Scalixではユーザ毎に多数の自動アクションを設定することができます。 メッセージの自動応答や自動転送などの機能を利用しています。 ユーザは、ほとんどのScalixクライアントからこれらを設定することができます。 Scalixから提供されていて、クライアントからは直接にはアクセスできない自動アクションもあります(自動印刷、自動ファイル、自動通知...)。

ユーザに自動アクションが設定されると、ユーザの "ホーム" ディレクトリにファイルが作成され、自動アクションがどのように処理するか(自動応答または自動転送、自動印刷など)を指定します。これらの自動アクションファイル - 3dファイル は、いわゆるユーザの "g" ディレクトリに配置されます。

3d ファイルは、トランザクションファイル形式になっています。これは、Scalixが指定するバイナリファイル形式です。バイナリ形式ですので、3d ファイルを直接編集することはできません。しかし、トランザクションファイル形式のファイルは Scalix が提供する tf.browse ツールを使ってテキストファイルへ変換、もしくはテキストファイルから変換するとができます。


ユーザの "g" ディレクトリ

ここにはメールボックスが指定している様々な情報が蓄積されています。あるユーザについて調べたい場合は、omshowu コマンドの -f オプションを指定します。例を示します。

[root@demo root]# omshowu -n sxadmin -f
Authentication ID: sxadmin
User Name : sxadmin /CN=sxadmin
MailNode : scalix,demo
Internet Address : sxadmin@demo.scalix.com
System Login : sxadmin
Password : set
Admin Capabilities : YES
Mailbox Admin Capabilities : NO
Language : C
Virtual Vault : Enabled (default)
Mail Account: Unlocked
Last Signon : Never.
Receipt of mail : ENABLED
Service level : 0
Excluded from Tidying : NO
User Folder : ~/user/g000035/00000v8:1
User Class : Full

User Folder 行をメモしてください。そのディレクトリにユーザフォルダが含まれています。このディレクトリは、ユーザのホーム - または "g" ディレクトリです。~ は Scalix インスタンスの Scalix メインデータディレクトリで、上記の例のユーザの場合ですと、 g ディレクトリは /var/opt/scalix/XX/s/user/g000035 となります。(XXはサーバ名により異なります)

"3d" ファイルは自動アクションを含んでおり、000003d と呼ばれこのディレクトリに配置されます。


3d ファイルの例

tf.browse コマンドの -i オプションを使って、ユーザの 3d トランザクションファイルを表示することができます。例を示します。

[root@demo g000035]# tf.browse -i 000003d
HEADER            (DN)  1  0  2  1002  0x0  0x0  0  0x0  0x0  0x0  0x0  0x0  ""
AA_NO             ()  0x0  500  0  0  0  0  "SXAA FORWARD:500"  ""  ""  ""  ""
AA_SIMPLE_FORWARD ()  0x0  0x1  1167  0  0  ""  "ISO8859_1"  ""  ""  ""  ""  "\
"  ""  ""  ""

これは、Scalix Admin Resource Kit から sxaa コマンドを使って作成された "forward" 自動アクションを示しています。

3d ファイルの要素

各トランザクションファイルはレコードから作成されます。上記の例ですと、1つの HEADER レコード( ファイルごとに1つ)、AA_NO レコード(自動アクションごとに1つ、1つの 3d ファイルには複数の自動アクションを含むことができます)、実際のアクションのレコード(この場合は、転送レコード)の3つのレコードが存在します。

  • HEADER レコード
HEADER (DN) 1 0 2 1002 0x0 0x0 0 0x0 0x0 0x0 0x0 0x0 "" 

これは全ての 3d ファイルで同じになります。3d ファイルをスクラッチから作成する場合、このレコードをコピー/ペーストしてください。これは複数フィールドで構成され、各フィールドは、ASCII コードのスペースで区切られています。最初と2番目のフィールドは、Scalix トランザクションファイル("1") とデフォルトバージョン("0")を意味します。最も重要なフィールドは3番目と4番目のフィールドです。3番目のフィールド("2")は "basic"情報を蓄積するために使用されるClass-2 トランザクションファイルであることを示します。4番目のフィールド ("1002") は、トランザクションファイルタイプで、1002 は自動アクションファイルであることを示します。残りのフィールドはClass-2トランザクションファイルでは意味がないので、 空/デフォルト値が設定されています。 自動アクションは、Class-2 トランザクションファイルですが、Class-0 と Class-1 トランザクションファイルはシステムを通してメッセージを転送するために実際に使用されています。

  • AA_NO レコード
AA_NO () 0x0 500 0 0 0 0 "SXAA FORWARD:500" "" "" "" ""

これは、1つの自動アクションのヘッダです。これもまた、複数のフィールドから構成されています。"0" や "" の値は、空のフィールドとデフォルト値を意味します。最初のフィールド("0x0")は自動アクションが有効であることを意味します。ここが "0x1" と設定されている場合、設定は無効であることを意味します。2番目のフィールド("500")は、自動アクションシーケンス番号を示します。各アクションはファイルの中でユニークな番号を持ちます。自動アクションを生成するいくつかのメソッド(Outlook Out Of Officeアシスタントなど)では常に同じ番号を使用しているので、自動アクションがそれらで作成されたことを識別することができます。7番目のフィールド("SXAA FORWARD:500") は、自動アクション(この場合はsxaaコマンド)が記述したコメントです。

メモ:この自動アクションを作成するコマンドは次の通りです。

sxaa --user sxadmin --forward demo@scalix.com
  • AA_SIMPLE_FORWARD レコード
AA_SIMPLE_FORWARD () 0x0 0x1 1167 0 0 "" "ISO8859_1" ""  "" "" "" "" "" "" ""

このファイルは転送のアクションを示しています。しかし、転送先のアドレス (demo@scalix.com) が記述されていません。転送先のアドレスはユーザの g ディレクトリにある他のファイルに記述されています。そのファイル名は、000003e.XXX という名前で、XXX はアクションのシーケンス番号です。この場合ですと、AA_NO ファイルの2番目のフィールドの 500 になります。

[root@demo g000035]# tf.browse -i 000003e.500
HEADER            (DN)  1  0  2  1000  0x0  0x0  0  0x0  0x0  0x0  0x0  0x0  ""
DL_COUNTS         (DN)  0x0  1  0  1  0  0  0  0  0  0
TO       (0x1000 + DN)  70/1/1 00:00.00  0x0  "S=demo/OU1=internet/DDT1=RFC-822/\
DDV1=demo@scalix.com/CN=demo/INTERNET-ADDR=demo@scalix.com"  ""  ""  0x2  ""

このトランザクションファイルには3つのレコードがあります。HEADER レコードは、自動アクションファイルのヘッダと1箇所しか違いがありません。トランザクションファイルタイプが 1000(配布リスト) であるという点です。その他のレコードについては次の通りです。

  • DL_COUNTS レコード
DL_COUNTS (DN) 0x0 1 0 1 0 0 0 0 0 0

このレコードは、配布リストのトランザクションファイルには必須です。2番目のフィールド ("1") は、TF にある、受信者の合計人数です。4番目のフィールド ("1") は、"TO:" に設定された受取人の数です。5番目と6番目のフィールドは、"CC:" と "BCC:" に設定された受取人の数です。その他のフィールドはエラーの追跡に使用されます。

  • TO レコードは受取人の情報を含んでいます。最初の2つのフィールドは、この場合使用されておりません。

アクションのタイプ

AA_SIMPLE_FORWARD を例に説明しましたが、それ以外でも設定可能なアクションのタイプを示します。

AA_REDIRECT

AA_SIMPLE_FORWARD アクションタイプは、メッセージを他のメッセージの添付ファイルとして転送します。したがって、転送されたメッセージは、メールボックスの所有者から送信されたように見えます。一方、AA_REDIRECT は、元々の送信者と受信者の情報を保持しながら、他の受信者にメッセージをリダイレクトに送信します。AA_REDIRECT レコードは次のようになっています。

AA_REDIRECT () 0x0 0x0 0 "S=demo/OU1=internet/DDT1=RFC-822/DDV1=demo@scalix.com/\CN=blah/INTERNET-ADDR=demo@scalix.com"

注:リダイレクトは1人の受信者にのみ送信されます。

AA_SIMPLE_REPLY

AA_SIMPLE_REPLY アクションタイプは送信者にリプライを送信します。レコードのサンプルは次の通りです。

AA_SIMPLE_REPLY () 0x0 0x8 1167 0 0 "" "ISO8859_1" "Auto-Reply: " "" "" "" ""

ここで、フラグの値 ("0x8") は、件名は、オリジナルのメッセージの件名に基づいたルールで与えられることを意味します。1167 は、リプライメッセージのファイルタイプを意味し、1167 は、プレーンテキストであることを意味します。その次のフィールドは、リプライメッセージのキャラクタセットを意味し、この場合は ISO8859_1 です(日本語環境の場合、通常 UTF-8 となっています)。その次のフィールドは件名です。自動リプライメッセージのテキストは別のファイルに保存されています。そのファイル名は、000003g.XXX であり、XXX の部分は、AAA_NO レコードのシーケンス番号です。

AA_FILE

AAA_FILE アクションタイプは、メッセージと特定のフォルダに移動させます。レコードのサンプルは次の通りです。

AA_FILE () 0x0 0x0 0 0 "Demo Folder" "" "" "" ""

このアクションは、メッセージを受信すると自動的にフォルダ Demo Folder に移動させます。もしそのフォルダがなければ、フォルダが作成されます。