2019/05/18

procmail: Unable to treat as directory "LAN/tpe530c"

日常的なメール送受信はFreeBSDで行っています。メール受信はfetchmailでプロバイダのメールボックスから取得し、procmailで夫々のフォルダに振り分けています。振り分けルールは~/.procmailrcに記述されていますが、諸々の理由により振り分けられずにinboxに落ちることがあります。その場合には、今後は振り分けられるようにするため、随時.procmailrcを更新しておくようにしています。

先日.procmailrcを書き換えたところ、誤操作で重要な設定を書き換えてしまいました。すぐに気づけば良かったのですが、気付かずにメール受信をおこなってしまいました。すると以下のようなエラーが大量にログに残り、本来振り分けられて置かれるはずのフォルダには一切メールが送られませんでした。
procmail: Unable to treat as directory "LAN/tpe530c"
procmail: Error while writing to "LAN/tpe530c"
procmail: Lock failure on "inbox/..lock"
From root@tpe530c.myhome.jp.invalid  Sat May 18 00:22:06 2019
 Subject: tpe530c.myhome.jp.invalid security updates
  Folder: inbox/1                               1217
届いている筈のメールが一切にないことで、何か問題が起きたことを認識したのですが、当初は何が起きたのか理解できませんでした。ログでは、本来置くべきディレクトリに書けないのでinboxに書き出した、というように読めます。それでinboxを確認したのですが、何も書かれていないようでした。実はこれが勘違いだったのですが、受信したメールを失ってしまったと誤解して、ショックを受けました。

落ち着いて.procmailrcの変更点を再確認しました。このような事態を予想していたわけではないのですが、CVS管理をおこなっていたため、差分(変更点)の確認が容易でした。そうすると行頭にある「MAILDIR  = $HOME/Mail」という設定を「TAILDIR」と書き換えてしまっていたことに気付きました。それが原因だとわかったので、書き直して復旧できました。

混乱したinboxは、~/Mail/inbox~/inboxの取り違えだったのでしょう。

ホームディレクトリにあるファイルをCVS管理していますが、余計な手間をかけているだけではないかと思わなくもなかったのですが、こういう時に役立つとは思っていませんでした。このような仕掛けをしておくと、思わぬ時に役立つこともあると再認識しました。

0 件のコメント:

コメントを投稿