maildrop e quota excedida

2

Eu implementei maildrop de aviso quando a cota era excedida. Isso funcionou corretamente, exceto por um detalhe.

A desvantagem é que o envio de aviso de e-mail é enviado apenas a hora ... Quero dizer, por exemplo, se a caixa de correio foi excedida em mais de 80%, como eu configurei, envia notificação por e-mail quando excedido, tudo bem .

O problema é que, se a caixa de correio for excedida, mesmo após 24 horas, não reenvie o alerta.

Percebi que, quando uma caixa de correio excede o limite, um arquivo é criado chamado quotawarn na pasta da caixa de correio excedida em /home/vmail/domain/mailbox/quotawarn . Se eu excluir esse arquivo, imediatamente o aviso será enviado. Então, isso parece sair do assunto.

Eu observei na documentação e entendi que deveria funcionar como aqui , o que significa que o limite de aviso foi excedido reenviar depois de 24 horas, mas isso não funciona.

Alguma ideia? obrigado

    
por guid0ignaci0 28.05.2014 / 14:44

1 resposta

1

Coloque a solução de Sam Varshavchik de pergunta cruzada em lista de discussão courier-maildrop

O registro de data e hora do arquivo quotawarn existente é usado para determinar quando as 24 horas desde a última mensagem de aviso expirou.

Verifique o timestamp do arquivo quotawarn .

Além disso, para que o aviso funcione, é claro, todos os e-mails devem ser entregues usando maildrop ou deliverquota . Se você tiver alguma outra coisa que esteja entregando e-mails, ela ignorará quotawarn ; é óbvio.

Em outras palavras, aqui o pseudocódigo para verificar este caso

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
    
por 21.03.2015 / 15:43