URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 91865
[ Назад ]

Исходное сообщение
"Postfix Maildir quota"

Отправлено InfinityNsu , 30-Июн-11 21:41 
Здравствуйте!

Возникла потребность настроить индивидуальные для каждого юзера квоты в постфиксе. Столкнулась с тем, что в стандартном пакете из репозитория дебиана поддержки квотирования нет. Вопрос такой: это действительно так? Нету пакетов с уже пропатченным постфиксом и надо только брать исходники, патчить их и самостоятельно собирать?


Содержание

Сообщения в этом обсуждении
"Postfix Maildir quota"
Отправлено Дядя_Федор , 30-Июн-11 21:59 
> Здравствуйте!
> Возникла потребность настроить индивидуальные для каждого юзера квоты в постфиксе. Столкнулась
> с тем, что в стандартном пакете из репозитория дебиана поддержки квотирования
> нет. Вопрос такой: это действительно так? Нету пакетов с уже пропатченным
> постфиксом и надо только брать исходники, патчить их и самостоятельно собирать?

http://www.postfix.org/addon.html Cмотрим раздел "Quota software". Лично у меня постфикс собран вот с таким USE-ключом (Gentoo):
equery uses postfix
* Found these USE flags for mail-mta/postfix-2.7.4:
.....
+ + vda          : Adds support for virtual delivery agent quota enforcing



"Postfix Maildir quota"
Отправлено DeadLoco , 30-Июн-11 23:57 
> надо только брать исходники, патчить их и самостоятельно собирать?

Надо выносить функционал LDA на dovecot, и будет вам щясье. Пусть МТА мтит, а в локальное хранилище кладет тот, кто оттуда берет. Как минимум, не будете постить траблов с правами доступа.



"Postfix Maildir quota"
Отправлено Дядя_Федор , 01-Июл-11 09:08 
> Надо выносить функционал LDA на dovecot, и будет вам щясье. Пусть МТА
> мтит, а в локальное хранилище кладет тот, кто оттуда берет. Как
> минимум, не будете постить траблов с правами доступа.

Ну не обязательно на давкот. Можно и курьер приделать - дело вкуса и личных предпочтений. Но в общем - согласен. Хотя можно и все одним постфиксом разрулить - и MTA, и LDA. Хотя с другой стороны - все равно службу pop3/imap прикручивать надо. А тут тот же давкот позволяет обойтись одним собой - и LDA, и pop3-imap с кучей полезного функционала - managesieve, например. :)



"Postfix Maildir quota"
Отправлено DeadLoco , 01-Июл-11 12:38 
> с другой стороны - все равно службу pop3/imap прикручивать надо. А
> тут тот же давкот позволяет обойтись одним собой - и LDA,
> и pop3-imap с кучей полезного функционала - managesieve, например. :)

А также сабжевые квоты и просто sieve.


"Postfix Maildir quota"
Отправлено InfinityNsu , 08-Авг-11 22:52 
>> надо только брать исходники, патчить их и самостоятельно собирать?
> Надо выносить функционал LDA на dovecot, и будет вам щясье. Пусть МТА
> мтит, а в локальное хранилище кладет тот, кто оттуда берет. Как
> минимум, не будете постить траблов с правами доступа.

Спасибо большое, наконец-то добралась до настройки это щастья :) .
Заставить постфикс отдавать почту довкоту, чтобы он ее раскладывал, удалось без проблем, но вот квоты не работают, довкот принимает всю почту :(

Лог на пришедшее письмо:

Aug  8 20:40:17 test amavis[23896]: (23896-01) Passed CLEAN, [x.x.x.x] [x.x.x.x] <test@gmail.com> -> <test@test.com>, Message-ID: <CAMNxkx9KGPv-tCr9S4at0G-j7WhCRrWcgEspfv18nevoWs0jFA@mail.gmail.com>, mail_id: r-GiZi9MGIDA, Hits: -, size: 8080572, queued_as: 179D596057, 6410 ms
Aug  8 20:40:17 test postfix/smtp[23342]: 54D73960C8: to=<test@test.com>, relay=127.0.0.1[127.0.0.1]:10024, delay=28, delays=21/0/0/6.4, dsn=2.0.0, status=sent (250 2.0.0 Ok, id=23896-01, from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as 179D596057)
Aug  8 20:40:18 test deliver(test@test.com): msgid=<CAMNxkx9KGPv-tCr9S4at0G-j7WhCRrWcgEspfv18nevoWs0jFA@mail.gmail.com>: saved mail to INBOX
Aug  8 20:40:18 test postfix/pipe[23921]: 179D596057: to=<test@test.com>, relay=dovecot, delay=1.2, delays=0.89/0.01/0/0.29, dsn=2.0.0, status=sent (delivered via dovecot service)

Все, что касается квот из настроек давкота:

protocol imap {
  mail_plugins = quota imap_quota
  imap_client_workarounds = delay-newmail netscape-eoh
}

protocol pop3 {
  mail_plugins = quota
  pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}

protocol lda {
   postmaster_address = postmaster@test.net
   mail_plugins = quota
}

plugin {
  quota = maildir
  quota_warning = storage=80%% /usr/local/bin/quota-warning.sh 80
}

user_query = SELECT 1004 AS uid, 1004 AS gid, concat('maildir:storage=', quota, 'B') AS quota_rule FROM mailbox WHERE username = '%u'


Подскажите, пожалуйста, что не так :(


"Postfix Maildir quota"
Отправлено InfinityNsu , 09-Авг-11 22:06 
> Подскажите, пожалуйста, что не так :(

Вопрос снят =)


"Postfix Maildir quota"
Отправлено DeadLoco , 09-Авг-11 23:40 
>> Подскажите, пожалуйста, что не так :(

Собсно, конфиг вроде правильный.

> Вопрос снят =)

А что было-то? Небось, в базе косяк?



"Postfix Maildir quota"
Отправлено InfinityNsu , 10-Авг-11 12:13 
>>> Подскажите, пожалуйста, что не так :(
> Собсно, конфиг вроде правильный.
>> Вопрос снят =)
> А что было-то? Небось, в базе косяк?

Нет. Я как-то не посмотрела на версию давкота, все это работает только в версии 1.1, а у меня 1.0 стояла. Странно, что на эти лишние параметры он не ругался, просто их игнорил и все. Обновила давкот, все заработало =)


"Postfix Maildir quota"
Отправлено DeadLoco , 10-Авг-11 14:39 
> Обновила давкот, все заработало =)

Я бы вообще советовал на 2.0 переходить. Там сделали много вкусняшек, которых объективно не хватает в 1.х. В частности, отправка деливером уведомлений о переполнении ящика уже не требует держать отдельный конфиг, и есть возможность вешать обработчики на события, вроде перемещения письма внутри мейлдира.

В любом случае дальше надо смотреть в сторону плагинов sieve и managesieve. В них самая мякотка.


"Postfix Maildir quota"
Отправлено InfinityNsu , 11-Авг-11 10:36 
>> Обновила давкот, все заработало =)
> Я бы вообще советовал на 2.0 переходить. Там сделали много вкусняшек, которых
> объективно не хватает в 1.х. В частности, отправка деливером уведомлений о
> переполнении ящика уже не требует держать отдельный конфиг, и есть возможность
> вешать обработчики на события, вроде перемещения письма внутри мейлдира.
> В любом случае дальше надо смотреть в сторону плагинов sieve и managesieve.
> В них самая мякотка.

В репах дебиана пока только 1.1 в стабильной ветке, как появится 2.0, перейду, спасибо.

И еще такой вопрос возник: никак не найду, где изменить текст сообщения, которая посылается отправителю? Чтобы вместо дефолтного Quota exceeded (mailbox for user is full) было что-то свое?


"Postfix Maildir quota"
Отправлено DeadLoco , 11-Авг-11 12:28 
> И еще такой вопрос возник: никак не найду, где изменить текст сообщения,
> которая посылается отправителю? Чтобы вместо дефолтного Quota exceeded (mailbox for user
> is full) было что-то свое?

plugin {
. . . . . .
  quota = maildir
  quota_rule = Junk:ignore
  quota_rule2 = Trash:storage=100M
  quota_exceeded_message = 422: No free space to store your message
. . . . . .
}


"Postfix Maildir quota"
Отправлено DeadLoco , 11-Авг-11 14:14 
>   quota_rule = Junk:ignore

Эта строка нужна потому, что у меня содержимое папок "СПАМ" у юзеров удаляется автоматически, после 30 дней хранения. Поэтому я спам не беру в общий зачет квоты.

>   quota_rule2 = Trash:storage=100M

Эта строка нужна непременно, потому что иначе будут серьезные проблемы при переполнении ящика. Она указывает, что за счет "Корзины" квота может быть превышена на 100М. Дело в том, что при удалении писем на них сначала делается хардлинк в корзину, затем исходный хардлинк удаляется, а при опорожнении корзины удаляется и оставшийся. Так вот, на момент создания второго хардлинка в корзину, удаляемый файл учитывается квотой дважды, по обоим линкам. И если не задать оверхеда квоты по корзине, то квота может не дать удалить лишнее.


"Postfix Maildir quota"
Отправлено InfinityNsu , 11-Авг-11 18:29 
>[оверквотинг удален]
> в общий зачет квоты.
>>   quota_rule2 = Trash:storage=100M
> Эта строка нужна непременно, потому что иначе будут серьезные проблемы при переполнении
> ящика. Она указывает, что за счет "Корзины" квота может быть превышена
> на 100М. Дело в том, что при удалении писем на них
> сначала делается хардлинк в корзину, затем исходный хардлинк удаляется, а при
> опорожнении корзины удаляется и оставшийся. Так вот, на момент создания второго
> хардлинка в корзину, удаляемый файл учитывается квотой дважды, по обоим линкам.
> И если не задать оверхеда квоты по корзине, то квота может
> не дать удалить лишнее.

Ага, я это уже в доке прочитала и выставила, но все равно большое спасибо!


"Postfix Maildir quota"
Отправлено DeadLoco , 11-Авг-11 18:49 
> Ага, я это уже в доке прочитала и выставила, но все равно
> большое спасибо!

А-а-а-а! Она читает доки! (в панике убегает)


"Postfix Maildir quota"
Отправлено InfinityNsu , 11-Авг-11 18:27 
>[оверквотинг удален]
>> которая посылается отправителю? Чтобы вместо дефолтного Quota exceeded (mailbox for user
>> is full) было что-то свое?
> plugin {
> . . . . . .
>   quota = maildir
>   quota_rule = Junk:ignore
>   quota_rule2 = Trash:storage=100M
>   quota_exceeded_message = 422: No free space to store your message
> . . . . . .
> }

Большое спасибо =)