我们来描述一下邮箱配额设置,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
}
在同一个文件中,我们提供了一个部分 service 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: 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 中设置的配额已配置完毕并开始工作。