Страница 1 из 1

exim, условие на размер сообщения

Добавлено: 2008-05-16 9:37:29
cyrus_user
Привет. Что-то никак не соображу, как сделать:
exim принимает почту размером в 8Mb, но для определённой группы получателей, выставлен лимит в 1Mb

Код: Выделить всё

message_size_limit = 8196K
MESSAGE_LIMIT_UK = 1024K
в acl.smpt.rcpt:

Код: Выделить всё

warn
set acl_m0 = $local_part
в acl.smtp.data:

Код: Выделить всё

deny
message = Message size ${eval:$message_size/1024}K is larger than limit of MESSAGE_LIMIT_UK
condition = ${if and {{match{${extract{-1}{.}{$acl_m0}}} {uk|m102|lp|ch|ofs|test}}\
{>{$message_size}{MESSAGE_LIMIT_UK}}}{yes}{no}}
За исключением потери трафика, всё работает ок
Но, если получателей несколько и один из них входит в группу ограниченных, то блокируется целиком письмо для всех.
Как бы так сделать, чтобы остальным неограниченным письмо доставлялось?

Re: exim, условие на размер сообщения

Добавлено: 2008-05-16 9:55:37
dikens3
cyrus_user писал(а):За исключением потери трафика, всё работает ок
Щас уже многие работают по esmtp и передают размер сообщения. Поэтому размер нужно проверять на этапе rcpt, а для smtp на этапе data, но с избыточным трафиком, в случае отказа, как в твоём случае.
cyrus_user писал(а):Но, если получателей несколько и один из них входит в группу ограниченных, то блокируется целиком письмо для всех.
Как бы так сделать, чтобы остальным неограниченным письмо доставлялось?
1. Выбирать максимальный разрешённый размер и доставлять всем, включая ограниченного.
2. Как-то изменять переменную recipients и удалять из неё получателя с лимитом.

Re: exim, условие на размер сообщения

Добавлено: 2008-05-20 11:23:49
Alex Keda
делать после разбора всех получателей.
в фильтре например