当我删除邮件时执行鸽子“quota-warning.sh”

plugin { quota_rule = *:storage=10M quota = maildir:User quota quota_rule2 = Junk:ignore quota_rule3 = Trash:storage=+100M quota_warning = storage=50%% quota-warning 50 %u quota_exceeded = storage=100%% quota-exceeded 100 %u } plugin { quota_warning = storage=50%% quota-warning 50 %u quota_exceeded = storage=100%% quota-exceeded 100 %u } service quota-warning { executable = script /root/bin/quota-warning.sh user = root unix_listener quota-warning { user = vmail mode = 0666 } } service quota-exceeded { executable = script /root/bin/quota-exceeded.sh user = root unix_listener quota-exceeded { user = vmail mode = 0666 } } 

我发送了一封8Mb的电子邮件(限制为10Mb),但是当我删除该邮件(将其移至垃圾箱)而不是执行配额超限时执行配额警告。

 cat /root/bin/quota-warning.sh touch /tmp/quota-warning-executed cat /root/bin/quota-exceeded.sh touch /tmp/quota-exceeded-executed 

您必须configurationJunk文件夹的配额排除和Trash开销:

 plugin { quota = maildir:User quota quota_rule = Junk:ignore quota_rule2 = Trash:storage=+100M quota_warning = storage=50%% quota-warning 50 %u quota_exceeded = storage=100%% quota-exceeded 100 %u } 

正如dovecot维基所述,为了避免在转移到Trash发生配额警告,

您可以创build一个单独的配额规则,给予垃圾邮箱稍高的配额限制(但不是无限制)

这是因为转移到Trash是两步程序(复制+删除)。 在短时间内,你有两个相同的消息的副本,他们都是由配额插件计数。 如果Trash有一些开销,则新鲜复制的消息不要超过主限制。 进一步的信息请参阅dovecot的维基: https : //wiki.dovecot.org/Quota