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

Ограничения на размер почтового ящика в EXIM-e

Добавлено: 2006-11-06 16:49:35
PSdok
В EXIMe есть возможность установить ограничения на размер почтового ящика?

Добавлено: 2006-11-06 22:25:27
Alex Keda
квоты есть...

Добавлено: 2006-11-07 8:13:00
PSdok
Как это сделать?

Добавлено: 2006-11-07 8:17:49
Alex Keda
х.з... не было необходимости...
А вообще, копать отсюда http://gate.fwtrade.ru/lissyara/exim/sp ... #id2634414 и где-то рядом...

Добавлено: 2006-11-07 16:03:24
PSdok
Хм.....
Это для умных, а я так :)
Думал у кого есть готовое решение

Добавлено: 2006-11-07 16:57:37
dikens3

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

local_delivery:
  driver = appendfile
  check_string = ""
  create_directory
  delivery_date_add
  directory = /mnt/tmp/$domain/$local_part
  directory_mode = 770
  envelope_to_add
  group = mail
  maildir_format
  maildir_tag = ,S=$message_size
  message_prefix = ""
  message_suffix = ""
  mode = 0660
  quota = ${lookup pgsql{SELECT quota FROM users WHERE login='${local_part}' AND domain='${domain}'}{${value}M}}
  quota_size_regex = S=(\d+)$
  quota_warn_threshold = 75%
  return_path_add
Ну и то что начинается с quota для тебя

И тут:

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

begin retry
*                      quota
*                      *           F,2h,15m; G,16h,1h,1.5; F,4d,6h
Сообщение принимается полностью, только потом идёт ответ. Что не есть ГУД. :-(

Добавлено: 2006-11-07 21:05:50
Alex Keda
помниться, размер в приветствии гвориться...
можно выдернуть оттуда и сравнивать с квотой. тока при укладывании письма надо размер всей почты в бд вносить...
=========
что не означает ничего абсолютно - пользователь может почту забрать, а exim до след. письма так и будет невкурсе...

Добавлено: 2006-11-08 9:25:10
PSdok
Получается что можно завалить ящик письмами и они все будут приниматься и входящий трафик тоже будет считаться.
(мне за выходные один умник послал 240 писем по 5 метров)
И с этим бороться ни как нельзя?

Добавлено: 2006-11-08 11:51:39
dikens3
tormozok писал(а):Получается что можно завалить ящик письмами и они все будут приниматься и входящий трафик тоже будет считаться.
(мне за выходные один умник послал 240 писем по 5 метров)
И с этим бороться ни как нельзя?
Проверять объём почтового ящика до получения письма, самый правильный вариант.

Я пока так не сделал. Сделаешь - пиши. :-)

Добавлено: 2006-11-09 10:18:19
PSdok
Теоретически все понятно, практически сложнее :)

Добавлено: 2006-12-28 16:51:45
Maks
dikens3 писал(а): Проверять объём почтового ящика до получения письма, самый правильный вариант.
Я пока так не сделал. Сделаешь - пиши. :-)
Пока еще не досмотрел весь форум до конца, но все же спрошу: вышеописанное кто-нибудь реализовал? Если да, то поделитесь плз, идеями...

Связка: exim-mysql-4.64 + dovecot-1.0.r15 + mysql-server-5.1.12

Добавлено: 2006-12-29 9:47:56
Alex Keda
пока письмо не пришло - неизвестен его размер.
то, что дают в заголовках - не факт что правильно.... а часто и не дают вообще

Добавлено: 2006-12-30 13:06:15
Maks
dikens3 писал(а): Проверять объём почтового ящика до получения письма, самый правильный вариант.
Я пока так не сделал. Сделаешь - пиши. :-)
Накопал вот такой матюгальник
Exim : Checking maildir quotas at SMTP RCPT time


и оттуда еще вот эти:

http://article.gmane.org/gmane.mail.exim.user/39604
http://article.gmane.org/gmane.mail.exim.user/39782
http://article.gmane.org/gmane.mail.exim.user/39609

Правда на таком "умном" англицком языке написано (первое еще ниче, а вот остальные...)
Пока не асилил.

Добавлено: 2006-12-30 13:39:24
Maks
А кто подскажет, как переделать вот это:
dikens3 писал(а):

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

local_delivery:
  driver = appendfile
  check_string = ""
  create_directory
  delivery_date_add
  directory = /mnt/tmp/$domain/$local_part
  directory_mode = 770
  envelope_to_add
  group = mail
  maildir_format
  maildir_tag = ,S=$message_size
  message_prefix = ""
  message_suffix = ""
  mode = 0660
  quota = ${lookup pgsql{SELECT quota FROM users WHERE login='${local_part}' AND domain='${domain}'}{${value}M}}
  quota_size_regex = S=(\d+)$
  quota_warn_threshold = 75%
  return_path_add
в случае использования /usr/local/libexec/dovecot/deliver:

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

dovecot_delivery:
  driver = pipe
  command = /usr/local/libexec/dovecot/deliver -d $local_part@$domain
  message_prefix =
  message_suffix =
  delivery_date_add
  envelope_to_add
  return_path_add
  log_output
  user = mailnull
Переделать, в том смысле, чтобы включить проверку квот передавая письмо в ящик локальному получателю.