sendmail.cf для чтения имени сервера из другого файла?

sendmail.cf для чтения имени сервера из другого файла?

Мне нужно указать имя сервера-ретранслятора в файле конфигурации sendmail. Однако это имя сервера можно настроить через другую систему/приложение.

В случае изменения мне нужно изменить имя сервера в этом файле и перезапустить sendmail.

Кроме того, у меня нет возможности компилировать файл sendmail.mc каждый раз, когда он изменяется.

Можно ли попросить sendmail прочитать/включить другой файл для имени сервера. Этот файл будет содержать имя сервера, которое было настроено в системе?

что-то вроде: include("./severname.conf");

где servername.conf будет содержать имя сервера, на который необходимо выполнить ретрансляцию.

Является ли это возможным?

решение1

Смарт-хост — это макрос $S, поэтому вам нужна последовательность команд, например:

cd /etc/mail
cp sendmail.cf sendmail.cf.old
sed -e 's/^DSold.host.name/DSnew.host.name/' sendmail.cf.old > sendmail.cf 

и затем перезапустите sendmail.

решение2

Вы можете использовать маршрут по умолчанию в mailertable вместо смарт-хоста — см.ФУНКЦИЯ(mailertable). Он будет проконсультирован/использовандосмарт-хост => он переопределит смарт-хост.

Запись файла mailertable для маршрута по умолчанию (ключ — «одна точка»):

.  relay:smart-host.example.net

Sendmail использует версию файла, скомпилированную с помощью makemapпрограммы. sendmailПосле перекомпиляции с помощью makemap.

Как это проверить:

sendmail -C/etc/mail/sendmail-test.cf -d60.5 -bv [email protected]

-C file- использовать альтернативный файл конфигурации
-d60.5- включить отслеживание поиска по карте (включая карту mailertable)

Связанный контент