< 質 問 >
Xmailのリストプロセッサ(XmailCFG)

 windows2000の技術相談室に書かせて貰ったのですが、Xmailだけで、カテゴリーがあったので、こちらにも書かせて頂きます。

 XmailServerでメールサーバーを立ち上げています。尚、学内ネットワーク内なので、本来は外部からアクセスできないところを、メールのポートだけ空けて貰っています。

 規模としては、20人程度のMLが3つあるだけなので、特に問題はありません。しかし、ML登録をリストプロセッサによって自動化したいのですが、できません。

 XmailCFGを使い、リストプロセッサ用のアカウントを用意し、リストの設定も行ったのですが、上手く登録されません。リストプロセッサ用のアカウントに、登録希望のメールは正しく受信されているので、フロントエンド側の問題だと思うのですが。
 リストプロセッサを動作させるためには、以下の動作環境だとAN HTTPを動作させていないといけないのでしょうか?

 環境は、Win2000pro SP2
http server: AN httpd 1.33g
perl       : Active perl5.6.1.626
XmailServer: 0.74
XmailCFG   : 1.33a

manabo (07.03/01)


【 SL管理人 (07.04/01) 】

manabo さん、ようこそ。
しかし、エチケット違反です。
SL では複数の場所に同じ書き込みをするのはご遠慮ください。

SL管理人



【 manabo (07.04/01) 】

 申し訳ありません。
 複数の場所に書いてしまった上に、二重投稿になっていしまったいたのではないでしょうか?
 以後、このようなことのないように注意したいと思います。

 申し訳ありませんでした。



【 cop (07.04/01) 】

manabo さん

XMailCFG の cgi フォルダにある listrobot.pl の

$cdir = 'XXXXX';
$mailroot = 'XXXXX';

という部分(2、3行目)を確認してください。
XXXXX の内容は正しいですか?



【 manabo (07.04/01) 】

>copさん
 
ありがとうございます。確認しました。
結果、問題ないようです。

$cdirには、XmailCFGのディレクトリが、
$mailrootには、Xmailのディレクトリが 設定されていました。

これで問題ないんですよね?



【 cop (07.04/01) 】

>これで問題ないんですよね?

問題ないですね。
それでは、XMail Server の mailroot\filters にある(はずの)フィルタを確認してください。フィルタはリストプロセッサのメールアドレスに拡張子 .tab をつけたファイル名になっています。

内容は以下のようになっていますか。

"perl"    "XXXXX\listrobot.pl"    "@@FILE"

XXXXX は listrobot.pl までのパスです。
また、Perl への PATH は通っていますよね。

#HTTP サーバに何を使うかということやそれが起動中かどうかということとリストプロセッサの動作とは直接の関係はありません。



【 cop (07.04/01) 】

参考情報です。
XMail Server がフィルタを実行するときの動作の概要です。

1. メッセージが到着すると XMail Server はあて先アドレスに対応するフィルタが存在するかどうかを mailroot\filters で調べる。

2. フィルタが存在すると、XMail Server はそこに定義してあるコマンドを実行する。

3. フィルタが実行される。

4. フィルタの処理が終了すると、XMail Server はフィルタの返り値に従ってメッセージをメールボックスに入れるか受信拒否を送信者に通知する。

-----
3. の部分で XMailCFG のリストプロセッサが以下のように動作します。

1. 到着メッセージの中身をスキャンし、既定のコマンドが存在するかどうかを調べる。

2. 既定のコマンドがある場合、それを実行するべきかどうかを調査する(たとえば重複登録でないか)。コマンドが見つからない場合は返り値として 99 をセットして処理を終了。これによりメッセージは XMail Server により廃棄されます。

3. 登録/削除の対象のメーリングリストが自動処理を許可されているかどうか調べる。これは、XMailCFG 1.33 以降では、XMail Server のユーザフォルダ内の user.def ファイル中に

 "Robot"  "R" あるいは
 "Robot"  "RW"

というエントリがあるかどうかを見ます。
このエントリは XMailCFG の「リストの管理」でセットされます。
ただし、このエントリがなくても、リストプロセッサに対するコマンドに管理者の情報があれば登録/削除は実行されます。

4. 自動処理が許可されているリストあるいは管理者からのコマンドであれば、その他の条件(定員など)に合えば登録/削除を実行します。



【 manabo (07.04/01) 】

>copさん
 
ありがとうございます。確認しました。
結果、問題ないようです。

$cdirには、XmailCFGのディレクトリが、
$mailrootには、Xmailのディレクトリが 設定されていました。

これで問題ないんですよね?



【 manabo (07.04/01) 】

↑ほかっておいたて、更新したところ2重投稿になってしまいました。すいません。

 copさんありがとうございます。
 mailroot\filtersのパスは間違いなく設定されていました。
 perlのパスですが、XmailCFGは問題なく動いていますし、DOSプロントでpathと入力しても正しく設定されていました。
 user.defにrobotの項目がなかったので追加しました。しかし、反応しないようです。

 ひょっとして、学内にあるためにあるために、ヘッダがおかしくなってるんでしょうか?これが原因で自動登録できないとか? そういうことはないですよね。



【 cop (07.04/01) 】

user.def 中

"Robot"  "RW"

の Robot は大文字と小文字を区別します。
また、区切りはスペースではなくタブですが、
まちがいありませんか?



【 manabo (07.04/01) 】

user.def中

大文字、小文字区別しました。
区切りはタブですが、動作していません。



【 cop (07.04/01) 】

user.def と書いたのは user.tab のまちがいです。どうも失礼しました。

user.tab に自動登録を許可する指令が書き込まれないのが不思議ですね。ver 1.33 の改版履歴にある注意は見ましたか?



【 manabo (07.04/01) 】

 userdef.tabを見ていたと思います。
 user.tabを確認してみます。
 重要な更新のところもみましたが、XmailCFGは、一昨日にDLしたものですし、昨日サーバーを設定したばかりで、アップデートしたわけじゃないので、特に意識することはなかったと思いますが。

 明日の昼までサーバを触れないので、申し訳ないですが、動くのが遅くなります。ご理解お願いします。



【 cop (07.05/01) 】

user.tab はあっちこっちにあるので分かりにくいかもしれません。

X:\xxx\xmail\mailroot\domains\yyyy\zzzz\user.tab

のようなパスになります。
yyyy がドメイン名で zzzz がリストプロセッサのユーザ名です。



【 manabo (07.05/01) 】

user.tab すべて確認しました。
問題なく、"Robot"  "RW"が記述されていました。



【 manabo (07.05/01) 】

 学内ネットワークから出しても、やはり登録されませんでした。(結果の返事もないです)
 コマンドの書き間違えとか、そういう単純なものでしょうか?



【 cop (07.05/01) 】

manabo さん
チェックするべきはリストプロセッサの user.tab ではなく、自動登録を許可したメーリングリストの user.tab でしたね。失礼しました。

user.tab は問題がないので、あとは、(1) リストプロセッサがうまく動作していないか、(2) 処理対象メッセージとみなされていない可能性があります。

(1) については、私の方のいくつかの環境ではとくに問題がありません。もし動かないとすれば、

a) listrobot.pl の $cdir と $mailroot の内容が正しくない。
b) 該当メーリングリストのフォルダまたはその内部の mlusers.tab が書込み禁止になっている。
c) Perl へのパスが通っていない。

などが原因として考えられますが、a) と c) は問題がないですよね。

(2) につていは、以下の場合にはリストプロセッサは何もしません。

a) Subscribe コマンドが見つからない。
b) Subscribe コマンドのあとに対象リストが指定されていない。
c) 対象リストが存在しない。
d) 送信者アドレス(From:)がない。
e) すでに登録済み。

このうち、b) はよく聞く間違いですが、どうでしょうか。



【 manabo (07.05/01) 】

 copさん、アドバイスありがとうございます。

 ファイルやフォルダの書き込み禁止はなく、コマンドの記述についても問題はないはずなのですが、動作してくれません。
 意図的に、リストが存在していないものを記述したところ、エラーのメールが帰ってきてくれたのですが。
 存在するリストを記述すると、何も対処してくれません。反応のメールも来ません。

 なんと、火曜日までサーバを触れない事態になってしまいました。(設置部屋に入れないもので)
こういう状況から抜けたいけど、学校なんで仕方ないです。



【 taku (08.02/01) 】

こんにちは。初めて投稿いたします。
先日、XMail,XmailCFGをダウンロードし、設定は完了したのですが、リストプロセッサのみがうまく動作いたしません。
私の場合は、manaboさんとは逆で、Subscribeのあとに登録済みのリスト名を入力すると、

<Failure Reason>
Message rejected by server filters
</Failure Reason>

が含まれたエラーメッセージが返信されてくるのですが、
意図的に登録していないリスト名を入力すると、何もメッセージが帰ってこない状況です。これまでのcopさんとmanaboさんのやり取りを参考に自分の設定を確認してみましたが、特に設定ミスはありませんでした。
なにとぞ、ご教示のほどをお願いいたします。



【 cop (08.02/01) 】

taku さん

もしかすると、登録先リスト名にハイフン(-)が含まれていませんか?

スクリプトを見直したところ、名前にハイフンが含まれるリストでは登録に失敗することが分かりました。

XMailCFG の cgi フォルダにある listrobot.pl の 12 行目に

$str1 = 'a-z0-9.-_';

という部分があるので、これを

$str1 = 'a-z0-9.\-_';

にすれば、とりあえずこの問題は解消します。



【 taku (08.02/01) 】

copさん、早速のお返事ありがとうございます。
そうです!ハイフンが入っていました。
早速試してみます。



【 manabo (08.09/01) 】

リストには_がありましたが、



【 manabo (08.09/01) 】

 リストには_がありましたが、-が入っているという状況はありませんでしたし、cellerというリストでも、自動入会/退会ができなかったので、別の原因があると、自分のケースではあると思っています。
 原因不明のまま、fmlを併用することにしました。
 XmailCFGのML機能で十分なのですが、実績等を考慮すると、fmlの併用は安心できます。


記事の先頭へ▲ 
SUPER LABORATORY