Приветствую всех!
Стоит Exim на Debian Sarge. Сконфигурен как маленький почтовый сервер, письма принимает в maibox (в смысле не в Maildir). Настроена квота через
quota = ${lookup{$local_part}lsearch*{/etc/exim4/quotafile}{$value}{100M}}Но хочется странного - чтобы отлуп по Mailbox full был сразу же после RCPT, а не после DATA.
Гуглением надыбал следующий ACL -deny message = Mail cannot be delivered, mailbox is full.
recipients = ${if exists{/etc/exim4/maildir_quota_exceeded}\
{/etc/exim4/maildir_quota_exceeded}\
{}}Работает нормально, но через внешний скрипт, который переодически смотрит превышение квоты и помещает/удаляет логины провинившихся юзеров в/из /etc/exim4/maildir_quota_exceeded
А нет ли способа полностью автоматизировтаь это дело аналогично quota? То есть проверять размер mailbox при RCPT и сразу давать отлуп при превышении?
>[оверквотинг удален]
>
>
>{}}
>
>Работает нормально, но через внешний скрипт, который переодически смотрит превышение квоты и
>помещает/удаляет логины провинившихся юзеров в/из /etc/exim4/maildir_quota_exceeded
>
>А нет ли способа полностью автоматизировтаь это дело аналогично quota? То есть
>проверять размер mailbox при RCPT и сразу давать отлуп при превышении?
>Запускай скрипт, например на перле, который будет проверять размер файла (mailbox) с заданной квотой.
Поддерживаю товарищч !!!
Пишем на перле скрипт который юзает inet или unix сокет с проверочкой квоты (он возвращает число(размер)) , в exim используем condition c readsocket для сравнения>[оверквотинг удален]
>>
>>Работает нормально, но через внешний скрипт, который переодически смотрит превышение квоты и
>>помещает/удаляет логины провинившихся юзеров в/из /etc/exim4/maildir_quota_exceeded
>>
>>А нет ли способа полностью автоматизировтаь это дело аналогично quota? То есть
>>проверять размер mailbox при RCPT и сразу давать отлуп при превышении?
>>
>
>Запускай скрипт, например на перле, который будет проверять размер файла (mailbox) с
>заданной квотой.
И тебе привет.
Я создал патчик для таких странностей.
Будет интересно пиши!PS: К Вам задача такого рода . Квоту то на ящик понятно а как быть если я хочу сделать квоту для домена .
>[оверквотинг удален]
>
>
> {/etc/exim4/maildir_quota_exceeded}\
>
>
> {}}
> Работает нормально, но через внешний скрипт, который переодически смотрит превышение квоты
> и помещает/удаляет логины провинившихся юзеров в/из /etc/exim4/maildir_quota_exceeded
> А нет ли способа полностью автоматизировтаь это дело аналогично quota? То есть
> проверять размер mailbox при RCPT и сразу давать отлуп при превышении?
У меня в итоге получился такой рабочий вариант:deny message = Message cannot be delivered, mailbox is full
condition = ${lookup mysql{SELECT mailbox.username FROM `mailbox` \
LEFT JOIN quota2 ON mailbox.username = quota2.username \
WHERE mailbox.username = "$local_part@$domain" \
AND quota2.bytes > mailbox.quota-31457280}{yes}{no}}где 31457280 взялось из message_size_limit = 30M