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 檔案條目(「單點」作為鍵):

.  relay:smart-host.example.net

Sendmail 使用使用程式編譯的檔案版本makemapsendmail重新編譯後無需重新啟動守護程式makemap

如何測試:

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

-C file- 使用替代設定檔
-d60.5- 開啟追蹤地圖尋找(包括 mailertable 地圖)

相關內容