Image

ナレッジベース → Dovecot メール サーバーでのメールボックス クォータのインストールと構成

[仮想サーバー]
公開日: 09.06.2023

メールボックスのクォータ設定について説明します。デフォルトで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で設定されたクォータは適切に構成され、動作しています。





No Comments Yet