EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты
Модератор: xM
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
akam
- проходил мимо
Непрочитанное сообщение
akam » 2011-02-02 11:02:50
Здравствуйте,
есть роутер,ограничивающий размера письма:
Код: Выделить всё
message_size_limit:
driver = redirect
condition = ${if and {\
{>{MYSQL_SZ_IN_MSG_MAX}{0}}\
{>{$message_size}{MYSQL_SZ_IN_MSG_MAX}}\
} }
data = :fail:Cannot accept message with body size $message_size bytes for recipient $local_part@$domain (max MYSQL_SZ_IN_MSG_MAX bytes)
allow_fail
он работает, только ограничивает все, и входящие и исходящие письма.
А как сделать, чтобы ограничивать только исходящие письма на внешние домены, а внутри моего домена, и входящие из внешки не ограничивать? возможно ли вообще такое?
akam
-
Хостинг HostFood.ru
-
Хостинг HostFood.ru
Тарифы на хостинг в России, от 12 рублей:
https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.:
https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах:
https://www.host-food.ru/domains/
-
Urgor
- лейтенант
- Сообщения: 677
- Зарегистрирован: 2006-03-14 16:30:18
- Откуда: Гилея (СПб)
-
Контактная информация:
Непрочитанное сообщение
Urgor » 2011-02-02 12:21:03
У мя примерно так. Авторизованные берут квоту из базы, все остальные 512кб.
Код: Выделить всё
MYSQL_MESSOUT_QUOTA = SELECT `quota-out` * 1024 FROM users WHERE id='${quote_mysql:$authenticated_id}'
DEFAULT_MESSOUT_LIMIT = 512000
acl_check_rcpt:
warn set acl_m2 = ${lookup mysql{MYSQL_MESSOUT_QUOTA}{${value}}{DEFAULT_MESSOUT_LIMIT}}
acl_check_data:
deny message = Message too big. Allowed message size $acl_m2 bytes
domains = +local_domains
condition = ${if > {$message_size}{$acl_m2}{1}{0}}
Власть в руках у чужаков, и ты им платишь дань...
Urgor
-
akam
- проходил мимо
Непрочитанное сообщение
akam » 2011-02-02 14:15:33
а как ты указал domains в acl?
Код: Выделить всё
temporarily rejected after DATA: cannot test domains condition in DATA ACL
akam
-
Urgor
- лейтенант
- Сообщения: 677
- Зарегистрирован: 2006-03-14 16:30:18
- Откуда: Гилея (СПб)
-
Контактная информация:
Непрочитанное сообщение
Urgor » 2011-02-02 14:40:33
Код: Выделить всё
domainlist local_domains = ${lookup mysql{SELECT domainname FROM domains \
WHERE domainname='${domain}' AND \
(type='LOCAL' OR type='VIRTUAL') AND \
`active`='1'}}
Власть в руках у чужаков, и ты им платишь дань...
Urgor
-
akam
- проходил мимо
Непрочитанное сообщение
akam » 2011-02-02 15:39:44
у меня также, но это не суть важно..
Как я понял твой acl тоже ограничивает размер как входящих, так и исходящих писем?
akam
-
Urgor
- лейтенант
- Сообщения: 677
- Зарегистрирован: 2006-03-14 16:30:18
- Откуда: Гилея (СПб)
-
Контактная информация:
Непрочитанное сообщение
Urgor » 2011-02-02 16:01:25
Хмм... можно переписать иначе:
m1 - отправитель, если свой или пусто
m3 - домен, если свой или пусто
Если отправитель не пусто и домен пусто -- проверяем квоты
Код: Выделить всё
warn set acl_m1 = ${lookup mysql{SELECT id FROM users \
WHERE `id`='${quote_mysql:$sender_address}'}}
warn set acl_m2 = ${lookup mysql{MYSQL_MESSOUT_QUOTA}{${value}}{DEFAULT_MESSOUT_LIMIT}}
warn set acl_m3 = ${lookup mysql{SELECT domainname FROM domains \
WHERE `domainname`='${quote_mysql:$domain}'}}
[......................]
deny message = Message too big. Allowed message size $acl_m2 bytes
condition = ${if and {{!eq{$acl_m1}{}} \
{eq{$acl_m3}{}}} \
{yes}{no}}
condition = ${if > {$message_size}{$acl_m2}{1}{0}}
Власть в руках у чужаков, и ты им платишь дань...
Urgor