
我需要向我的 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 使用使用程式編譯的檔案版本makemap
。sendmail
重新編譯後無需重新啟動守護程式makemap
。
如何測試:
sendmail -C/etc/mail/sendmail-test.cf -d60.5 -bv [email protected]
-C file
- 使用替代設定檔
-d60.5
- 開啟追蹤地圖尋找(包括 mailertable 地圖)