記事の最後へ▼ 
< 質 問 >
SMTP filter error (-121)

初めまして
メーリングリストの運用やWebmail機能などに魅力を感じ
XMailServerの利用を始めてみました。
運用開始して1月程経ちますが、メール送受信、メーリングリスト運用
Webmailなど、特別トラブルもなく、快適に運用出来ています。

ただ、1つ気づいたのですが、イベントビューワより、アプリケーションの
イベントログを確認したところ、以下のようなエラーがログが吐かれておりました。
メールの送受信をするタイミングで吐かれているようです。
これは何がいけないのでしょうか?
どこか設定などで見落としているところがあるのでしょうか?

お気づきの点などありましたら、情報をいただけると助かります。

よろしくお願い致します。

■環境
OS:Windows Sever 2003
IIS:6.0
Perl:5.8.6
XMail:1.22
XMailCFG:2.22a

■イベントログのエラー情報
イベントの種類:    エラー
イベント ソース:    XMail
イベント カテゴリ:    なし
イベント ID:    0
日付:        2006/07/01
時刻:        14:39:44
ユーザー:        N/A
コンピュータ:    NS
説明:
イベント ID (0) (ソース XMail 内) に関する説明が見つかりませんでした。
リモート コンピュータからメッセージを表示するために
必要なレジストリ情報またはメッセージ DLL ファイルが
ローカル コンピュータにない可能性があります。
この説明を取得するために /AUXSOURCE= フラグを使用することができる可能性が
あります。詳細については、ヘルプとサポートを参照してください。
次の情報はイベントの一部です:
SMTP filter error (-121): Filter = "C:\Perl\bin\perlis.dll"

シーサー (07.01/06)


【 Dr.Ballon (07.05/06) 】

シーサーさん、

 XMailCFGでは「perlis.dll」は事実上使えません。
 XMailCFGは「perl.exe」での使用を前提に開発されたものであり、「perlis.dll」では表示やフィルタ動作の際にエラーが出たりします。

 XMailCFGの「README」またはxmailserver.jpの「Documentation」で、「IIS 5.1(Windows XP Professional 付属)の場合」をご覧の上、『C:\Perl\bin\perlis.dll』となっているところを『C:\Perl\bin\perl.exe "%s" %s』に変更してください。

 そうすれば、エラーは消えると思いますよ。
 是非お試しあれ。


【 シーサー (07.06/06) 】

ご連絡ありがとうございます。

初めてサーバにXMailをインストール後、XMailCFGをインストールしてCGIを起動させた時、CGIエラーだったでしょうか?で画面が表示出来なかったんです。

ご指摘のページ
http://www.xmailserver.jp/sample/xmailcfg/help/iis51.html
こちらでしょうか?

確か、、、そのCGIエラーは、
*.cgiを、C:\Perl\bin\perlis.dllにマッピングされていることに原因があったようで、ご指摘の通り、*.cgiを、C:\Perl\bin\perl.exe "%s" %s
にマッピングし直したんです。

※この辺りの指摘も参考になりました。
http://sl.hunet.jp/cgi/_tech/bak21/800.htm

そしたら、CGIエラーも解消されて、メールの送受信等も問題なくできるようになったです。

その後、K4もインストールし、K4のCGI群もXMailCFGと同じように
C:\Perl\bin\perl.exe "%s" %s にマッピングさせて、Webmailとしても利用可能な環境が整ったのです。

それでしばらく運用していて、ある時、イベントログを見たら
SMTP filter error (-121): Filter = "C:\Perl\bin\perlis.dll"
というエラーが頻発していることに気づいたのです。

すみませんちょっと説明が足りなかったかもしれません。

*.cgiとのマッピングなら、正しくC:\Perl\bin\perl.exe "%s" %s に向けてあると思います。

にも関わらず、
SMTP filter error (-121): Filter = "C:\Perl\bin\perlis.dll"
というエラーがメール送信の度に吐かれ続けます。

*.cgiとのマッピング以外のところで、C:\Perl\bin\perlis.dllが呼ばれているところが他にあるのでしょうか?

環境設定や、フィルタ管理、セキュリティなどの項目を見るのですが、それらしき部分を見つけることができません。

レジストリ辺りかと検索してみるのですが、それらしいところも無くどうすればいいのかと困っているという状況です。

なお、Windows Sever 2003に付属の、
Simple Mail Transfer Protocol (SMTP)
Microsoft POP3 Service
は、サービスを「停止」し、スタートアップの種類は「無効」にしています。

何か他に判ること、試してみることなど、ご存じでしたらご指摘いただければ幸いです。


【 たまパパ♪ (07.11/06) 】

見当違いかもしれませんが
cgiのみ変更しているのではないですか?
*.plなども変更してみてください。


【 しーさー (07.17/06) 】

ちょっと間があいてしまいました。

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

確認してみましたが、
*.pl についても、C:\Perl\bin\perl.exe "%s" %s に向いてました。

ちなみに、*.plxが、C:\Perl\bin\perlis.dll
にマッピングされていたので、*.cgiや、*.plと同じように、C:\Perl\bin\perl.exe "%s" %s にマッピングしましが、やはり結果は同じく、必ず、smtp filter error となります。

うーん、それ以外に考えられることありますか。。。

サービス自体は問題なく動いているのですが
ちょっと行き詰まった感じがしています。


【 Time (11.01/06) 】

遅レスですが・・・

私も同環境で同じ症状が出ています。
運用上は全く問題なく稼働しているのですが、フィルタ処理のログ1(Xmail)を見るとこちらにもしっかりとエラーが残っています。
実行コマンドはC:\usr\local\bin\perlis.dllとなっています。

ちなみに、しーさーさんはフィルタ管理のSMTP DATA 前処理および後処理の起動コマンドはperlis.dllでしょうか、perl.exeでしょうか?
私はIISのマッピングは上記で指摘されているように問題なく設定されていますが、なぜか
perlis.dllがSMTP DATA 前処理および後処理の起動コマンドとなっています。直接TABファイルか何かをいじれば良さそうなのですが、現在わからない状態です。

なにかヒント等お持ちの方おりましたらご教示よろしくお願いします。


【 Time (11.01/06) 】

自己レスです

直接TABファイルを編集して改善されましたので報告します。

filters.post-data.tab
filters.pre-data.tab  
のperlis.dllの記述がある行をすっぱり削除したところ、エラーのログが出なくなりました。

このファイルはデフォルトでインストール時に作成されるもの?と思いますが、自分でperlis.dlに関する記述はしてないはずなのになぜか入っていました。

IISの設定で何らかの拍子で記述されてしまったのかもしれません。とりあえずコレで様子を見て見ます。

記事の先頭へ▲ 
SUPER LABORATORY