自サーバをメールボックスについて、imap4 対応としたので、今まで行っていなかった Maildir の Quota 制限をかけることにした。
maildirsize というファイルを出力・参照することにより、Postfix と Dovecot で Quota を実現できるみたいだったので、この方法を試してみた。
前提としては、Debian GNU/Linux 6.0 かつ、既に Virtual による Maildir 形式に対応する Postfix + Dovecot の設定が完了していることとする。
-
Postfix のソースをダウンロードする
# cd /usr/src
# apt-get source postfix※自動的に /usr/src 以下に Postfix のソースが展開される。
-
postfix に VDA パッチを当てる
「Postfix VDA」より、ダウンロードしてきた Postfix と同一バージョン用のパッチを /usr/src にダウンロードして、パッチを当てる。
# cd /usr/src/postfix-2.x.x
# patch -p1 < ../vda.patch -
パッケージを作成する
# dch -i
# debuild -us -uc -d上記を行うと、一つ上のディレクトリに deb パッケージが出来上がる。
-
インストールする
dpkg -i コマンドで出来上がったパッケージをインストール。
-
/etc/postfix/main.cf に下記を追加
virtual_mailbox_limit = 52428800
virtual_mailbox_limit_maps = hash:/etc/postfix/vquota
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = “over quota.”
virtual_overquota_bounce = yes
virtual_create_maildirsize = yes
virtual_maildir_extended = yes※上記はデフォルトで一律約 50MB の容量制限を設定する。
-
/etc/postfix/vquota ファイルを作成
example@example.com 20971520
@example.net 15728640上記は example@example.com には約 20MB 、example.net ドメインの全てのメールアドレスに対しては、約 15MB を上限と設定している。
これを反映するには、下記のコマンド入力が必要# cd /etc/postfix/
# postmap vquotaここで Postfix をリスタートしておく。
-
/etc/dovecot/dovecot.conf に下記を設定
protocol imap {
mail_plugins = quota imap_quota
mail_plugin_dir = /usr/lib/dovecot/modules/imap
}protocol pop3 {
mail_plugins = quota
mail_plugin_dir = /usr/lib/dovecot/modules/pop3
}plugin {
quota = maildir
}ここで Dovecot をリスタートしておく。
メールが届くと、各メールアドレスの Maildir 内に maildirsize ファイルが作成・更新される。また、メールを削除すると、maildirsize ファイルが更新される。
また、/etc/postfix/vquota ファイルを変更して postmap してやれば、次にメールが届いた際に、各メールアドレスの maildirsize ファイルの最大容量も更新された。
Dovecot 側の設定だが、「quota = maildir」の部分の指定が maildirsize を使う設定で、他に値を設定しない場合は、maildirsize の最大容量値が使用されるようだ。
※すなわち、メール容量の制限は /etc/postfix/vquota ファイルのみで行えばよいようだ。
・参考にさせていただいたサイト
Postfix+DovecotでQuotaを使う – satospo