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

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

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