postfixadmin에서 제공되는 할당량 지정 기능은 기본적으로 작동하지 않으며 구성이 필요합니다. 우리의 경우에는 Dovecot 서비스용 Ubuntu\Debian 메일 서버에 구성합니다. 이 구성을 사용하면 회사 사서함이 무거운 첨부 파일과 스팸으로 가득 차서 상당한 디스크 공간을 소비할 수 있으므로 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
}
동일한 파일에서 서비스 할당량 경고 섹션을 양식으로 가져옵니다:
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: quota warning
Your mailbox is now $PERCENT% full.
EOF
파일을 저장해 보겠습니다. 귀하의 이메일로 전송될 이메일 주소를 변경하세요. 실행 권한 할당 및 설정 적용:
chmod +x /usr/local/bin/quota-warning.sh
systemctl restart dovecot
콘솔에서 스크립트를 확인해 봅시다:
/usr/local/bin/quota-warning.sh 85 user@domain.tld
사서함을 기존 사서함으로 변경하면 편지가 전송됩니다.
할당량 설정이 완료되면, 편지함 자체보다 큰 첨부파일이 포함된 편지를 편지함으로 보낼 경우, 편지는 배달되지 않으며 보낸 사람은 편지함이 가득 찼다는 메시지를 받게 됩니다. 이제 postfixadmin에 설정된 할당량이 구성되어 작동합니다.