
Мне нужно указать имя сервера-ретранслятора в файле конфигурации 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)