Глобальные настройки.
Пред. | Глава 3. Конфигурация. | След.

## Глобальные настройки.

Корневым узлом конфигурации является `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-file

  Задаёт имя т.н. pid-файла - текстового файла в котором будет записан числовой идентификатор процесса `manjary`. При нормальном завершении процесса pid-файл удаляется. Если атрибут `overwrite` установлен в `1` и pid-файл на момент запуска уже существует - он будет перезаписан. Если значение узла пустое, используется имя файла по-умолчанию (его можно найти в лог-файле). По-умолчанию, если узел не задан, файл создаваться не будет.

logging/file

  Полное имя лог-файла. Если путь не указан, лог-файл будет создан в директории где находится исполняемый файл.

logging/screen

  Переключатель. Указывает, следует ли выводить записи на консоль. По-умолчанию: yes.

logging/level

  Уровень детализации лог-файла. От 1 (наименьший) до 5 (самый подробный). По-умолчанию: 4.

logging/history

  Количество лог-файлов в ротации. Когда нужно начать новый файл, текущий `file.ext` переименовывается в `file`-000.ext, перед этим старый `file`-000.ext переименовывается в `file`-001.ext и т.д., самый старый файл удаляется. По-умолчанию: `0`.

  Ротация может быть произведена принудительно в любой момент времени, для этого необходимо выполнить `manjary -k rotate`, на платформе `OS/2` также можно послать сигнал `ALRM` процессу `manjary`.

logging/size-max

  Максимальный размер лог-файла. Когда достигается это значение, выполняется ротация лог-файлов. Если `size-max` установлено в `0`, ротация будет происходить каждый раз при переходе на новые сутки, а формат имён лог-файлов в ротации будет следующим: `file-`YYYYMMDD`.ext`, где `YYYY` - год, `MM` - месяц, `DD` - день месяца. По-умолчанию: 0.

logging/tail

  Количество последних записей которые будут сохраняться в памяти для получения внешними сервисами в реальном времени. По-умолчанию: 1000.

name-resolution

  Данное дерево XML описывает систему доменных имён (DNS). По-умолчанию, если дерево не указано, используются системные настройки.

  use-hosts-first

    Переключатель, задающий когда будет просматриваться файл `hosts` - до обращения к серверу DNS или после, если имя или адрес IP не найдены.

  domain

    Имя домена по-умолчанию.

  server

    Один или несколько узлов `server` задают адреса IP серверов DNS.

threads

  Число параллельных нитей обслуживающих активные соединения. Если через соединение принимается очередной блок данных, отправляются данные или выполняется запрос, это занимает отдельную нить. Когда запрос выполнен и нет данных для немедленной отправки, нить переходит к обслуживанию следующего соединения или ожидает активности на других соединениях. По-умолчанию: `5`.

threads-max

  Максимальное число нитей. Если все нити заняты, для выполнения очередной операции создаётся новая. Общее количество нитей ограничивается значением данного узла. Неиспользуемые нити завершаются после некоторого тайм-аута, пока их количество не снизится до значения указанного в `threads`. По-умолчанию: `16`.

SSL-...

  Эти узлы описывают файлы сертификата и приватного ключа, а также устанавливают минимальную допустимую версию протокола SSL. Установленные здесь значения будут использоваться для всех хостов не изменяющих их явно.

module-dir

  Если узел задан, его значение указывает директорию в которой находятся подключаемые модули. По-умолчанию модули будут загружаться из директории в которой находится исполняемый файл.

load-module

  Множество узлов указывающих какие модули следует загружать. Значения узлов - имена файлов модулей. Каждый модуль имеет заданное имя (не путать с именем файла модуля). Конфигурации модулей находятся в узлах с именами module-`XXXXX`, где `XXXXX` - имя модуля.

  Таблица 3.1. Имена модулей и их файлов.

  Имя модуля | Загружаемый файл | Дерево XML конфигурации
  --- | --- | ---
  Mail | `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

Пред. | Наверх | След.
Глава 3. Конфигурация. | Начало | <module-Mail>