Корневым узлом конфигурации является server.
Конфигурация состоит из основной части и конфигураций модулей в
соответствующих узлах.
<server> <pid-file overwrite="0|1">filename</pid-file> <logging> <file>filename</file> <screen>Yes|No</screen> <level>N</level> <history>N</history> <size-max>bytes</size-max> <tail>N</tail> </logging> <name-resolution> <use-hosts-first>Yes|No</use-hosts-first> <domain>name</domain> <server>IP address</server> ... </name-resolution> <threads>N</threads> <threads-max>N</threads-max> <SSL-certificate-file>filename</SSL-certificate-file> <SSL-key-file>filename</SSL-key-file> <SSL-key-password>secret</SSL-key-password> <SSL-min-version>none|SSLv3|TLSv1|TLSv1.1|TLSv1.2|TLSv1.3</SSL-min-version> <module-dir>path</module-dir> <load-module>filename</load-module> ... <module-XXXXX>...</module-XXXXX> ... </server>
Узел name-resolution позволяет настроить подсистему
разрешения доменных имён. Если данный узел отсутствует - будут
использованы системные настройки.
Задаёт имя т.н. pid-файла -
текстового файла в котором будет записан числовой идентификатор
процесса manjary. При
нормальном завершении процесса pid-файл удаляется. Если атрибут
overwrite установлен в 1 и pid-файл на момент запуска уже
существует - он будет перезаписан. Если значение узла пустое,
используется имя файла по-умолчанию (его можно найти в лог-файле).
По-умолчанию, если узел не задан, файл создаваться не
будет.
Полное имя лог-файла. Если путь не указан, лог-файл будет создан в директории где находится исполняемый файл.
Переключатель. Указывает, следует ли выводить записи на консоль. По-умолчанию: yes.
Уровень детализации лог-файла. От 1 (наименьший) до 5 (самый подробный). По-умолчанию: 4.
Количество лог-файлов в ротации. Когда нужно начать новый
файл, текущий file.ext переименовывается в
file-000.ext, перед этим старый file-000.ext
переименовывается в file-001.ext и т.д., самый старый
файл удаляется. По-умолчанию: 0.
Ротация может быть произведена принудительно в любой момент
времени, для этого необходимо выполнить manjary -k
rotate, на платформе OS/2 также можно послать сигнал
ALRM процессу manjary.
Максимальный размер лог-файла.
Когда достигается это значение, выполняется ротация лог-файлов.
Если size-max установлено в 0, ротация будет происходить каждый раз при
переходе на новые сутки, а формат имён лог-файлов в ротации будет
следующим:
file-,
где YYYYMMDD.extYYYY - год,
MM - месяц,
DD - день месяца. По-умолчанию:
0.
Количество последних записей которые будут сохраняться в памяти для получения внешними сервисами в реальном времени. По-умолчанию: 1000.
Данное дерево XML описывает систему доменных имён (DNS). По-умолчанию, если дерево не указано, используются системные настройки.
Переключатель, задающий
когда будет просматриваться файл hosts
- до обращения к серверу DNS или после, если имя или адрес
IP не найдены.
Имя домена по-умолчанию.
Один или несколько узлов server задают
адреса IP серверов DNS.
Число параллельных нитей обслуживающих активные соединения.
Если через соединение принимается очередной блок данных,
отправляются данные или выполняется запрос, это занимает отдельную
нить. Когда запрос выполнен и нет данных для немедленной отправки,
нить переходит к обслуживанию следующего соединения или ожидает
активности на других соединениях. По-умолчанию: 5.
Максимальное число нитей. Если все нити заняты, для
выполнения очередной операции создаётся новая. Общее количество
нитей ограничивается значением данного узла. Неиспользуемые нити
завершаются после некоторого тайм-аута, пока их количество не
снизится до значения указанного в threads.
По-умолчанию: 16.
Эти узлы описывают файлы сертификата и приватного ключа, а также устанавливают минимальную допустимую версию протокола SSL. Установленные здесь значения будут использоваться для всех хостов не изменяющих их явно.
Если узел задан, его значение указывает директорию в которой находятся подключаемые модули. По-умолчанию модули будут загружаться из директории в которой находится исполняемый файл.
Множество узлов указывающих какие модули следует загружать.
Значения узлов - имена файлов модулей. Каждый модуль имеет
заданное имя (не путать с именем файла модуля). Конфигурации
модулей находятся в узлах с именами
module-XXXXX, где
XXXXX - имя модуля.
Таблица 3.1. Имена модулей и их файлов.
| Имя модуля | Загружаемый файл | Дерево XML конфигурации |
|---|---|---|
mail.dll | module-Mail | |
| SMTP | smtp.dll | module-SMTP |
| POP3 | pop3.dll | module-POP3 |
| IMAP | imap4.dll | module-IMAP |
| HTTP | http.dll | module-HTTP |
| SpamCheck | spamchk.dll | module-SpamCheck |
| Helpers | helpers.dll | module-Helpers |
| AB | ab.dll | module-AB |
| Sieve | sieve.dll | module-Sieve |
| poppassd | poppassd.dll | module-poppassd |
| BanIP | banip.dll | module-BanIP |
| SMTPWeasel | smtpwsl.dll | module-SMTPWeasel |