В других службах (например, httpd, supervisor, yum и т. д.) можно вносить изменения в конфигурацию, не изменяя основные файлы конфигурации (помещая файлы, например, в /etc/httpd/conf.d
, /etc/supervisor/conf.d
, yum.repos.d
, и т. д.).
Мне интересно, возможна ли аналогичная настройка для Postfix.
У меня есть скрипт настройки для почти автономного веб-приложения, которое включает необходимость настройки виртуального почтового ящика. Я бы предпочел не возиться напрямую с основными файлами postfix. Вместо этого я бы предпочел просто добавить файлы, которые postfix затем считывает для конфигурации.
Однако я не могу найти ничего, что обсуждало бы этот вопрос, и, похоже, встроенная конфигурация предполагает, что все конфигурации находятся в одном каталоге.
Я понимаю, что если бы мне удалось заставить это работать, мне все равно пришлось бы запускать postmap на дополнительных файлах, чтобы преобразовать их в файлы .db. Это нормально.
решение1
В целом,всепараметры конфигурации, определенные для postfix (см.человек 5 постконф) следует размещать в одном и только одном файле, $etcdir/postfix/main.cf
. Поэтому postfix не имеет в своей конфигурации какого-либо Include this file/directory
синтаксиса, как другое программное обеспечение, например, apache httpd, sudo и другие.
К счастью, вы всегда можете использовать внешний источник длянекоторые параметрыкак список виртуальных доменов, список виртуальных пользователей или где находится почтовый ящик пользователя. На самом деле, необычно жестко закодировать эту конфигурацию в main.cf
. Распространенной практикой является аутсорсинг такого рода информациитаблица, которая поддерживает постфикс, например, хэш-файл, таблица SQL или LDAP.
Пример конфигурации вmain.cf
virtual_mailbox_domains = hash:/etc/postfix/vdomain
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
...another configuration...