MailArchivePluginでメールを残しつつパフォーマンスを上げる

MailArchivePluginでのメール取り込みはまだ試験的な感じなので、メールサーバ上からメールは削除しない設定としています。しかし、これだとメールの取り込みに段々時間がかかってしまうようになってしまいました。。。

また、メール取り込み中はDBにロックがかかってしまうようで、その間にWebからアクセスするとエラーとなる場合があります。何回かリロードを繰り返すとDBが壊れてしまう現象も発生。

これではやっていけないので、メールを取り込んだら削除する設定にすることに。そのために、一度POPサーバから取り込んだらローカルマシン上のPOPサーバに転送し、MailArchivePluginはローカルのPOPサーバから取得するようにしました。こうすれば、大元のPOPサーバのメールは残したまま運用できるので。。。

Linuxなので、fetchmail -> postfix -> dovecot でやることに。fetchmailからprocmailで振り分けは今回はとりあえずなし。全メール取り込めばOKなので。

とか参考にすれば設定は簡単なのでが、ちゃんと読まずに設定してしまってはまったことがあるのでメモっておきます(まあ自分がLinuxに疎いだけなのですが)。

  • /etc/postfix/main.cfにhome_mailbox = Maildir/を設定していなかったため、メールが全部デフォルトの場所、/var/spool/mail/ユーザ名 のファイルに書き込まれるはめに。
  • その後設定を修正し、再度fetchmailを実行しても、もう既読済みなため受信してくれない。。。
  • どうやら、fetchmailは一度受信したメールは再読み込みしてくれないらしい
  • これを強制的に読み込むためには、fetchmail --fetchall と実行すれば全部読み直してくれるとのこと