Назад | Перейти на главную страницу

Расширение переменных Dovecot

Система: Debian Jessie

Я пытаюсь поместить переменную среды в конфигурацию sql, например:

password_query = SELECT userid AS user, crypt AS password, maildir as
userdb_home, 500 as userdb_uid, 500 as userdb_gid FROM local_account
WHERE userid = '%u' and mbox_host = '%{env:CLUSTERNAME}' \
    and ( ( imap_aktiv='1' and '%s'='imap' ) or ( pop_aktiv='1' and
'%s'='pop3' ) or ( sieve_aktiv='1' and '%s'='sieve' ) ) \
    and aktiv_abruf='1'

Моя переменная

%{env:CLUSTERNAME}

CLUSTERNAME устанавливается через / etc / default / dovecot. Я попытался установить для переменной конфигурации import_environment значение

TZ CLUSTERNAME

но это ничего не изменило.

Когда я выполняю это с помощью попытки входа в систему, я вижу следующее в выводе tcpflow:

SELECT userid AS user, crypt AS password, maildir as userdb_home, 508 as
userdb_uid, 503 as userdb_gid FROM local_account WHERE userid = 'te' and
mbox_host = 'env:CLUSTERNAME}' and ( ( imap_aktiv='1' and 'pop3'='imap'
) or ( pop_aktiv='1' and 'pop3'='pop3' ) or ( sieve_aktiv='1' and
'pop3'='sieve' ) ) and aktiv_abruf='1'

Так

%{env:CLUSTERNAME}

был проанализирован на

env:CLUSTERNAME}

что не то, что документ (http://wiki.dovecot.org/Variables), и кажется, что синтаксический анализатор каким-то образом воспринимает это как короткую переменную (удаляя% + {).

Любые намеки на то, что здесь может происходить / как я могу заставить его работать?

Для справки:

Проблема двоякая:

  1. / etc / default / dovecot не соблюдается файлом модуля systemd

  2. Расширение% {env: VAR} несколько ошибочно: если getenv (VAR) возвращает NULL, dovecot возвращается к стандартному раскрытию коротких переменных, которое пытается раскрыть% {. Это не удается по очевидным причинам.

Как исправить:

  1. Добавьте параметр среды в файл модуля, например:

    Environment=CLUSTERNAME=mail.mydomain.com

  2. Разрешить импорт переменной окружения в dovecot.conf:

    import_environment = CLUSTERNAME

  3. Использовать как

    %{env:CLUSTERNAME}