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 
}

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





暂时没有评论