メールボックスのクォータ設定について説明します。デフォルトでPostfixadminに組み込まれているクォータ設定機能は機能せず、設定が必要です。今回は、Ubuntu\DebianメールサーバーでDovecotサービスにクォータを設定します。この設定により、VPSサーバーのSSDディスク容量を超えないようにメールボックスの上限を設定できます。企業メールボックスには、大容量の添付ファイルやスパムが多く蓄積されることがあり、これによりディスク容量が大量に消費される可能性があります。
このガイドは、すでにメールサーバー自体が設定済みで、メールボックスのクォータを設定する必要がある場合を前提としています。メールサーバーの設定に関する詳細は、こちらをご覧ください:
また、事前設定されたオペレーティングシステムを備えたVPSを注文し、VPSサーバーの価格で企業向けメールサーバーを手に入れることもできます。
1. Dovecotサービスの設定
vi /etc/dovecot/conf.d/10-mail.conf
mail_plugins = $mail_plugins quota
ファイルを保存します。
vi /etc/dovecot/conf.d/20-imap.conf
protocol imap {
mail_plugins = $mail_plugins imap_quota
}
ファイルを保存します。
vi /etc/dovecot/conf.d/10-master.conf
service dict {
unix_listener dict { mode = 0660 user = vmail group = vmail } }
ファイルを保存します。
vi /etc/dovecot/conf.d/90-quota.conf
plugin {
quota = dict:User quota::proxy::quota
}
ファイルを保存します。
vi /etc/dovecot/dovecot.conf
dict {
quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
}
vi /etc/dovecot/dovecot-dict-sql.conf.ext
connect = host=localhost dbname=postfix user=postfix password=postfix123
map {
pattern = priv/quota/storage
table = quota2
username_field = username
value_field = bytes
}
map {
pattern = priv/quota/messages
table = quota2
username_field = username
value_field = messages
}
最初の行で、メールサーバーの設定時に指定したデータベースへの接続情報を指定する必要があります。
vi /etc/dovecot/dovecot-sql.conf.ext
user_query = SELECT CONCAT('/home/mail/',LCASE(domain
),'/',LCASE(maildir
)), 1024 AS uid, 1024 AS gid, CONCAT('*:bytes=', quota) AS quota_rule FROM mailbox WHERE username = '%u'
ファイルを保存します。
サービスを再起動します:
systemctl restart dovecot
Postfixadminで指定したクォータを持つ既存のメールボックスを指定し、コンソールで以下のコマンドを使用してクォータの動作を確認できます:
doveadm quota get -u user@domain.tld
2. クォータ超過通知の設定
vi /etc/dovecot/conf.d/90-quota.conf
設定ファイルに以下の行を追加します:
plugin {
quota_warning = storage=95%% quota-warning 95 %u
quota_warning2 = storage=80%% quota-warning 80 %u
}
同じファイル内で、quota-warningサービスのセクションを以下のように設定します:
service quota-warning
executable = script /usr/local/bin/quota-warning.sh
user = dovecot
unix_listener quota-warning {
user = vmail
}
}
通知を送信するスクリプトを作成します:
vi /usr/local/bin/quota-warning.sh
#!/bin/sh PERCENT=$1 USER=$2 cat << EOF | /usr/lib/dovecot/dovecot-lda -d $USER -o "plugin/quota=maildir:User quota:noenforcing" From: postmaster@domain.tld Subject: クォータ警告
あなたのメールボックスは現在$PERCENT%使用されています。
EOF
ファイルを保存します。送信元のメールアドレスを自分のものに変更します。実行権限を割り当て、設定を適用します:
chmod +x /usr/local/bin/quota-warning.sh
systemctl restart dovecot
コンソールでスクリプトを確認します:
/usr/local/bin/quota-warning.sh 85 user@domain.tld
実際のメールボックスに変更し、そのメールボックスに警告メールが届くはずです。
クォータ設定が完了しました。メールボックス自体より大きな添付ファイル付きのメールが送信された場合、そのメールは配信されず、送信者にはメールボックスがいっぱいであるというメッセージが届きます。これで、Postfixadminで設定されたクォータは適切に構成され、動作しています。