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

exim размер почтового ящика или квоты

Добавлено: 2009-10-09 8:57:25
kmb
Хочу установить квоты.
Установленную квоту получаю так:

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

quota =  ${lookup mysql{SELECT distinct CONCAT(quota / 1024, "M") FROM users WHERE username='${local_part}@${domain}'}}
Но не могу понять, как получить размер почтового ящика в данный момент. maildir_use_size_file такую переменную exim не знает. Версия 4.69.
Вообще может я не потому пути пошел? Думал что-то вроде такого:

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

deny    message = "mailbox is full"
quota =  ${lookup mysql{SELECT distinct CONCAT(quota / 1024, "M") FROM users WHERE username='${local_part}@${domain}'}}
mailboxsize = ?
condition = ${if{$quota}>{$mailboxsize}}{yes}{no}
Или есть более верный способ?

Re: exim размер почтового ящика или квоты

Добавлено: 2009-10-11 20:56:56
dikens3
так можно:
http://www.timj.co.uk/linux/rcpt-time-quota-maildir.php

вообще этим транспорт занимается сам:
http://www.lissyara.su/?id=1226
Эта особенность полезна лишь когда пользователи не имеют shell-доступа к своим почтовым ящикам - иначе они могли бы обойти квоту простым переименованием файлов. Это средство может использоваться для “maildir” доставок, путём установки “maildir_tag” для добавления длинны файла к имени файла. Например:

maildir_tag = ,S=$message_size
quota_size_regex = ,S=(\d+)

Альтернативой “$message_size” является “$message_linecount”, которая содержит число линий в сообщений.
Регулярное выражение не должно предполагать что размер сообщения - в конце имени файла (даже при том, что её там помещает “maildir_tag”), поскольку MUA обрабатывающие “maildir” иногда добавляют иную информацию в конец имени сообщения.

Имя

Использование

Тип

Дефолтовое значение
quota_warn_message appendfile string† смотрите ниже

Смотрите ниже, при использование этой опции. Если эта опция не задана, когда установлена “quota_warn_threshold”, значение по умолчанию будет:

quota_warn_message = "\
To: $local_part@$domain\n\
Subject: Your mailbox\n\n\
This message is automatically created \
by mail delivery software.\n\n\
The size of your mailbox has exceeded \
a warning threshold that is\n\
set by the system administrator.\n"

Имя

Использование

Тип

Дефолтовое значение
quota_warn_threshold appendfile string† 0

Эта опция раскрывается точно таким же образом, как и “quota” (смотрите выше). Если результирующее значение больше нуля, и доставка сообщения приводит к размеру файла или общему размеру дерева директорий более данного порога, посылается предупреждающее сообщение. Если, также, установлена “quota”, порог может быть определён как процент от её значения, путём сопровождения значения символом процента. Например:

quota = 10M
quota_warn_threshold = 75%
Просто вставляешь запрос в mysql по получателю в data.

вот я учился с квотой работать:
http://forum.lissyara.su/viewtopic.php? ... ilit=quota

Re: exim размер почтового ящика или квоты

Добавлено: 2009-10-12 7:42:21
kmb
В первой ссылке какой-то внешний скрипт, не хочется ничего такого использовать.
Траспорт траспортом, но на переменные maildir_tag и т.д. экзим ругается.
Третья ссылка, там речь идёт о размере входящих сообщений, мне это не надо.

Re: exim размер почтового ящика или квоты

Добавлено: 2009-10-12 8:14:05
dikens3
kmb писал(а):Траспорт траспортом, но на переменные maildir_tag и т.д. экзим ругается.[/quota]Это не переменная, а опция транспорта.
kmb писал(а):Третья ссылка, там речь идёт о размере входящих сообщений, мне это не надо.
Там пример работы mysql и квоты. Вот еще ссылка как работать с квотой, обрати внимание на трансопрт mysql_delivery:
http://forum.lissyara.su/viewtopic.php?f=20&t=8490

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

mysql_delivery:
  driver = appendfile
  check_string = ""
  create_directory
  delivery_date_add
  directory = ${lookup mysql{SELECT CONCAT("/var/mail/exim/", maildir) FROM mailbox WHERE username='${local_part}@${domain}'}}
  directory_mode = 770
  envelope_to_add
  maildir_use_size_file
  group = mail
  maildir_format
  maildir_tag = ,S=$message_size
  message_prefix = ""
  message_suffix = ""
  mode = 0600

  quota = ${lookup mysql{SELECT quota FROM mailbox WHERE username='${local_part}@${domain}'}{${value}M}}
  quota_warn_message = "\
  To: $local_part@$domain\n\
  From: postmaster@$domain\n\
  Subject: Your maildir is going full\n\
  This message is automaticaly gnerated by your mail server.\n\
  This means, that your mailbox is 80% full. If you would \n\
  override this limit new mail would not be delivered to you!\n\n\
  Please, clean your mailbox."
  quota_warn_threshold = 80%
  return_path_add

Вот список переменных:
http://www.lissyara.su/?id=1211#11.9

Re: exim размер почтового ящика или квоты

Добавлено: 2009-10-12 9:56:39
kmb

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

2009-10-12 10:55:53 Exim configuration error in line 711 of /usr/local/etc/exim/configure:
  option "maildir_use_size_file" unknown