メールフィルタ設定をしたところ、受信したはずのメールがどこにも着信されず receivelog に"err=(183)"が記録されている
メールフィルタ設定をしたところ、受信したはずのメールがどこにも着信されておらず、receivelogを調べてみると、MoveFileEx()の部分で、"err=(183)"が記録されている場合、以下のとおり、メールフィルタ設定で正しい記述をしているか確認してください。
まず、メールフィルタの動きを指定する際、処理レベルとして"Level:5xx〜7xx"の設定をしているにもかかわらず、"Forward:"句を何も指定しない設定にしてないか確認してください。処理レベル"Level:5xx"、"Level:6xx"、"Level:7xx"の設定は、いずれも"Forward:"句の設定が必須です。"Forward:"句が必須である"Level:5xx〜7xx"の指定をしながら、"Forward:"句を書かないときには、Forward先を明示的に空欄指定する意味である"Forward:"と等価となり、結果的にどこにも転送されず受信したメールがそのまま廃棄される動きとなります。そのとき、receivelogには、MoveFileEx()の部分で"err=(183)"が記録されます。
(メールフィルタの処理レベル)
- Level:5xx …"Forward:"で指定したアドレスへ転送する
- Level:6xx …Subject:へ"Tag:"で指定した文字列の挿入を行い、"Forward:"で指定したアドレスへ転送する
- Level:7xx …ヘッダとして"Tag:"で指定した文字列の挿入を行い、"Forward:"で指定したアドレスへ転送する
("Level:6xx"の指定をしながら"Forward:"句が書かれていないメールフィルタ設定例)
'------------------------------------------------------
Virus:body_spam
Level:600
Body:
xxyyzz
BodyEnd:
Tag:[spam_phrase]
VirusEnd:
'------------------------------------------------------
上記例では、"Forward:"句が必須である"Level:600"の指定をしながら、"Forward:"句が書かれてないため、Forward先を明示的に空欄指定する意味である"Forward:"と等価となります。そして結果としてメールはどこにも転送されずメールサーバ内でそのまま廃棄されます。このとき、receivelogには、MoveFileEx()の部分で"err=(183)"が記録されます。
上記例であげた処理レベル"Level:6xx"の設定を生かしたいときには、"Forward:user@domain.jp"というように隔離先用のアドレスを必ず加えるようにしてください。あるいは、「Subject:へ"Tag:"で指定した文字列の挿入を行い通過させる」だけでよいときには、処理レベル"Level:3xx"に設定変更してもよいでしょう。
(関連FAQ)
●メールフィルタ設定で拒絶のエラー応答を返さないで受信メールを廃棄するには
●メールフィルタ(mail.dat)の設定事例