PostfixAdminで使用容量(quota)表示機能を利用する(POP対応)


2016年7月20日

最近は調べても情報がないことが多く、自作して対応することがあります。

動作環境
OS:ubuntu-14.04
MDA:dovecot-2.2.9
PostfixAdmin:postfixadmin-2.9.3

PostfixAdminの使用容量(quota)表示機能がPOPで利用できない

PostfixAdminのMaildirの使用容量表示機能ですが、公式に書いてある通りにdovecotで機能を実装してもPOPではうまく機能しませんでした。
quota2のテーブルを利用しているですが、メールを受信した場合にデータの更新がされずPostfixAdmin容量制限の値が更新されません。
POPで外部からメールを取得すると、データの更新が更新されるため容量制限の値がマイナスになってしまっていました。
dovecotでメールの受信時にデータを更新する方法がわからなかったため、Maildirの設定されているディレクトリの受信メールのあるディレクトリを解析しに行き、quota2のテーブルを更新する機能を自作しました。

設定1:dovecotの設定(quota利用)

・/etc/dovecot/dovecot.confに下記の記述を追記
・/etc/dovecot/dovecot-dict-quota.confを作成
・/etc/dovecot/conf.d/10-mail.confに下記の記述を追記
・/etc/dovecot/conf.d/20-imap.confに下記の記述を追記
・/etc/dovecot/conf.d/20-pop3.confに下記の記述を追記
・/etc/dovecot/conf.d/90-quota.confに下記の記述を追記

設定2:PostfixAdminの設定(quota利用)

・config.inc.phpで下記の値へ変更

設定3:quota2のテーブルを更新ファイル作成(シェルスクリプト作成)

・update_quota2.shを作成

あとがき

設定3で作成したファイルをcron等で定期的に実行すると、正しいデータ容量がPostfixAdminで確認可能です。(MailDirの設定ディレクトリへ権限のあるユーザーで実行してください)
上記設定3の方法以外にも各メールアドレスのmaildirsizeというファイルを解析しても容量の取得が可能ですが、
データが一致しない場合があったので設定3の方法を使用しています。
強引な方法なので公式に別の方法があれば知りたいです。