Postfix + Dovecot で Quota 設定 (maildirsize ベース)

自サーバをメールボックスについて、imap4 対応としたので、今まで行っていなかった Maildir の Quota 制限をかけることにした。

maildirsize というファイルを出力・参照することにより、Postfix と Dovecot で Quota を実現できるみたいだったので、この方法を試してみた。

前提としては、Debian GNU/Linux 6.0 かつ、既に Virtual による Maildir 形式に対応する Postfix + Dovecot の設定が完了していることとする。

  1. Postfix のソースをダウンロードする

    # cd /usr/src
    # apt-get source postfix

    ※自動的に /usr/src 以下に Postfix のソースが展開される。

  2. postfix に VDA パッチを当てる

    Postfix VDA」より、ダウンロードしてきた Postfix と同一バージョン用のパッチを /usr/src にダウンロードして、パッチを当てる。

    # cd /usr/src/postfix-2.x.x
    # patch -p1 < ../vda.patch

  3. パッケージを作成する

    # dch -i
    # debuild -us -uc -d

    上記を行うと、一つ上のディレクトリに deb パッケージが出来上がる。

  4. インストールする

    dpkg -i コマンドで出来上がったパッケージをインストール。

  5. /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 の容量制限を設定する。

  6. /etc/postfix/vquota ファイルを作成

    example@example.com 20971520
    @example.net 15728640

    上記は example@example.com には約 20MB 、example.net ドメインの全てのメールアドレスに対しては、約 15MB を上限と設定している。
    これを反映するには、下記のコマンド入力が必要

    # cd /etc/postfix/
    # postmap vquota

    ここで Postfix をリスタートしておく。

  7. /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