квоты dovecot ???

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
diversunt
ефрейтор
Сообщения: 58
Зарегистрирован: 2007-12-02 20:43:13
Контактная информация:

квоты dovecot ???

Непрочитанное сообщение diversunt » 2008-05-15 12:22:06

Всем привет.
Поставил связку Exim+MySQL+Dovecot и захотел я пользователям зарезать ящики, а то место на машинке мало, попробывал сделать вот так http://forum.lissyara.su/viewtopic.php? ... ota#p40424 тока я не понял, как патч прикрутить, чето по мануалу смотрел раздела этого не нашёл(как ставить патч), гугление тоже не помогло, могите ссылочками на чтиво али советом...
Конфиг соответственно вот:

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

#!/bin/sh
# Конфиг dovecot. Начат 2006-05-26 в 16:15

# сразу предупреждаю - перевод дался реально очень тяжело,
# у автора своеобразная манера писать комменты, прям как у меня :)
# посему прошу неточности не в комментах к статье выкладывать, а 
# на форуме http://forum.lissyara.su/viewforum.php?f=8

# Директория где храняться данные на время выполнения
# (временная чтоль, тогда почему не /tmp?)
base_dir = /var/run/dovecot/

# Протоколы по которым обслужиаем клиентов:
#  imap imaps pop3 pop3s
protocols = imap pop3

 # IP или имя хоста на котором будем слушать
 # На данный момент не поддерживается задание нескольких адресов,
 # единственный вариант - указать звёздочку (*) чтобы слушать все
 # адреса ([::] - для IPv6)
 
 # Для задания специфических портов для некоторых сервисов то это
 # надо конфигурить в секции протоколов, примерно так:
 #   protocol imap {
 #     listen = *:10143
 #     ssl_listen = *:10943
 #     ..
 #   }
 #   protocol pop3 {
 #     listen = *:10100
 #     ..
 #   }
listen = *
 
# Отключить команду LOGIN и все другие plaintext аутентификации если
# SSL/TLS не используется. (совместимо с LOGINDISABLED). Отметтьте, что
# 127.*.*.* и IPv6 ::1 адреса считаются безопасными, и установки этого пункта
#  не влияют на соединение с них.
disable_plaintext_auth = no

# Убивать все IMAP и POP3 процессы при остановке главного процесса dovecot
# Если поставить "no" то можно обновлять (видимо - реконфигурить) dovecot
# без принудительного закрытия открытых клиентских подключений (может быть
# проблемой - если обновление из-за безопасности).
# Надо учесть, что после того как убит мастер-процесс, клиентские процессы
# не могут писать в лог (так что, происходящее, останется неизвестным).
shutdown_clients = yes

## Logging
##

# Использовать указанный тут файл вместо syslog(). Может быть заюзан 
# /dev/stderr для логгинга. (Только /dev/stderr!)
#log_path = /var/log/dovecot.log

# Для информационных сообщений юзайте этот файл, вместо дефолтового
#info_log_path = /var/log/dovecot_auth.log

# Префикс для каждой линии записываемой в syslog. Коды % прредставлены
# в формате strftime(3).
log_timestamp = "%b %d %H:%M:%S "


# Средства (немогу подобрать адекватный перевод для слова "facility", в
# таких фразах) syslog используемые при ведении логов через syslog.
# Если по каким-то причинам не хочется использовать стандартное "mail",
# можно использовать local0...local7.
syslog_facility = mail


## SSL settings
##

# IP or host address where to listen in for SSL connections. Defaults
# to above if not specified.
#ssl_listen =

# Disable SSL/TLS support.
ssl_disable = yes

# PEM кодированый X.509 SSL/TLS сертификат и секретный ключ. Они открываются
# до понижения рутовых привилегий, поэтому сохраните ключевой файл
# с доступом тока для root. Включенный скрипт doc/mkcert.sh может быть
# использован для генерации самоподписанного сертификата, тока не
# забудте обновить домены в dovecot-openssl.cnf
#ssl_cert_file = /etc/ssl/certs/dovecot.pem
#ssl_key_file = /etc/ssl/private/dovecot.pem

# Если ключевой файл защищён паролем, то его надо написать тут. Как
# альтернатива - запуск dovecot с параметром '-p'.
#ssl_key_password =

# Файл содержащий авторити (центры подписывающие сертификаты). обычно не нужен.
#ssl_ca_file =

# Запрос клиента на посыл (?) сертификата.
#ssl_verify_client_cert = no

# Как часто регенерить файл с параметрами SSL. Это весьма нагружающий CPU
# процесс. Значение - в часах, 0 отключает регенерацию файла вообще.
#ssl_parameters_regenerate = 168

# Цифры используемые в SSL
#ssl_cipher_list = ALL:!LOW

# Показывать уровень протокола ошибок SSL.
#verbose_ssl = no


## Login processes
##

# <doc/wiki/LoginProcess.txt>

# Директория где аутентификационный процесс размещает UNIX сокеты
# которые требудтся для процесса логина. Сокеты создаются от суперпользователя,
# поэтому можно не беспокоится насчёт прав. При старте dovecot всё
# содержимое этой директории удаляется.
login_dir = /var/run/dovecot/login

# `chroot`ить процесс аутентификации и авторизации в login_dir.
# Очень неплохая идея - ибо этот процесс работает от рута.
# http://wiki.dovecot.org/Rootless
login_chroot = yes

# Юзер использующийся для процесса логина. При установке из
# портов создаётся новый юзер - dovecot, причём не создав его не
# хочет ставиться. Ненавижу такие инсталляторы и людей их пишуших.
# В конце-концов мне видней нужен ли мне такой юзер и какого я буду
# использовать для этого процесса.
# Этому юзеру не нужен доступ к почте, он занимается тока
# контролем доступа к авторизации пользователя.
# http://wiki.dovecot.org/UserIds
login_user = dovecot

# Максимальный размер процесса, в мегабайтах. Если Вы не используете
# login_process_per_connection, то вероятно необходимо увеличить
# это значение.
login_process_size = 64

# Каждый логин должен быть обработан своим собственным процессом ('yes'), 
# или один процесс может обрабатывать несколько соединений ('no'). 'yes' более
# секьюрно, особенно если включено SSL/TLS. 'no' быстрее работает, ибо нет
# необходимости создавать процесс на каждое соединение.
login_process_per_connection = yes

# Число запускаемых процессов логина. Если 'login_process_per_connection'
# равно 'yes', то это число свободных процессов ожидающих подключения
# пользователей.
login_processes_count = 3

# Максимальное число запускаемых процессов авторизации. Точное число процессов
# обычно находится в 'login_processes_count', но когда много юзеров одновременно
# запускают процесс авторизации может быть запущено больше процессов. Для
# предотвращения 'fork-bombing' проверка производится раз в секунду,
# необходимо ли создать новые процессы - если все используются, то их число
# удваивается, до тех пор, пока не будет достигнут предел указанный тут.
# Эта опция работает только в случае если 'login_process_per_use' = 'yes'.
login_max_processes_count = 64

# Максимальное число соединений разрешённых в сосоянии 'логина'. Когда
# достигается указанный тут лимит, самые старые связи разрываются. Если
# 'login_process_per_connection' = 'no', то это число соединений процесса,
# таким образом максимальное число одновременно залогиненых юзеров равно
# 'login_processes_count' * 'max_logging_users'.
#login_max_logging_users = 128

# Приветственное сообщение для клиентов.
login_greeting = dovecot MUA ready

# Разделённый пробелами лист элементов, которые будут записаны в лог. Непустые
# элементы будут объединены через запятую.
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l %c

# Формат лога аутентификации. %$ содержит цепочку login_log_format_elements,
# %s содержит данные которые будут залогированы.
login_log_format = %$: %s


## Mailbox locations and namespaces
##

# Переменные окуружения MAIL для использования в случаях, когда явно они
# не заданы. Если оставить их незаданными то dovecot попробует установить
# их автоматически (описано в doc/mail-storages.txt). Есть несколько
# специальных переменных которыми можно пользоваться:
#
#   %u - имя пользователя
#   %n - `юзерская` часть в user@domain, тоже самое что и %u
#         если имя домена не задано
#   %d - `доменная` часть в user@domain, пустая, если домен не задан
#   %h - домашняя директория
#
# Полный список этих переменных можно посмотреть в 
# /usr/local/share/doc/dovecot/doc/variables.txt
#
# Пара примеров:
#   default_mail_env = maildir:/var/mail/%1u/%u/Maildir
#   default_mail_env = mbox:~/mail/:INBOX=/var/mail/%u
#   default_mail_env = mbox:/var/mail/%d/%n/:INDEX=/var/indexes/%d/%n
#   default_mail_env = mbox:/var/mail/%u
# Учтите, что формат этой директории должен совпадать с тем,
# который достанет exim из БД (что касается его формата в БД - это
# регулируется в конфиге postfixadmin), такчто либо думаем, как указывать,
# либо юзаем переменную %h - хомяк.
# Мне? больше нравиться такой вариант:
#default_mail_env = maildir:/var/mail/exim/%d/%n
# А в postfixadmin по дефолту такой:
#default_mail_env = 
# А можно и так (наверно даже правильней так, если прокатит - но я не
# попробовал - забыл, потому - это чистая теория:
#default_mail_env = maildir:/var/mail/exim/%h

# Location for users' mailboxes. This is the same as the old default_mail_env
# setting. The default is empty, which means that Dovecot tries to find the
# mailboxes automatically. This won't work if the user doesn't have any mail
# yet, so you should explicitly tell Dovecot the full location.
#
# If you're using mbox, giving a path to the INBOX file (eg. /var/mail/%u)
# isn't enough. You'll also need to tell Dovecot where the other mailboxes are
# kept. This is called the "root mail directory", and it must be the first
# path given in the mail_location setting.
#
# There are a few special variables you can use, eg.:
#
#   %u - username
#   %n - user part in user@domain, same as %u if there's no domain
#   %d - domain part in user@domain, empty if there's no domain
#   %h - home directory
#
# See doc/wiki/Variables.txt for full list. Some examples:
#
#   mail_location = maildir:~/Maildir
#   mail_location = mbox:~/mail:INBOX=/var/mail/%u
#   mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n
#
# <doc/wiki/MailLocation.txt>
#
#mail_location = 
mail_location = maildir:/home/mail/exim/%d/%n


# Если хотите установить несколько местоположений почтового ящика
# (тока нах это надо?) или хотите изменить NAMESPACE (это расширение
# описано в RFC 2342, оно позволяет одноимённой командой определить,
# какие пространства имён задействованы на сервере),
# то это можно сделать в следующих секциях:
#
# Можно иметь частные, раздёлённые и публичные пространства имён.
# Единственное различие между ними то, как dovecot объявляет их клиенту.
# Разделённые namespaces предназначены для пользовательских почтовых
# ящиков разделённых с другими пользователями, а публичные пространства
# имён для более глобально доступных почтовых ящиков (мне тяжело даются
# эти определения, поскольку я привык что один ящик - один юзер).
#
# ПОМНИТЕ: Если добавляете какой-либо namespaces, то дефолтовый namespace
# должен быть явно добавлен. т.е. default_mail_env не делает ничего, если
# если не задан namespace без указания местоположения. Дефолтовый
# namespace представляет собой namespace с пустой приставкой.
#namespace private {
   # Разделитель (сепаратор) в иерархии директорий. Желательно
   # использовать одинаковый во всём пространстве namespaces, иначе
   # некоторых клиентов начинает плющщить. '/' - хороший выбор.
   #separator = /
   # Префикс требуемый для получения доступа к этому пространству имён.
   # Должно быть разным во всех namespaces. Например "Public/".
   #prefix = 
   # Физическое расположение почтового ящика. Формат точно такой же как у
   # 'default_mail_env', являющейся дефолтовой для него.
   #location =
   # Может быть тока один INBOX, и тут определяется какой.
   #inbox = yes
   # Если namespace скрыто, это не показывается клиентам через NAMESPACE
   # и не показывается в ответах списка (LIST). Это полезно при
   # конвертировании с другого сервера с другим namespaces который
   # убрать (?) но всё ещё работаете с ним. Например, вы можете создать
   # скрытый namespaces с префиксом "~/mail/", "~%u/mail/" и "mail/".
   #hidden = yes
#}

# Разрешить доступ для для дополнительных групп процессов обработки почты.
# Обычно, разрешается группа "mail" для доступа к /var/mail чтобы
# создавать блокировки
mail_extra_groups = mail

# Разрешить клиентам полный доступ к файловой системе. В этом случае,
# не выполняется никаких проверок доступа, тока штатные проверки ОС
# UID/GID пользователя который работает. Это работает и с майлбокс и с
# майлдир, разрешая использовать в названиях почтовых ящиков полные пути,
# типа '/path/to/mbox/' или '~user/'. (Нах, такое щассье...)
mail_full_filesystem_access = no


## Mail processes
##

# Включить отладку для процесса обработки почты. Это может помочь понять,
# почему dovecot не может найти вашу почту (дословно переведено :))
mail_debug = yes

# Префикс логов для майл-процессов. Смотрите полный лист переменных
# в файле doc/variables.txt 
#mail_log_prefix = "%Us(%u): "

#-----------------------------------------------------------------------------------------------------
# Max. number of lines a mail process is allowed to log per second before it's
# throttled. 0 means unlimited. Typically there's no need to change this
# unless you're using mail_log plugin, which may log a lot.
#mail_log_max_lines_per_sec = 10
#-----------------------------------------------------------------------------------------------------

# Не использовать mmap() вообще. Такое требуется в случае, если индексы
# хранятся на расшаренной файловой системе (NFS или ещё какая).
#mmap_disable = no

# Не write() в mmaped файлы. Бывает необходимо для операционных систем
# которые используют для них свой кэш, например OpenBSD.
#mmap_no_write = no

#-----------------------------------------------------------------------------------------------------
# Rely on O_EXCL to work when creating dotlock files. The default is to use
# hard linking. O_EXCL makes the dotlocking faster, but it doesn't always
# work with NFS.
#dotlock_use_excl = no
# Don't use fsync() or fdatasync() calls. This makes the performance better
# at the cost of potential data loss if the server (or the file server)
# goes down.
#fsync_disable = no
#-----------------------------------------------------------------------------------------------------

# Метод блокировки индексных файлов. Альтернативы fcntl, flock и dotlock.
# Dotlocking юзает трюки, которые могут привети к большему дисковому
# вводу/выводу чем другие методы блокировки. Заметтьте, если юзаете NFS
# не забудте также изменить и значение mmap_disable setting!
#lock_method = fcntl

# Удалить все привилегии перед выполнением процесса обработки почты.
# Это, в основном, предназначено для отладки, в противном случае вы не
# получите core dumps. Есть небольшой риск безопасности при использовании
# единственного UID для нескольких пользователей, поскольку они могли бы
# ptrace() процессы других пользователей.
#mail_drop_priv_before_exec = no

# Показывать больше отладочной информации (заголвков процессов?). В настоящее
# время показывается имя пользователя и IP адрес. Это может быть полезно
# для того, чтобы увидеть кто фактически использует процессы IMAP
# (общие майлбоксы, или если один uid используется несколькими аккаунтами).
verbose_proctitle = yes

# Действительный диапазон UID для пользователей, дефолт от 500 и выше. Это
# необходимо для того, чтобы пользователи не смогли залогиниться как
# демоны или какие-либо системные пользователи. Запрет для логина `root`а
# жёстко забит в код `dovecot`а и не может быть разрешён даже если
# установить 'first_valid_uid' = 0.
first_valid_uid = 25
#last_valid_uid = 0

# Диапазон GID для юзеров, по дефолту не root или wheel. Юзерам имеющим
# недействительный GID как ID первичной группы вход запрёщён. Если пользователь
# входит в дополнительную группу с недействительным GID то эти группы
# не заданы (непонимаю эту фразу... Либо разрешено либо запрещено... х.з.)
first_valid_gid = 0
#last_valid_gid = 0

# Максимальное число запущенных mail процессов. Когда этот лимит достигнут,
# новые юзеры обламываются :)
#max_mail_processes = 1024

# Установить максимальный размер процесса (в Mb). Большинство памяти
# уходит на mmap()ing файлов, таким образом не должно быть проблем, даже
# если установить это число достаточно большим.
#mail_process_size = 256

# Максимальная разрешённая длинна для 'mail keyword name' (Директории, чтоль?)
# Проверяется тока при создении нового (нвой директории? надо проверить.)
#mail_max_keyword_length = 50

# Список директорий, с разделителями вида ':', в которых разрешается
#`chroot`инг для процессов обpаботки почты (т.е. /var/mail разрешает
# за`chroot`ить, до кучи, и /var/mail/foo/bar).
# Эти установки не затрагивают 'login_chroot' или 'auth_chroot' переменные.
# АХТУНГ: никогда не добавляйте директории где локальные пользователи
# имеют право что-то менять, иначе могут подсунуть эксплоит и получить рута.
# Обычно так делается если пользователи не имеют шелл-доступа.
#valid_chroot_dirs =  

# Дефолтовая `chroot` директория для процесса обработки почты. Это
# может быть перекрыто настройками пользователя (из БД пользователей)
# давая /./ в домашней директории пользователя.
# (т.е. /home/./user chroot`ится в /home). Необходимо отметить что реальной
# необходимости чрутить пользователей нету - т.к. dovecot не разрешит юзерам
# получить доступ к файлам вне их домашней директории.
#mail_chroot = 


## Mailbox handling optimizations
##

# Лист полей, разделённых пробелами для первоначального сохранения
# в файл кэша. На данный момент разрешены следующие поля:
#
#  flags, date.sent, date.received, size.virtual, size.physical
#  mime.parts, imap.body, imap.bodystructure
#
# Разные IMAP-клиенты работают по разному, и извлекают выгоду из различных
# кэшируемых областей. Некоторые клиенты не умеют ими пользоваться вообще.
# Излишнее кэширование приводит к бесполезным операциям дискового
# ввода-вывода.
#
# Dovecot пытается автоматически выяснить что хочет клиент и сохраняет
# тока это. Однако первые несколько заходов клиента ещё не известно чё
# клиент хочет, и кэширование не оптимально. Если известны потребности
# клиентов, то можно попробовать выставить эти поля вручную. Если
# клиенты, фактически, не будут их использовать, то в итоге Dovecot 
# удалит их.
#
# Вообще, лучше тут ничё не трогать. Ибо то, на чём можно выиграть,
# обычно, непримечательно, и думаешь на это в последнюю очередь.
#mail_cache_fields = 

# Разделённый пробелами список полей которые Dovecot никогда не должен
# сохранять в кэше. Пригодится в случае если надо съэкономить место
# на диске в ущерб скорости работы.
#mail_never_cache_fields =

# Минимальное число почтовых сообщений в ящике до обновления кэш-файла
# Позволяет оптимизировать поведение Dovecot в работе с диском, засчёт
# уменьшения операций записи, но увеличения числа операций чтения.
#mail_cache_min_mail_count = 0

# Когда выполняется команда IDLE, почтовый ящик проверяется время от
# времени, чтобы обнаружить новые письма, или ещё какие изменения.
# Эта опция отвечает за минимальное время между проверками. Однако
# Dovecot может использовать `dnotify` и `inotify` в линухах чтобы
# ответить немедленно после изменения.
#mailbox_idle_check_interval = 30

# Сохранять почту с CR+LF вместо LF (добавляется перевод каретки). Это
# уменьшает загрузку CPU при отдаче почты клиентам, но немного увеличиват
# размер размеры файлов, и соответственно дисковый ввод-вывод (При большом
# объёме почты цифра может оказаться достаточно существенной). Также,
# если другие программы шаряться по почтовым ящикам, то могут быть
# проблемы c неверной обработкой дополнительного CRs.
#mail_save_crlf = no


## Maildir-specific settings
##

# По дефолту команда LIST возвращает все записи в maildir начинающиеся
# с точки. Включение этой опции заставляет dovecot возвращять тока
# директории. Это делает stat() для каждого вхождения, и вызывает больше
# дискового ввода-вывода.
# (Для систем устанавливающих dirent->d_type, эта опция свободна и так
# всегда, независимо от того, что тут установлено.)
#maildir_stat_dirs = no

# Копировать почту в другие директории используя "жёсткие ссылки". Это
# намного быстрее чем реальное копирование файла. Это проблематично
# лишь в случае, если что-то (программа, например, какая-то) изменяет
# файлы в одной директории, но необходимо чтобы во всех других они
# они остались неизменными. На данный момент неизвестен MUA, который
# изменял бы файлы непосредственно. Протокол IMAP также требует чтобы
# файлы не изменялись.
# Если нужен прирост производительности - включите эту опцию.
#maildir_copy_with_hardlinks = no

#--------------------------------------------------------------------------------------------------------
# When copying a message, try to preserve the base filename. Only if the
# destination mailbox already contains the same name (ie. the mail is being
# copied there twice), a new name is given. The destination filename check is
# done only by looking at dovecot-uidlist file, so if something outside
# Dovecot does similar filename preserving copies, you may run into problems.
# NOTE: This setting requires maildir_copy_with_hardlinks = yes to work.
#maildir_copy_preserve_filename = no
#--------------------------------------------------------------------------------------------------------

## mbox-specific settings
##

# Какой метод блокировки почтового ящика использовать. Доступны четыре вида
# блокировок:
#  dotlock: создаётся <mailbox>.lock файл. Это самый старый и самый
#           безопасный метод для NFS. Если хотите использовать
#           директорию /var/mail/ то надо дать юзерам доступ
#           к этой директории.
#  fcntl  : Используйте это, по возможности. Работает и с NFS если
#           используется демон lockd.
#  flock  : Возможно существует не во всех системах. не работает с NFS.
#  lockf  : Возможно существует не во всех системах. не работает с NFS.
#
# Вы можете использовать неодин метод блокировки; если так и делаете,
# то надо их тут объявить, и избежать тупиковой ситуации (deadlocks),
# если несколько методов блокировки использует и другой MTAs/MUAs.
# Некоторые ОС не позволяют одновременное использование некоторых блокировок.
#mbox_read_locks = fcntl
#mbox_write_locks = dotlock fcntl

# Максимальное время ожидания блокировки перед прерыванием (отменой).
#mbox_lock_timeout = 300

# Если существует `dotlock` (блокировчный файл) но майлбокс никогда
# не модифицировлся, удалять блокировку через указанное время
#mbox_dotlock_change_timeout = 120

# Когда майлбокс неожиданно изменяется, то его необходимо полностью
# прочитать, чтобы найти все изменения. Если майлбокс большой, то на это
# может уйти много времени. Ввиду того, что чаще всего изменения - это
# новая почта, то быстрей всего было бы прочитать тока новые мессаги.
# Если разрешена эта опция ('yes') то dovecot так и делает, если что
# перечитывая весь mbox-файл, если происходит что-то неожиданное.
# Единственная причина поставить 'no' - если другой MUA меняет флаги
# сообщений и dovecot не заметит этого сразу.
# Отметтьте, что полная синхронизация сделана на команды:
# SELECT, EXAMINE, EXPUNGE и CHECK 
#mbox_dirty_syncs = yes

# Похоже на предыдущую опцию - mbox_dirty_syncs, но при установке полная
# синхронизация не делается даже по командам SELECT, EXAMINE,
# EXPUNGE или CHECK. Если эта опция установлена, то значение
# предыдущей - mbox_dirty_syncs - игнорируется.
#mbox_very_dirty_syncs = no

# Задержка записи хеадеров майлбокса до полной синхронизации записей
# (команды EXPUNGE and CHECK когда закрывается майлбокс). Особенно
# полезно для POP3, - там клиенты часто удаляют всю почту. Обратная
# сторона медали - это то, что изменения не сразу видны другому MUA.
#mbox_lazy_writes = yes

# Если размер майлбокса меньше, чем указанное тут значение (kB), не
# создавать индексные файлы. Если файл индекса существует, то он
# продолжает читаться но не обновляется (тока какой тогда смысл?)
#mbox_min_index_size = 0


## dbox-specific settings
##

# Максимальный размер файла dbox (в kB) с которым работает ротации.
#dbox_rotate_size = 2048

# Минимальный размер файла dbox (в kB) до ротации
# (перекрывается dbox_rotate_days)
#dbox_rotate_min_size = 16

# Максимальный возраст dbox файла в днях до ротации. День всегда начинается
# с полуночи, т.о. 1 = сегодня, 2 = вчера, и т.д. 0 = нет проверок.
#dbox_rotate_days = 0

## IMAP specific settings
##

protocol imap {
  # Местоположение исполняемого файла авторизации.
  #login_executable = /usr/local/libexec/dovecot/imap-login

  # Местоположение исполняемого файла IMAP. Изменение этого позволит
  # выполнить другие программы до запуска процесса imap.
  #
  # Это записало бы сырые логи (rawlogs) в ~/dovecot.rawlog/ директорию:
  #   mail_executable = /usr/local/libexec/dovecot/rawlog  /usr/local/libexec/dovecot/imap
  #
  # Это добавило бы gdb в процесс imap и писало бы обратную трассировку
  # в файлы /tmp/gdbhelper.*
  #   mail_executable = /usr/local/libexec/dovecot/gdbhelper /usr/local/libexec/dovecot/imap
  #
  #mail_executable = /usr/local/libexec/dovecot/imap

  # Максимальная длинна команды (командной линии) IMAP, в байтах. Некоторые
  # клиенты генерят очень длинные команды при работе с большими 
  # почтовыми ящиками. Если в ответе сервера Вы получите
  # "Too long argument" или "IMAP command line too large" то это
  # это значение необходимо будет увеличить.
  #imap_max_line_length = 65536

  # Поддержка динамически загружаемых плагинов. mail_plugins - список
  # плугинов разделённый пробелами
  mail_plugins = quota #trash
  #mail_plugin_dir = /usr/local/lib/dovecot
  #mail_plugins = 
  #mail_plugin_dir = /usr/local/lib/dovecot/imap

  # Посылать возможности IMAP в приветственном сообщении. Это избавляет
  # клиентов от необходимости запрашивать это в команде CAPABILITY, таким
  # образом экономится один запрос. Однако многие клиенты не понимают этого,
  # и всё равно делают запрос CAPABILITY всегда.
  #login_greeting_capability = no

  # Override the IMAP CAPABILITY response.
  #imap_capability = 

  # Обработка клиентских ошибок:
  #   delay-newmail:
  #     Посылать EXISTS/RECENT уведомления о новой почте только в качестве
  #     ответа на NOOP и CHECK команды. Некоторые почтовые клиенты 
  #     игнорирубт их, например OSX Mail. Outlook Express вообще плющит,
  #     и он может показать сообщение об ошибке "Message no longer in server".
  #     Заметтьте, что шестой оутглюк (OE6) всё ещё выдаёт ошибку если 
  #     синхронизация стоит "Headers Only" (тока заголовки).
  #   outlook-idle:
  #     Outlook и Outlook Express никогда не прерывают команду IDLE, и если
  #     почты небыло полчаса Dovecot закрывает соединение. В общем, это
  #     правильно, но оутглюк не восстанавливает соединение самостоятельно,
  #     и в итоге не видно - пришла ли новая почта.
  #   netscape-eoh:
  #     Netscape 4.x вылетает если заколовки сообщения не заканчиваются
  #     пустой линией "end of headers". Обычно, она есть во всех сообщениях,
  #     но тем не менее производится проверка, и линия добавляется, если
  #     её нету. Это сделано только для команды FETCH BODY[HEADER.FIELDS..]
  #     Кстати, согласно RFC этого делать не надо :)
  #   tb-extra-mailbox-sep:
  #     При типе хранилища 'mbox' (майлбокс), почтовый ящик может содержать
  #     либо почту, либо субмайлбоксы (подпапки, короче) - но не то и
  #     другое одновременно. Thunderbird разделяет их, вынуждая сервер
  #     принять '/' в имени майлбокса за название почтового ящика.
  # Лист, разделённый пробелами. (не забудте убрать перевод строки,
  # экранированный '/' - dovecot его не поймёт... а жаль...)
  imap_client_workarounds = delay-newmail outlook-idle netscape-eoh tb-extra-mailbox-sep
}

  
## POP3 specific settings
##

protocol pop3 {
  # Местоположение исполняемого файла pop3-авторизации.
  #login_executable = /usr/local/libexec/dovecot/pop3-login

  # Местоположение исполняемого файла POP3.
  #mail_executable = /usr/local/libexec/dovecot/pop3

  # Не пробовать выявить сообщения, старые или просмотренные при
  # помощи POP3 сессий. Это нужно чтобы уменьшить дисковый ввод/вывод.
  # При работе с 'maildir' это не перемещает файлы из 'new/' в 'cur/'
  # c 'mbox' не пишутся статусные заголовки.
  #pop3_no_flag_updates = no

 # Поддержка команды LAST с существующими старыми POP3 спеками, но
  # удалёной в новых сборках. Некоторые клиенты всё ещё используют это.
  # Включение этой опции заставляет команду RSET очистить все '\Seen'
  # флаги сообщений.
  #pop3_enable_last = no

  # Если почтовое сообщение имеет хеадер 'X-UIDL', то использовать
  # его в качестве почтового 'UIDL'.
  #pop3_reuse_xuidl = no

  # Оставлять почтовый ящик залоченым во время POP3 сессии.
  #pop3_lock_session = no
  
  # Используемый формат POP3 UIDL. Можно использовать следующие переменные:
  #
  #  %v - Mailbox UIDVALIDITY
  #  %u - Mail UID
  #  %m - Сумма MD5 для всех заголовков почтового ящика в hex (тока для mbox)
  #  %f - filename (maildir only)
  #
  # Для совместимости UIDL с другими POP3 серверами, используйте:
  #  UW's ipop3d         : %08Xv%08Xu
  #  Courier version 0   : %f
  #  Courier version 1   : %u
  #  Courier version 2   : %v-%u
  #  Cyrus (<= 2.1.3)    : %u
  #  Cyrus (>= 2.1.4)    : %v.%u
  #  Older Dovecots      : %v.%u
  #
  # Отметьте, что у Outlook 2003 проблемы с форматом %v.%u который
  # являлся дефолтовым форматом Dovecot, так что при пересборке лучше это
  # учесть. %08Xu%08Xv - надо предварительно сохранить.
  #
  # Отметтьте, в настоящее время это должно быть установлено явно, т.к.
  # прежния установки по-умолчанию были не самыми лучшими, но и изменить
  # их было нельзя, не переустанавливая приложение.
  # Во всех новых инсталляциях будет %08Xu%08Xv
  #
  pop3_uidl_format = %08Xu%08Xv

  # POP3 формат строки логоута:
  #  %t - число TOP команд
  #  %p - число байт посланных клиенту в результате команды TOP
  #  %r - число команд RETR
  #  %b - число байт посланных клиенту в результате команды RETR
  #  %d - число удалённых сообщений
  #  %m - число сообщений (до удаления)
  #  %s - размер майлбокса в мегабайтах (до удаления (сообщений, видимо :)))
  #pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s

  # Поддержка динамически загружаемых плагинов. mail_plugins - список
  # плагинов для загрузки, разделённый пробелами
  #mail_plugins = 
  mail_plugins = quota
  #mail_plugin_dir = /usr/local/lib/dovecot/pop3

  # Обработка некоторых клиентских ошибок:
  #   outlook-no-nuls:
  #     Outlook и Outlook Express зависают, если сообщение содержит NUL
  #     символы. Эта установка заменяет их на символы 0x80.
  #   oe-ns-eoh:
  #     Outlook Express и Netscape Mail прерываются, если потеряна линия
  #     конца заголоков. эта опция шлёт её, если она потеряна.
  # Список, разделённый пробелами.
  pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}


## LDA specific settings
##

protocol lda {
  # Куда слать письма про превышение квоты
  postmaster_address = root@domain.ru
  mail_plugins = quota

  # Hostname to use in various parts of sent mails, eg. in Message-Id.
  # Default is the system's real hostname.
  #hostname = 

  # Support for dynamically loadable plugins. mail_plugins is a space separated
  # list of plugins to load.
  #mail_plugins = 
  #mail_plugin_dir = /usr/local/lib/dovecot/lda

  # Binary to use for sending mails.
  #sendmail_path = /usr/lib/sendmail
  #sendmail_path = /usr/sbin/sendmail

  # UNIX socket path to master authentication server to find users.
  #auth_socket_path = /var/run/dovecot/auth-master
  #путь к сокету
  auth_socket_path = /var/run/dovecot/auth-master
}

## Authentication processes
##

# Расположение исполняемого файла
#auth_executable = /usr/local/libexec/dovecot/dovecot-auth

# Установить максимальный размер процесса, в мегабайтах.
#auth_process_size = 256

# Кэш аутентификации, в килобайтах. 0 - отключено.
# Заметтьте, что bsdauth, PAM и vpopmail требуют чтобы cache_key был
# задан для использования кэширования. Также надо заметить, что сейчас
# кэш авторизации не очень хорошо пашет, если используется много 
# passdbs (баз данных паролей?) с теми же самыми (одинаковыми?) именами в них.
#auth_cache_size = 0
# Время жизни, в секундах, для кэшированных данных. По истечании этого
# времени записи из кэша не используются, как исключение - если тока
# БД вернёт внутреннюю ошибку.
#auth_cache_ttl = 3600

# Разделённый пробелами лист элементов идентификаторов аутентификационных
# механизмов SASL, которые необходимы (я сам эту фразу нифига не понял :))).
# Можно оставить пустым, если нет необходимости в поддержке нескольких
# идентификаторов. Многие клиенты используют лишь первый, из перечисленных
# тут, поэтому ставьте дефолтовый первым.
#auth_realms =

# Дефолтовый realm/domain для использования если домен явно не задан. Это
# используется и для SASL и для добавления @domain к имени пользователя
# в плайнтекст логинах.
#auth_default_realm = 

# Список разрешённых символов в имени пользователя. Если в username содержатся
# неперечисленные тут символы, то авторизация автоматически будет неудачной.
# Это - просто дополнительная проверка того, что пользователь не сможет заюзать
# потенциальную брешь в защите, при работе с базами SQL/LDAP. Если хотите
# разрешить все символы, то оставьте это поле пустым.
#auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@

# Автозамена символов в имени пользователя, прежде чем по нему будет
# выполнен поиск в базе данных. Значение содержит ряд - что -> во что
# будет преобразовано. Например "#@/@" означает, что '#' и '/' будут
# преобразованы в '@'.
#auth_username_translation =

# Форматирование имени пользователя, до поиска по нему в БД. Тут можно
# использовать стандартные переменные, типа %Lu сделает все буквы маленькими,
# %n удалит домен, если он задан, или "%n-AT-%d" заменит '@' на "-AT-".
# Это делается после того, как auth_username_translation произвело изменения.
#auth_username_format =

# Если нужно разрешить вход главным пользователям (master users) по
# специфическому имени пользователя (master username) (т.е. не юзая
# поддержку SASL для этого) то вы можете определить символ радлелителя в
# этом пункте. Формат, в таком случае:<username><separator><master username>.
# UW-IMAP использует "*" в качестве разделителя, и это хороший выбор.
#auth_master_user_separator =

# Имя пользователя для логина при помощи механизма ANONYMOUS SASL
#auth_anonymous_username = anonymous

# Много отладочных логов. Полезго для определения, почему
# авторизация не пашет.
#auth_verbose = no

# Более подробный лог для отладки.
# Показываются квери к SQL.
auth_debug = yes

# В случае несовпадения пароля записать пароль в лог, и используемую схему,
# таким образом проблема может быть отлажена. Регулируется auth_debug = yes.
#auth_debug_passwords = yes

# Максимальное число работающих процессов авторизации. Они используются для
# выполнения блокирования passdb и userdb запростов (т.е. MySQL и PAM). 
# Они автоматически создаются и убиваются по мере надобности.
#auth_worker_max_count = 30

# Host name to use in GSSAPI principal names. The default is to use the
# name returned by gethostname().
#auth_gssapi_hostname =

# Kerberos keytab для использования механизма GSSAPI. Будет использовать 
# системное значение по умолчанию (обычно, /etc/krb5.keytab) если не задано.
#auth_krb5_keytab = 

auth default {
  # Список требуемых механизмов аутентификации, разделённый пробелами
  #   plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi
  
  mechanisms = plain

  # Добавлено для работы deliver от dovecot
   socket listen {
     master {
       path = /var/run/dovecot/auth-master
       mode = 0600
       user = mailnull
       #group = mail
     }
   }
  
  
  
  #
  # База данных паролей используемая для проверки пароля пользователя.
  # (и только для этого). Можно использовать несколько баз данных паролей
  # и пользователей. Это нужно, например, если используются одновременно и
  # системные пользователи (/etc/passwd) и виртуальные, чтобы не дублировать
  # системных в виртуальную БД.
  #
  # http://wiki.dovecot.org/Authentication
  #
  # Добавляя master=yes в passdb вы делаете passdb списком "master users",
  # кто может войти под чьим-либо ещё именем. Если не используется PAM,
  # вы, вероятно, хотите, чтобы юзер искался в passdb если она реально
  # существует. Это можно сделать, добавив pass=yes в главную passdb
  #
  # http://wiki.dovecot.org/MasterPassword

  # Юзеры могут быть временно заблокированы, если добавить БД паролей с
  # deny=yes. Если юзер будет найден в этой ДБ то аутентификация будет неудачной.
  # Эта БД должна определяться до других, чтобы она была проверена первой.
  # Например:

  #passdb passwd-file {
  # Файл содержащий имена пользователей, по одному на строку:
  #args = /etc/dovecot.deny
  #deny = yes
  #}

  # PAM аутентификация. Предпочтена, сейчас, на большинстве систем. 
  # Отметтьте, что PAM может лишь проверить, верен ли пароль, но не может
  # использоваться в качестве userdb. Если вы не хотите использовать отдельную
  # пользовательскую БД (обычно passwd), вы можете использовать статическую
  # userdb.
  # ПОМНИТЕ: Вам нужен файл '/etc/pam.d/dovecot' созданном для PAM
  # аутентификации, чтобы это работало.
  #passdb pam {
    # [blocking=yes] [session=yes] [setcred=yes]
    # [cache_key=<key>] [<service name>]
    #
    # By default a new process is forked from dovecot-auth for each PAM lookup.
    # Setting blocking=yes uses the alternative way: dovecot-auth worker
    # processes do the PAM lookups.
    #
    # session=yes делает Dovecot открытым(?) и немедленно закрывает сессию PAM.
    # Некоторые PAM плугины требуют этого для работы, например pam_mkhomedir.
    #
    # setcred=yes makes Dovecot establish PAM credentials if some PAM plugins
    # need that. They aren't ever deleted though, so this isn't enabled by
    # default.
    #
    # cache_key может использоваться для кэширования аутентификационных данных
    # PAM (auth_cache_size должен быть задан). По дефолту это не допускается,
    # потому как модули PAM могут сделать все проверки, кроме проверки пароля,
    # типа проверки IP адреса. Dovecot не может узнать об этих проверках без
    # посторонней помощи. cache_key - просто список переменных который
    # соответствует данным кэшируемым для использования.
    # Примеры:
    #   %u - Имя пользователя должно совпадать. Обычно достаточно только этого.
    #   %u%r - Имя пользователя и удалённый IP адрес должны совпадать.
    #   %u%s - Имя пользователя и сервис (т.е. IMAP, POP3) должны совпадать.
    # 
    # Если имя сервиса "*", используется имя сервиса для обслуживания, например
    # pop3 или imap (/etc/pam.d/pop3, /etc/pam.d/imap).
    #
    # Примеры:
    #   args = session=yes *
    #   args = cache_key=%u dovecot
    #args = dovecot
  #}

  # System users (NSS, /etc/passwd, or similiar)
  # In many systems nowadays this uses Name Service Switch, which is
  # configured in /etc/nsswitch.conf. <doc/wiki/AuthDatabase.Passwd.txt>
  #passdb passwd {
    # [blocking=yes] - See userdb passwd for explanation
    #args = 
  #}

  # /etc/passwd или similar, используется getpwnam(). Сейчас PAM.
  # Shadow passwords for system users (NSS, /etc/shadow or similiar).
  # Deprecated by PAM nowadays.
  # <doc/wiki/PasswordDatabase.Shadow.txt>
  #passdb shadow {
    # [blocking=yes] - See userdb passwd for explanation
    #args = 
  #}
	
  # BSD аутентификация. Используется, по крайней мере, в OpenBSD.
  # PAM-like authentication for OpenBSD.
  # <doc/wiki/PasswordDatabase.BSDAuth.txt>
  #passdb bsdauth {
    # [cache_key=<key>] - See cache_key in PAM for explanation.
    #args =
  #}

  # passwd-подобный файл с указанным местоположением
  # passwd-like file with specified location
  # <doc/wiki/AuthDatabase.PasswdFile.txt>
  #passdb passwd-file {
    # Path for passwd-file
    #args = 
  #}

  # checkpassword исполняемая аутентификация
  # ОТМЕТЬТЕ: Вероятно, вы захотите использовать вместе с "userdb prefetch".
  # <doc/wiki/PasswordDatabase.CheckPassword.txt>
  #passdb checkpassword {
    # Path for checkpassword binary
    #args = 
  #}

  # SQL database 
  passdb sql {
    # Путь к конфигурационному файлу SQL, велено смотреть дополнительную
    # инфу в файле doc/dovecot-sql.conf, тока такого файла нету :))) - не
    # инсталлится. В исходниках он есть. Там и смотрим.
    args = /usr/local/etc/dovecot-sql.conf
  }

  # LDAP database <doc/wiki/AuthDatabase.LDAP.txt>
  #passdb ldap {
    # путь для конфигурационного файла LDAP, примеры в  doc/dovecot-ldap.conf
    #args = 
  #}

  # vpopmail аутентификация
  #passdb vpopmail {
    # [cache_key=<key>] - Смотреть cache_key в PAM, для понимания.
    #args =
  #}

  # БД пользователей, определяющая где расположена почта, и какие IDs
  # групп и пользователей имеют к ней доступ. Для single-UID
  # конфигурации используйте "static".
  #
  # http://wiki.dovecot.org/Authentication
  # http://wiki.dovecot.org/VirtualUsers
  #
  # /etc/passwd или similar, используется getpwnam().
  # В настоящее время, во многих системах, используется Name Service Switch,
  # сконфигуренное в /etc/nsswitch.conf.
  # <doc/wiki/AuthDatabase.Passwd.txt>
  #userdb passwd {
    # [blocking=yes] - By default the lookups are done in the main dovecot-auth
    # process. This setting causes the lookups to be done in auth worker
    # proceses. Useful with remote NSS lookups that may block.
    # NOTE: Be sure to use this setting with nss_ldap or users might get
    # logged in as each others!
    #args = 
  #}

  # passwd-подобный файл с указанием местоположения
  # <doc/wiki/AuthDatabase.PasswdFile.txt>
  #userdb passwd-file {
    # путь к passwd-файлу
    #args =
  #}

  # Статические настройки, сгенерённые из шаблона
  #userdb static {
    # Шаблон для параметров настройки. CМожет вернуть что-то, что userdb
    # обычно возвращает, т.е.: uid, gid, home, mail, nice
    #
    # Пара примеров:
    #
    #  args = uid=500 gid=500 home=/var/mail/%u
    #  args = uid=500 gid=500 home=/home/%u mail=mbox:/home/%u/mail nice=10
	#
    # If you use deliver, it needs to look up users only from the userdb. This
    # of course doesn't work with static because there is no list of users.
    # Normally static userdb handles this by doing a passdb lookup. This works
    # with most passdbs, with PAM being the most notable exception. If you do
    # the user verification another way, you can add allow_all_users=yes to
    # the args in which case the passdb lookup is skipped.
    #
    #args =
  #}

  # SQL database <doc/wiki/AuthDatabase.SQL.txt>
  userdb sql {
    # Путь к конфигурационному файлу SQL, велено смотреть дополнительную
    # инфу в файле doc/dovecot-sql.conf, тока такого файла нету :))) - не
    # инсталлится. В исходниках он есть. Там и смотрим.
    args = /usr/local/etc/dovecot-sql.conf
  }

  # LDAP database <doc/wiki/AuthDatabase.LDAP.txt>
  #userdb ldap {
    # путь для конфигурационного файла LDAP, примеры в  doc/dovecot-ldap.conf
    #args = 
  #}

  # vpopmail <doc/wiki/AuthDatabase.VPopMail.txt>
  #userdb vpopmail {
  #}

  # "prefetch" (типа упреждающего чтения, чтоли :)) пользовательской БД,
  # что passdb уже достал всю необходимую информацию, и нет необходимости
  # делать ещё один поиск (запрос) в БД. Это работает и с SQL и с LDAP БД,
  # смотрите примеры их (для этих БД) конфигурационных файлов как это сделать.
  # http://wiki.dovecot.org/AuthSpecials
  #userdb prefetch {
  #}

  # Юзер от которого будет работать процесс. Этому юзеру нужен лишь доступ
  # к БД паролей. Только shadow и pam аутентификации реально нужны права рута,
  # работать, остальным можно подсунуть любого пользователя.
  # Заметтьте, что этому пользователю не нужен доступ к почте.
  # Этот юзер был задан выше (который по почте должен шариться :)).
  user = root

  # Директория где chroot`ится процесс. Многие аутентификации не работают,
  # если установить эту опцию, и вообще не имеет смысла это делать если для
  # аутентификации используется пользователь root.
  # Отметтьте, что valid_chroot_dirs не нужен для этой опции.
  #chroot = 

  # Число создаваемых аутентификационных процессов
  #count = 1

  # Требовать действительный клиентский SSL сертификат, или
  # аутентификация будет неудачной.
  #ssl_require_client_cert = no

  # Извлечь (взять) юзернэйм из клиентского SSL сертификата, ипользуя 
  # X509_NAME_oneline() который использует тему Distinguished Name.
  #ssl_username_from_cert = no

  # Пример!!!
  # It's possible to export the authentication interface to other programs:
  #socket listen {
    #master {
      # Master socket provides access to userdb information. It's typically
      # used to give Dovecot's local delivery agent access to userdb so it
      # can find mailbox locations.
      #path = /var/run/dovecot/auth-master
      #mode = 0600
      # Default user/group is the one who started dovecot-auth (root)
      #user = 
      #group = 
    #}
    #client {
      # The client socket is generally safe to export to everyone. Typical use
      # is to export it to your SMTP server so it can do SMTP AUTH lookups
      # using it.
      #path = /var/run/dovecot/auth-client
      #mode = 0660
    #}
  #}
}

# Возможно экспортировать интерфейс аутентификации в другие программы,
# например, сервер SMTP который поддерживает Dovecot. Клиентский сокет
# обрабатывает фактическую аутентификацию, - вы можете передать ему имя
# пользователя и пароль и он вернёт OK или отказ. Таким образом можно
# довольно безопасно кому угодно обращаться к нему. Мастер сокет используется:
# a) для запроса, если клиент был успешно аутентифицирован
# b) для поиска в userdb.

# Слушающие сокеты будут созданы мастер-процессом Dovecot с использованием
# настроек из этого авторизационнго раздела
#auth default_with_listener {
#  mechanisms = plain
#  passdb pam {
#  }
#  userdb passwd {
#  }
#  socket listen {
#    master {
#      path = /var/run/dovecot/auth-master
#      # АХТУНГ: Предоставление недоверенным юзерам доступа к мастер-сокету 
#      # влечёт риск в безопасности, поэтому не давайте им слишком широкие
#      # (большие) полномочия!
#      #mode = 0600
#      # Деволтовые user/group от кого запускается dovecot-auth (root)
#      #user = 
#      #group = 
#    }
#    client {
#      path = /var/run/dovecot/auth-client
#      mode = 0660
#    }
#  }
#}
# Предполагается, что сокеты уже запущены, мастер-процесс Dovecot
# тока обрабатывает попытки соединится с ними. Им не нужны никакие
# настройки, кроме как путь до мастер-сокета, поскольку конфигурация сделана
# в другом месте.
# Отметьте, клиентские сокеты должны существовать в login_dir.
#auth external {
#  socket connect {
#    master {
#      path = /var/run/dovecot/auth-master
#    }
#  }
#}

## Dictionary server settings
##

# Dictionary can be used by some plugins to store key=value lists.
# Currently this is only used by dict quota backend. The dictionary can be
# used either directly or though a dictionary server. The following dict block
# maps dictionary names to URIs when the server is used. These can then be
# referenced using URIs in format "proxy:<name>".

dict {
  #quota = mysql:/etc/dovecot-dict-quota.conf 
}


## Plugin settings
##

plugin {
  # Here you can give some extra environment variables to mail processes.
  # This is mostly meant for passing parameters to plugins. %variable
  # expansion is done for all values.

  # Quota plugin. Multiple backends are supported:
  #   dirsize: Find and sum all the files found from mail directory.
  #            Extremely SLOW with Maildir. It'll eat your CPU and disk I/O.
  #   dict: Keep quota stored in dictionary (eg. SQL)
  #   maildir: Maildir++ quota
  #   fs: Read-only support for filesystem quota
  #quota = maildir

  # ACL plugin. vfile backend reads ACLs from "dovecot-acl" file from maildir
  # directory. You can also optionally give a global ACL directory path where
  # ACLs are applied to all users' mailboxes. The global ACL directory contains
  # one file for each mailbox, eg. INBOX or sub.mailbox.
  #acl = vfile:/etc/dovecot-acls

  # Convert plugin. If set, specifies the source storage path which is
  # converted to destination storage (mail_location) when the user logs in.
  # The existing mail directory is renamed to <dir>-converted.
  #convert_mail = mbox:%h/mail
  # Skip mailboxes which we can't open successfully instead of aborting.
  #convert_skip_broken_mailboxes = no

  # Trash plugin. When saving a message would make user go over quota, this
  # plugin automatically deletes the oldest mails from configured mailboxes
  # until the message can be saved within quota limits. The configuration file
  # is a text file where each line is in format: <priority> <mailbox name>
  # Mails are first deleted in lowest -> highest priority number order
  #trash = /etc/dovecot-trash.conf

  # Lazy expunge plugin. Currently works only with maildirs. When a user
  # expunges mails, the mails are moved to a mailbox in another namespace
  # (1st). When a mailbox is deleted, the mailbox is moved to another namespace
  # (2nd) as well. Also if the deleted mailbox had any expunged messages,
  # they're moved to a 3rd namespace. The mails won't be counted in quota,
  # and they're not deleted automatically (use a cronjob or something).
  #lazy_expunge = .EXPUNGED/ .DELETED/ .DELETED/.EXPUNGED/
  # Тут можно задать некторые дополнительные переменные окружения для
  # майл-процессов. В основном это предназначено для параметров плагинов.
  # Расширение %variable сделано для всех значений.

  # Quota плагин. Много чё поддерживается:
  #   dirsize: Находит и сумирует все файлы в майл-директории
  #   dict: Сохранение квоты в словаре (т.е. SQL)
  #   maildir: Maildir++ квота
  #   fs: Поддержка квоты в ФС только-для-чтения (а как это?)
  quota = maildir:storage=1M
  quota_warning = storage=10%% /cnf/quota.sh 




  # ACL плагин. Конец vfile читает ACLs из "dovecot-acl" файла, в почтовой
  # директории. Также можно задать произвольный путь к глобальному каталогу ACL
  # где лежат ACL для применения на почтовые ящики всех пользователей.
  # Глобальный каталог ACL содержит один файл для каждого почтового ящика,
  # т.е. INBOX или sub.mailbox.
  #acl = vfile:/etc/dovecot-acls

  # Convert плугин. Если установлено, задаёт исходный путь, преобразованный
  # к месту нахождения (default_mail_env).
  #convert_mail = mbox:%h/mail
}

Квота стоит 1 мег для теста, на самом деле по pop письма ходят в 1,5 мб без проблем и криков в логи
тока вот при перезапуске dovecot говорит следущее:

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

[root@router /var/log]# /usr/local/etc/rc.d/dovecot restart
Stopping dovecot.
Waiting for PIDS: 65767.
Starting dovecot.
ILoading modules from directory: /usr/local/lib/dovecot/imap
IModule loaded: /usr/local/lib/dovecot/imap/lib10_quota_plugin.so
IEffective uid=65534, gid=65534, home=
Это получается модуль квот тока на imap подключился а где же pop3???
Лучше два раза прочитать HandBook, чем 2 раза покраснеть задав глупый вопрос!

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.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/

Al
ст. прапорщик
Сообщения: 501
Зарегистрирован: 2007-10-18 13:42:48
Откуда: Тверь
Контактная информация:

Re: квоты dovecot ???

Непрочитанное сообщение Al » 2008-05-15 15:17:28

если я правильно понял,то на сайте обещают корректную поддержку квот в довкоте только с версии 1.1. Кстати,для работы квот надо чтоб довкот был настроен как LDA.Кстати,там же был патч для 1.0.x

neptunix
рядовой
Сообщения: 19
Зарегистрирован: 2008-05-06 14:12:52

Re: квоты dovecot ???

Непрочитанное сообщение neptunix » 2008-05-15 16:56:24

Al писал(а):если я правильно понял,то на сайте обещают корректную поддержку квот в довкоте только с версии 1.1. Кстати,для работы квот надо чтоб довкот был настроен как LDA.Кстати,там же был патч для 1.0.x
Вроде правильно.

Такая же ерунда. У меня тоже dovecot плюёт на квоту и спокойно доставляет почту (deliver) и сохраняет в папочки (imap).

Попробую еще в конфиге экзима прописать квоту там, где он передает письмо через dovecot_deliver

Al
ст. прапорщик
Сообщения: 501
Зарегистрирован: 2007-10-18 13:42:48
Откуда: Тверь
Контактная информация:

Re: квоты dovecot ???

Непрочитанное сообщение Al » 2008-05-15 17:10:49

Al писал(а):Попробую еще в конфиге экзима прописать квоту там, где он передает письмо через dovecot_deliver
давай. если получится- отпишись,как

Аватара пользователя
diversunt
ефрейтор
Сообщения: 58
Зарегистрирован: 2007-12-02 20:43:13
Контактная информация:

Re: квоты dovecot ???

Непрочитанное сообщение diversunt » 2008-05-16 7:10:15

А как вообще патчи прикручивать то??? чето ни где найти не могу:(
Лучше два раза прочитать HandBook, чем 2 раза покраснеть задав глупый вопрос!

Al
ст. прапорщик
Сообщения: 501
Зарегистрирован: 2007-10-18 13:42:48
Откуда: Тверь
Контактная информация:

Re: квоты dovecot ???

Непрочитанное сообщение Al » 2008-05-16 14:27:50

Там про квоты и патч
http://wiki.dovecot.org/Quota/New

Аватара пользователя
diversunt
ефрейтор
Сообщения: 58
Зарегистрирован: 2007-12-02 20:43:13
Контактная информация:

Re: квоты dovecot ???

Непрочитанное сообщение diversunt » 2008-05-26 10:28:44

Блин зашел скачал quota-warning.patch теперяче как его наложить???

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

[root@router /home/patch]# patch < quota-warning.patch
Hmm...  Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff -ru dovecot-1.0.rc27.orig/src/plugins/quota/quota-plugin.c dovecot-1.0.rc27/src/plugins/quota/quota-plugin.c
|--- dovecot-1.0.rc27.orig/src/plugins/quota/quota-plugin.c     2007-03-06 17:34:47.000000000 +0100
|+++ dovecot-1.0.rc27/src/plugins/quota/quota-plugin.c  2007-03-31 22:18:55.000000000 +0200
--------------------------
File to patch:
 
я так пологаю ему нада указать исходники для патчиния, а так как я ставил из портов то исходники лежат в /usr/ports/distfiles/dovecot-1.0.10.tar.gz
При этом в патче версия "dovecot-1.0.rc27.orig" а у меня стоит "dovecot-1.0.10". Это что получается что мне надо будет ручками все распаковывать патчить потом запоковывать, а потом еще он скажет что файл архива не тот и начнет качать заново с портов.
Тут возникает вопрос, а пропатчить порт можно ну например так

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

make patch < /home/patch/quota-warning.patch
:?
Лучше два раза прочитать HandBook, чем 2 раза покраснеть задав глупый вопрос!

neptunix
рядовой
Сообщения: 19
Зарегистрирован: 2008-05-06 14:12:52

Re: квоты dovecot ???

Непрочитанное сообщение neptunix » 2008-05-29 15:13:23

В общем чтобы квоты заработали надо просто в конфиге dovecot-а включить плагин quota для LDA и quota-imap для IMAP :)
Работать будет конечно только если для доставки локальной почты используется deliver.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: квоты dovecot ???

Непрочитанное сообщение Alex Keda » 2008-05-29 20:18:58

neptunix писал(а):В общем чтобы квоты заработали надо просто в конфиге dovecot-а включить плагин quota для LDA и quota-imap для IMAP :)
Работать будет конечно только если для доставки локальной почты используется deliver.
ну так покажи выдержки из конфига
Убей их всех! Бог потом рассортирует...

neptunix
рядовой
Сообщения: 19
Зарегистрирован: 2008-05-06 14:12:52

Re: квоты dovecot ???

Непрочитанное сообщение neptunix » 2008-05-30 10:07:36

lissyara писал(а):
neptunix писал(а):В общем чтобы квоты заработали надо просто в конфиге dovecot-а включить плагин quota для LDA и quota-imap для IMAP :)
Работать будет конечно только если для доставки локальной почты используется deliver.
ну так покажи выдержки из конфига
Легко:

в dovecot.conf:

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


  ## dovecot-lda specific settings
  ##
   socket listen {
     master {
       path = /var/run/dovecot/auth-master
       mode = 0600
       user = mail # User running Dovecot LDA
       #group = mail # Or alternatively mode 0660 + LDA user in this group
     }
   }


protocol imap {
...
  mail_plugins = quota imap_quota
...
}

 protocol lda {
...
  mail_plugins = quota
...
}

plugin {
...
quota = maildir
...
}
В exim.conf
в секции routers

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

dovecot_user:
  driver = accept
  condition = ${lookup mysql{SELECT `goto` FROM \
  `alias` WHERE \
  `address`='${quote_mysql:$local_part@$domain}' OR \
  `address`='${quote_mysql:@$domain}'}{yes}{no}}
  transport = dovecot_delivery
в секции transport

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

dovecot_delivery:
  driver = pipe
  command = /usr/lib/dovecot/deliver -d $local_part@$domain
  message_prefix =
  message_suffix =
  delivery_date_add
  envelope_to_add
  return_path_add
  log_output
После этого у меня квоты успешно заработали

omega
рядовой
Сообщения: 18
Зарегистрирован: 2007-08-07 15:01:27

Re: квоты dovecot ???

Непрочитанное сообщение omega » 2008-05-30 17:21:33

все равно не получается :( файл dovecot-sql.conf править надо?

И если можно, можно весь конфиг плз. exim, dovecot, dovecot-sql можно на почту admin***telemost.dp.ua

raver
проходил мимо

Re: квоты dovecot ???

Непрочитанное сообщение raver » 2008-06-06 10:58:55

Вот так делются per-user квоты в dovecot. Весь инет перерыл как их сделать, на сайте самого dovecot вообще не было написано как это сделать. Так как общая квота меня не устраивала. и Кстати без всяких патчей.

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

cat /usr/local/etc/dovecot-sql.conf 

driver = mysql
connect = host=/var/run/mysql/mysql.sock dbname=mail user=mail password=123456
default_pass_scheme = MD5
user_query = SELECT concat('maildir:',mailhome) as mail, mailhome as home, uid, gid, concat('maildir:storage=', quota,':ignore=Trash') AS quota FROM users WHERE userid = '%n@%d' and active ='Y'
password_query = SELECT userid as user, crypt as password, domain as domain FROM users WHERE userid = '%n@%d' and active='Y'

cat /usr/local/etc/dovecot.conf 

#POP3 specific settings

protocol pop3 {
  login_executable = /usr/local/libexec/dovecot/pop3-login
  mail_executable = /usr/local/libexec/dovecot/pop3
  pop3_no_flag_updates = no
  pop3_enable_last = no
  pop3_reuse_xuidl = no
  pop3_lock_session = yes
  pop3_uidl_format = %08Xu%08Xv
  pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s
  mail_plugins = quota
  mail_plugin_dir = /usr/local/lib/dovecot/pop3
  pop3_client_workarounds = outlook-no-nuls
}

protocol lda {
  postmaster_address = postmaster@dom.ru
  hostname = mail.dom.ru
  mail_plugins = cmusieve quota
  mail_plugin_dir = /usr/local/lib/dovecot/lda
  sendmail_path = /usr/sbin/sendmail
  auth_socket_path = /var/run/dovecot/auth-master
}

#IMAP specific settings

protocol imap {
  login_executable = /usr/local/libexec/dovecot/imap-login
  mail_executable = /usr/local/libexec/dovecot/imap
  imap_max_line_length = 65536
  mail_plugins = quota imap_quota
  mail_plugin_dir = /usr/local/lib/dovecot/imap
  login_greeting_capability = yes
  imap_client_workarounds = outlook-idle
}

omega
рядовой
Сообщения: 18
Зарегистрирован: 2007-08-07 15:01:27

Re: квоты dovecot ???

Непрочитанное сообщение omega » 2008-06-08 16:15:31

все равно что-то не так. Входящие письма не считаются :(
хотя в отправленных считает

Al
ст. прапорщик
Сообщения: 501
Зарегистрирован: 2007-10-18 13:42:48
Откуда: Тверь
Контактная информация:

Re: квоты dovecot ???

Непрочитанное сообщение Al » 2008-06-11 14:03:24

В предыдущем листинге не совсем понял, а где задается размер квот?
В последнем, как я понимаю, в мускуле для каждого пользователя есть поле quota.

omega
рядовой
Сообщения: 18
Зарегистрирован: 2007-08-07 15:01:27

Re: квоты dovecot ???

Непрочитанное сообщение omega » 2008-06-11 15:24:28

вышел из ситуации другим путем.... настроил квоты через exim

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

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
    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_size_regex = S=(\d+)$
    quota_warn_threshold = 75%
    return_path_add



Mike
рядовой
Сообщения: 26
Зарегистрирован: 2008-06-23 12:07:21

Re: квоты dovecot ???

Непрочитанное сообщение Mike » 2008-06-25 10:32:39

2 omega
Сделал я как ты, но на квоты екзим никакого внимания...
Вот это что? {${value}M}} и quota_size_regex = S=(\d+)$
В базе какие-то изменения делать надо?

Mike
рядовой
Сообщения: 26
Зарегистрирован: 2008-06-23 12:07:21

Re: квоты dovecot ???

Непрочитанное сообщение Mike » 2008-06-26 10:24:04

Ёлки... ну неужели никак не побороть это квоты... :st: :-o

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

Re: квоты dovecot ???

Непрочитанное сообщение Morty » 2008-07-05 14:59:16

я тут решил попробовать на вкус эти самы квоты -)
частично работает...

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

pkg_info -Ix dov
dovecot-1.1.1       Secure and compact IMAP and POP3 servers
выдержки из конфига

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

protocol imap {
....
mail_plugins = quota imap_quota
....
}
protocol pop3 {
....
mail_plugins = quota
...
}
protocol lda {
  # Куда слать письма про превышение квоты
  postmaster_address = adm@dom.ua
  mail_plugins = quota
# сендмайл пришлось указать а то тупило гдето в др месте его искало
  sendmail_path = usr/sbin/sendmail
  # путь к сокету
  auth_socket_path = /var/run/dovecot/auth-master
}
# и в самом конце ....
plugin {
  quota = maildir
  quota_rule = *:storage=100M
  quota_warning = storage=80%% /usr/local/scripts/quota-warning %u@dom.ua
}
скрипт - чусвутю что кривой ...

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

cat /usr/local/scripts/quota-warning
#!/bin/sh
PERCENT=$1
echo "Your mailbox is now $PERCENT% full." | /usr/sbin/sendmail
собсно говоря с ним о проблема - не шлёт писма о превышении/достижении квоты.
ЗЫ: ядро с квтами собирать не надо с фc тоже ничего делать не нужно....
ЗЫЫ: скрины с раундкуба
Вложения
quot2.JPG
quot2.JPG (2.16 КБ) 5192 просмотра
quota1.JPG

Mike
рядовой
Сообщения: 26
Зарегистрирован: 2008-06-23 12:07:21

Re: квоты dovecot ???

Непрочитанное сообщение Mike » 2008-07-28 17:31:26

Слушай а как ты сделал, что в Раункубе отображается шкала заполнения, квоты... :unknown:
Я все конфиги перерыл, не нашел. Какая версия Раунда?

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

Re: квоты dovecot ???

Непрочитанное сообщение Morty » 2008-07-28 18:01:40

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

> pkg_version -v | grep roundc
roundcube-0.1.1_1,1                 =   up-to-date with port
>
ничего я с роундкубом не делал, само появилось :smile:

Mike
рядовой
Сообщения: 26
Зарегистрирован: 2008-06-23 12:07:21

Re: квоты dovecot ???

Непрочитанное сообщение Mike » 2008-07-30 18:42:58

Квоты в Раундкубе так и не отображаются, но зато письмо о скором превышении квоты приходит, правда от пользователя Mailnull, без темы и не отображается число перед знаком %, тоесть та квота которая указывается в конфиге давкота. Если письмо превышает лимит, то в папку не кладется, а сендеру приходит письмо с реджектом.
Вопрос, как заставить отображаться квоты и заставить слать письмо о скором превышении квоты от Mail delivery system и с темой Your quota....
Вот конфиги.
main.inc.php

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

<?php

$rcmail_config['default_host'] = 'localhost';

// TCP port used for IMAP connections
$rcmail_config['default_port'] = 143;

// IMAP auth type. Can be "auth" (CRAM-MD5), "plain" (PLAIN) or "check" to auto detect.
// Optional, defaults to "check"
$rcmail_config['imap_auth_type'] = check;

// Automatically add this domain to user names for login
// Only for IMAP servers that require full e-mail addresses for login
// Specify an array with 'host' => 'domain' values to support multiple hosts
$rcmail_config['username_domain'] = '';

// This domain will be used to form e-mail addresses of new users
// Specify an array with 'host' => 'domain' values to support multiple hosts
$rcmail_config['mail_domain'] = '';

// Path to a virtuser table file to resolve user names and e-mail addresses
$rcmail_config['virtuser_file'] = '';

$rcmail_config['virtuser_query'] = '';

$rcmail_config['smtp_server'] = 'localhost';

$rcmail_config['smtp_user'] = '%u';

$rcmail_config['smtp_pass'] = '%p';

// SMTP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or empty to use
// best server supported one)
$rcmail_config['smtp_auth_type'] = '';

$rcmail_config['smtp_helo_host'] = 'localhost';

$rcmail_config['language'] = 'ru';

// only list folders within this path
$rcmail_config['imap_root'] = '';

$rcmail_config['drafts_mbox'] = 'Drafts';

$rcmail_config['junk_mbox'] = 'Junk';

$rcmail_config['sent_mbox'] = 'Sent';

$rcmail_config['trash_mbox'] = 'Trash';

$rcmail_config['default_imap_folders'] = array('INBOX', 'Drafts', 'Sent', 'Junk', 'Trash');

$rcmail_config['mdn_requests'] = 0;

// Use this charset as fallback for message decoding
$rcmail_config['default_charset'] = 'ISO-8859-1';

// mime magic database
$rcmail_config['mime_magic'] = '/usr/share/misc/magic';

// end of config file
?> 
Лишнее убрал
quota-warning.sh

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

#!/bin/sh
PERCENT=$1
echo "Ваш почтовый ящик заполнен на $PERCENT%. 
Если он переполнится, Вы не сможете получать почту. 
Удалите ненужные письма." | /usr/sbin/sendmail "$USER"
dovecot.conf

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

quota = maildir
quota_rule = *:storage=50M
quota_rule2 = Trash:storage=50%%
quota_rule3 = Spam:storage=50%%
quota_warning = storage=80%% /usr/local/bin/quota-warning.sh
trash = /usr/local/etc/dovecot-trash.conf
Буду признателен за любые коментарии
P.S. ОЧЕНЬ нужно побыстрее поднять почтовик, на работе уже жмут... :(

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

Re: квоты dovecot ???

Непрочитанное сообщение Morty » 2008-07-30 19:08:14

может активировать плугин квоты для Имап в довекоте ?

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

protocol imap {
....
mail_plugins = quota imap_quota
....
}

Mike
рядовой
Сообщения: 26
Зарегистрирован: 2008-06-23 12:07:21

Re: квоты dovecot ???

Непрочитанное сообщение Mike » 2008-07-30 19:14:09

Да я нашел свою ошибку только что...
А все из за невнимательности...

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

protocol imap {
mail_plugins = quota imap_quota
}
Забыл написать imap_quota... :oops:
Но все же на счет скрипта отправки уведомления я даже не знаю куда смотреть.... :unknown:

Mike
рядовой
Сообщения: 26
Зарегистрирован: 2008-06-23 12:07:21

Re: квоты dovecot ???

Непрочитанное сообщение Mike » 2008-07-30 19:19:57

Кстати интересная ссылочка, у меня в два раза быстрей стала вебморда бегать
http://www.roundcube.ru/forum/lofiversi ... /t111.html

Mike
рядовой
Сообщения: 26
Зарегистрирован: 2008-06-23 12:07:21

Re: квоты dovecot ???

Непрочитанное сообщение Mike » 2008-07-31 16:00:48

нашел еще одну ошибку в Раундкубе. Может не по теме немного...
При нажатии на ссылке аттача в письме он открывает его содержимое. Тоесть зипы доки иксели и т.д.
в логах пишет вот такое

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

PHP Warning:  Cannot modify header information - headers already sent by (output started at /usr/local/www/roundcubemail/program/localization/ru/messages.inc:1) in /usr/local/www/roundcubemail/program/steps/mail/get.inc on line 112
В файлике /roundcubemail/program/localization/ru/messages.inc в первой строчке перед <?php стояли какие то 4 символа, подозреваю что кирилические, убрал и все заработало. Самое интересное, заглянул в єтот файлик в исходнике, там все нормально, их нет... :unknown:
Откуда они появились понять не могу...