Мне нужно указать имя сервера ретрансляции в моем файле конфигурации sendmail. Однако это имя сервера можно настроить через другую систему / приложение.
В случае изменения мне нужно изменить имя сервера в этом файле и перезапустить sendmail.
Кроме того, у меня нет возможности компилировать файл sendmail.mc каждый раз, когда он изменяется.
Можно ли попросить sendmail прочитать / включить другой файл для имени сервера. Этот файл будет содержать имя сервера, который был настроен в системе?
что-то вроде: include ("./ severname.conf");
где servername.conf будет содержать имя сервера, на который необходимо выполнить ретрансляцию.
Является ли это возможным?
Умный хост - это макрос $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.
Вы можете использовать маршрут по умолчанию в таблице рассылки вместо смарт-хоста - см. ОСОБЕННОСТЬ (таблица рассылки). С ним будут консультироваться / использовать перед смарт-хост => он заменит смарт-хост.
Запись в файле mailertable для маршрута по умолчанию («одна точка» в качестве ключа):
. relay:smart-host.example.net
Sendmail использует версию файла, скомпилированную с использованием makemap
программа. Нет перезапуска sendmail
демон необходим после перекомпиляции makemap
.
Как это проверить:
sendmail -C/etc/mail/sendmail-test.cf -d60.5 -bv recipient@example.net
-C file
- использовать альтернативный файл конфигурации
-d60.5
- включить поиск по карте отслеживания (включая карту в почтовой таблице)