@eli:通常不建议直接修改 sendmail.cf,因为它是由宏编译器生成的。
编辑 /etc/mail/sendmail.mc 以包含以下行:
define(`SMART_HOST',`mailrelay.example.com')dnl
修改sendmail.mc宏配置文件后,必须重新编译
生成 sendmail 配置文件。
# m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
并重启sendmail服务(Linux):
# /etc/init.d/sendmail restart
除了设置智能主机,您可能还想禁用名称解析配置,并可能将您的发送邮件转移到非标准端口,或禁用守护程序模式。
禁用名称解析
位于防火墙网络内或使用网络地址的服务器
转换 (NAT) 可能没有可用的 DNS 或 NIS 服务。这创造了
sendmail 的问题,因为它默认使用 DNS,如果不是
可用,您将在 mailq 中看到这样的消息:
host map: lookup (mydomain.com): deferred)
除非您准备设置适当的 DNS 或 NIS 服务,
sendmail 可以使用,在这种情况下你通常会配置 name
使用 /etc/hosts 文件进行解析。这是通过启用
'service.switch' 文件并按文件指定分辨率,如下所示:
1: 为 sendmail 启用 service.switch
编辑 /etc/mail/sendmail.mc 以包含以下行:
define(`confSERVICE_SWITCH_FILE',`/etc/mail/service.switch')dnl
2: 为文件配置 service.switch
创建或修改 /etc/mail/service.switch 以仅引用 /etc/hosts 作为名称
分辨率:
# cat /etc/mail/service.switch
hosts files
3:重新编译sendmail.mc并重启sendmail使该设置生效。
将 sendmail 转移到非标准端口,或禁用守护程序模式
默认情况下,sendmail 将侦听端口 25。您可能需要更改此端口
或出于各种原因完全禁用 sendmail 守护程序模式:
- 如果有禁止使用知名端口的安全策略
- 如果另一个 SMTP 产品/进程要在标准端口上的同一主机上运行
- 如果您根本不想通过 smtp 接收邮件,只需使用 sendmail 发送即可
1: 将 sendmail 转换为使用非标准端口。
编辑 /etc/mail/sendmail.mc 并修改该行中的“端口”设置:
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
例如,让 sendmail 使用端口 125:
DAEMON_OPTIONS(`Port=125,Addr=127.0.0.1, Name=MTA')
这将需要重新编译 sendmail.mc 并重新启动 sendmail。
2: 或者,完全禁用 sendmail 守护程序模式 (Linux)
编辑 /etc/sysconfig/sendmail 并将“DAEMON”设置修改为:
DAEMON=no
此更改需要重新启动 sendmail。