我实现了当配额超出时警告 maildrop。除了一个细节之外,它工作正常。
缺点是发送邮件通知只能发送一次...我的意思是比如说如果邮箱已经超出80%以上,按照我的配置,超出时发送电子邮件通知,就这样了。
问题是,如果超出邮箱容量,即使 24 小时后也不会重新发送警报。
我注意到,当邮箱超出限制时,会创建一个名为的文件配额警告在邮箱超出的文件夹中/home/vmail/domain/mailbox/quotawarn
。如果我删除该文件,会立即发送通知。所以这似乎就是主题所在。
我注意到文档中并理解应该按如下方式运行这里,意思是超过警告限制后24小时重新发送,但是这不起作用。
有什么想法吗?谢谢
答案1
将 Sam Varshavchik 的解决方案放在在 courier-maildrop 邮件列表中交叉发布的问题
现有文件的时间戳quotawarn
用于确定自上次警告消息以来的 24 小时何时过去。
检查文件的时间戳quotawarn
。
此外,为了使警告生效,当然,所有邮件都必须使用maildrop
或来投递deliverquota
。如果您有其他程序来投递邮件,它将忽略quotawarn
;这是不言而喻的。
换句话说,这里是检查这种情况的伪代码
if there is incoming email
if postfix deliver it via maildrop or deliverquota
if quota threshold > 0
if size of maildir > quota threshold
if there is quotawarn file
if modified time of quotawarn + 86400 < now
write blank string to quotawarn file
put warning email into user mailbox