Регистрация...

Eserv Forum / E3 / Eserv 3 Mail Server Support / Создание квот для ящиков ESERV3

imported // (v1)
Продукты и услуги Скачать Документация Купить Поддержка Форумы Партнёрам Статьи О компании
Новости
12.10.2009
Переезд завершен
При изучении данного вопроса столкнулся с следущими трудностями:

  1. Для подключения плагина должен быть параметр UseQuotas, но почему то я его не нашел.
  2. Ладно, подключил плагин без параметра, создал файл ._quota_.txt, прописал строку "10 MB 3" и поместил в выбранный ящик. Попробавал отправить несколько писем. После второго письма перестали попадать в ящик, но мне об этом никакого сообщения не выдавалось, — письма нормально уходили и в ХХХХlog.txt записи о совершенно нормальном приеме письма.
Может что-то не так сделал?

Спасибо.
 
Комментарии к этой версии (22.12.2006 15:06) [~mixsv] 3e88079b
АвторДатаТекстtags
mixsv22.12.2006 15:28
Да, те письма, что не попадают в ящик, зависают в спуле.
imported
pig22.12.2006 15:52
mixsv пишет: 1. Для подключения плагина должен быть параметр UseQuotas, но почему то я его не нашел.

Его нет в Eserv3.orig.ini

mixsv пишет: 2. Ладно, подключил плагин без параметра, создал файл ._quota_.txt, прописал строку "10 MB 3" и поместил в выбранный ящик. Попробавал отправить несколько писем. После второго письма перестали попадать в ящик, но мне об этом никакого сообщения не выдавалось, — письма нормально уходили и в ХХХХlog.txt записи о совершенно нормальном приеме письма.

Наверное, опять белый список...
Показывайте выдержки из DATA\log\smtp\200612log.txt.

mixsv пишет: Да, те письма, что не попадают в ящик, зависают в спуле.

Так и должно быть. Если никому не досталось — остаётся лежать.
imported
mixsv22.12.2006 16:12
Да, белый список присутствует:

2006-12-22 14:26:08;192.168.20.100;@rayons.ru;220 POST-SERVER Eserv/3.4304 ESMTP. Welcome, Server! postmaster Fri, 22 Dec 2006 14:26:08 +0200
2006-12-22 14:26:08;192.168.20.100;postmaster@rayons.ru;WhiteList, postmaster
2006-12-22 14:26:08;192.168.20.100;postmaster@rayons.ru;EHLO supermicro
2006-12-22 14:26:08;192.168.20.100;postmaster@rayons.ru;250-AUTH PLAIN LOGIN
250-AUTH=LOGIN
250-STARTTLS
250-SIZE 5000000
250-ETRN
250-8bitmime
250-BINARYMIME
250 POST-SERVER Hello [192.168.20.100]
2006-12-22 14:26:08;192.168.20.100;postmaster@rayons.ru;MAIL FROM:<postmaster@minfin39.ru> SIZE=630
2006-12-22 14:26:08;192.168.20.100;postmaster@rayons.ru;250 postmaster@minfin39.ru OK, my domain
2006-12-22 14:26:08;192.168.20.100;postmaster@rayons.ru;RCPT TO:<r35020@rayons.ru>
2006-12-22 14:26:08;192.168.20.100;postmaster@rayons.ru;250 r35020@rayons.ru OK, my domain, user r35020 exists
2006-12-22 14:26:08;192.168.20.100;postmaster@rayons.ru;DATA
2006-12-22 14:26:08;192.168.20.100;postmaster@rayons.ru;354 send the mail data, end with .
2006-12-22 14:26:08;192.168.20.100;postmaster@rayons.ru;250 OK message accepted for delivery
2006-12-22 14:26:08;192.168.20.100;postmaster@rayons.ru;RSET
2006-12-22 14:26:08;192.168.20.100;postmaster@rayons.ru;250 Reset state
2006-12-22 14:26:08;192.168.20.100;postmaster@rayons.ru;QUIT
2006-12-22 14:26:08;192.168.20.100;postmaster@rayons.ru;221 Goodbye.
imported
mixsv22.12.2006 17:50
Так в чем же дело? Как решить задачу?
imported
pig22.12.2006 18:42
Нет, это не белый список. Письмо принято нормальным образом. Самое-то смешное, что квоты больше нигде, кроме как при анализе RCPT TO, не проверяются.
Правда, там есть хак с подменой слова, копирующего письмо, но подменённое слово в результате последующих переделок уже не используется. Какая версия у вас сейчас стоит?

А посмотрите в acSMTP.log — может, туда ошибки насыпались? Хотя странно, сессия-то нормально доехала до конца. Может, это письмо, которое попало в ящик?
imported
mixsv22.12.2006 18:55
В основном логе ошибок нет. Версия 3.28.

Этот лог именно того письма, которое не дошло, а осталось в спуле (точнее одного из них)
imported
pig22.12.2006 19:53
Совсем никаких ошибок? Даже Can't open current file to copy?

Если так, то очень странно. Не должно быть препятствий для доставки...

Остаётся в начало acSMTP\conf\smtp\delivery\Local.rules.txt воткнуть отладочный вывод:
.( Delivery to: ) RCPTTO TYPE CR

И в процессе экспериментов смотреть, что будет появляться в логе.
imported
mixsv22.12.2006 20:10
Вот, что в лог записало

Delivery to: r35020@rayons.ru

Вот на это письмо в ХХХХlog.txt:

2006-12-22 19:06:30;192.168.20.101;@rayons.ru;220 POST-SERVER Eserv/3.4304 ESMTP. Fri, 22 Dec 2006 19:06:30 +0200
2006-12-22 19:06:30;192.168.20.101;@rayons.ru;HELO marshall.finans.local
2006-12-22 19:06:30;192.168.20.101;@rayons.ru;250 Hello [192.168.20.101]
2006-12-22 19:06:30;192.168.20.101;@rayons.ru;MAIL FROM:<postmaster@minfin39.ru>
2006-12-22 19:06:30;192.168.20.101;@rayons.ru;250 postmaster@minfin39.ru OK, my domain
2006-12-22 19:06:30;192.168.20.101;@rayons.ru;RCPT TO:<r35020@rayons.ru>
2006-12-22 19:06:30;192.168.20.101;@;250 r35020@rayons.ru OK, my domain, user r35020 exists
2006-12-22 19:06:30;192.168.20.101;@;DATA
2006-12-22 19:06:30;192.168.20.101;@;354 send the mail data, end with .
2006-12-22 19:06:30;192.168.20.101;@;250 OK message accepted for delivery
2006-12-22 19:06:30;192.168.20.101;@;QUIT
2006-12-22 19:06:30;192.168.20.101;@;221 Goodbye.

В ящик не упало и в спуле осталось.
imported
pig22.12.2006 21:07
А в acSMTP.log?
imported
mixsv22.12.2006 21:48
pig пишет: А в acSMTP.log?


Delivery to: r35020@rayons.ru
imported
pig23.12.2006 01:39
То есть, до правила доходит...

А правило это у вас стандартное или самописное? Вы его под себя не подкручивали?
imported
mixsv23.12.2006 12:08
Вы имеете ввиду localrules.txt?

Да, оно отличается. Вот мое:

( Доставка сообщения в локальный почтовый ящик )

.( Delivery to: ) RCPTTO TYPE CR

MESSAGE-CLASS =~ spam
[IF]
\ CopyFileWithRcptsTo: "{FIELD3 S@}\{RCPTTO GetUserFromEmail}\spam\{MAILFROM}!{RANDOM-ID}.eml"
    uCOPY-CNT 1+!
    EvalRules: smtp\delivery\SpamRobots
    RCPTTO DelRcpt
[ELSE]
    \ Если используется MContentEx, то выполняем его обработчик
    SMTP[UseMcontent] >FLAG | MContent[Pass2] >FLAG | EvalRules: smtp\delivery\Local.MContent \EOF

    CopyCurrentFileTo: "{FIELD3 S@}\{RCPTTO GetUserFromEmail}\INBOX\{MAILFROM}!{RANDOM-ID}.eml"
    SMTP[ArchiveLocalMail] >FLAG | CopyCurrentFileTo: "{SMTP[ArchiveDir]}\{MAILFROM}!{RANDOM-ID}.eml"
    EvalRules: smtp\delivery\Robots
    RCPTTO DelRcpt
[THEN]

S" Local" 911 LOG 452 LOG 455 LOG
imported
mixsv23.12.2006 13:58
pig пишет:
Если так, то очень странно. Не должно быть препятствий для доставки...


Как раз почему не доставляется-понятно. Срабатывает квота.

Ведь у меня правило 10 Мв 3 т.е. не больше трех писем. в ящике лежит три файла, два из них письма и файл самих правил (видимо проверка на количество писем заключается в простом подсчете количества файлов в папке INBOX).

Вопрос почему мне не выдается сообщение "560 Mailbox '{User}' — quota exceeded"? Ведь я (отправитель тоесть) должен знать о том, что ящик полон.
imported
pig23.12.2006 15:12
Тогда самое простое — замените CopyCurrentFileTo: на CopyFileWithCurrentRcptTo:. Избавимся от хака и добавим полезную информацию в шапку письма. И продолжим наши игры.
imported
mixsv23.12.2006 15:17
Заменить где? В каком файле или правиле?
imported
pig23.12.2006 15:31
В своём Local.rules. Посмотрите, что сейчас в стандартном правиле написано.
imported
mixsv23.12.2006 15:39
Сделал замену на участке:

[ELSE]
    \ Если используется MContentEx, то выполняем его обработчик
    SMTP[UseMcontent] >FLAG | MContent[Pass2] >FLAG | EvalRules: smtp\delivery\Local.MContent \EOF

    CopyCurrentFileTo: "{FIELD3 S@}\{RCPTTO GetUserFromEmail}\INBOX\{MAILFROM}!{RANDOM-ID}.eml"

Письмо упало в ящик, все нормально.

Вернул в прежнее состояние и повторил отправку. И все повтрилось: письмо не дошло, осталось в спуле, сообщений не выдало ни мне ни в лог. В ХХХХlog.txt две совершенно одинаковые группы записей на эти два письмо — и на то, что дошло и на то, что не дошло.

Давайте прервемся до понедельника. Надо бежать, а дома эксперементы проводить не смогу.

Спасибо.
imported
pig23.12.2006 16:17
А conf\smtp\LocalRcpt.rules у вас стандартный или тоже правленный?
imported
mixsv25.12.2006 10:17
Да, в моем отсутствовал кусок:

[IF]
    [DEFINED] CheckFolderQuota [IF]
        RCPTTO GetDomainFromEmail Lists[LocalDomains] IsInFile
        [IF] " {FIELD3 S@}\{RCPTTO GetUserFromEmail}\INBOX\{MAILFROM}!{RANDOM-ID}.eml" STR@ CheckFolderQuota
        [ELSE] " {Dirs[Mail]}\{RCPTTO GetDomainFromEmail}\{RCPTTO GetUserFromEmail}\INBOX\{MAILFROM}!{RANDOM-ID}.eml" STR@ CheckFolderQuota
        [THEN]
    [ELSE] TRUE [THEN]
    [IF] " 250 {RCPTTO} OK, my domain, user {User} exists{CRLF}" SetPrevUser SMTP_FPUTS TRUE \EOF
    [ELSE] " 560 Mailbox '{User}' — quota exceeded{CRLF}" SetPrevUser RcptToError [THEN]
[THEN]

После приведения в соответствие все заработало.

Надо взять за правило сравнивать свои файлы со стандартными при выходе новых версий.

Спасибо за помощь и внимание.
imported
Работает на Eserv/5.05567 (10.02.2020)