我需要向 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 地图)