メールの自動削除

IMAPサーバを運用していると、どんどん溜まっていくメールが問題となってくる。
Cyrus IMAPにおいて、quotaでメール制限をすることができるが、できれば制限はしたくない。
読んでいないメールを自動で削除することも可能みたいだが、まずは、ゴミ箱を期限付きで削除する運用を考えたい。

ipurgeは共有フォルダしか通常は削除できませんが、"-f"オプションをつけると、ユーザ領域のメールボックスも対象に出来ます。

コマンドラインで、全ユーザのゴミ箱で7日以上経過したメールを削除する場合は、

> sudo -u cyrus /usr/local/cyrus/bin/ipurge -d 7 -f -X 'user.*.Trash'

メールアカウントに"."を使っている場合で、imapd.confにて、
unixhierarchysep: yes
を設定した場合は、

> sudo -u cyrus /usr/local/cyrus/bin/ipurge -d 7 -f -X 'user/*/Trash'

これを実行すると以下のようなメッセージが表示される。

Working on user/foo/Trash...
total messages                   8
total bytes                      18230
Deleted messages                 2
Deleted bytes                    11284
Remaining messages               6
Remaining bytes                  6946

cyrus.confのEVENTS{}に対して、設定可能であるが、
'user/*/Trash'と書いても動かない。
crontabに設定して運用している。
もうちょっと調べてみよう...

ちなみに、ユーザ内のメールで30日以上経過したメールを毎日0時にまるごと削除する場合は、

EVENTS {
        cleanup cmd="ipurge -d 30 -f -X" at=0000
} 

とすればよい。

可能であれば、受信箱(INBOX)を削除指定して、削除されたくなければ、フォルダーに振り分けてもらう運用にしたいのだが、どう設定すればよいのかいろいろ考えたが難しいぞ。