为便于传入邮件和外发邮件的传输,sendmail 的新缺省配置使用了守护进程和客户机队列运行器。如果已禁用守护进程,则应执行以下任务。有关详细说明,请参阅sendmail 版本 8.12 中的配置文件 submit.cf。
在 sendmail 的缺省配置中,客户机队列运行器必须能够将邮件提交给本地 SMTP 端口上的守护进程。如果该守护进程没有侦听 SMTP 端口,邮件将保留在队列中。要避免此问题,请执行以下任务。有关守护进程和客户机队列运行器的更多信息,以及要了解可能必须使用此备用配置的原因,请参阅sendmail 版本 8.12 中的配置文件 submit.cf。
此过程可确保守护进程的运行仅用于接受来自本地主机的连接。
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
停止 sendmail。
# svcadm -t disable network/smtp:sendmail |
复制要更改的配置文件。
# cd /etc/mail/cf/cf # cp sendmail.mc myhost.mc |
选择 .mc 文件的新名称。
编辑新配置文件(例如,myhost.mc)。
在 MAILER() 行前添加以下行。
# cat myhost.mc .. FEATURE(`no_default_msa')dnl DAEMON_OPTIONS(`NAME=NoMTA4, Family=inet, Addr=127.0.0.1')dnl DAEMON_OPTIONS(`Name=MSA4, Family=inet, Addr=127.0.0.1, Port=587, M=E')dnl |
请在仅配置了 IPv4 地址的计算机上使用这些配置宏。
(可选的)如果主机启用了 IPv6 本地主机地址,请按如下所示编辑新配置文件。
在 MAILER() 行前添加以下行。
# cat myhost.mc .. FEATURE(`no_default_msa')dnl DAEMON_OPTIONS(`NAME=NoMTA4, Family=inet, Addr=127.0.0.1')dnl DAEMON_OPTIONS(`Name=MSA4, Family=inet, Addr=127.0.0.1, Port=587, M=E')dnl DAEMON_OPTIONS(`NAME=NoMTA6, Family=inet6, Addr=::1')dnl DAEMON_OPTIONS(`Name=MSA6, Family=inet6, Addr=::1, Port=587, M=E')dnl |
要添加这些配置宏,必须配置 IPv4 和 IPv6 地址。
(可选的)要查看主机是否启用了 IPv6 本地主机地址,请运行以下命令。
# /usr/sbin/ifconfig -a |
如果启用了 IPv6,将显示以下类似输出。
lo0: flags=2000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6> mtu 8252 index 1 inet6 ::1/128 |
使用 m4 生成配置文件。
# /usr/ccs/bin/make myhost.cf |
复制原始配置文件后,安装新配置文件。
# cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.save # cp myhost.cf /etc/mail/sendmail.cf |
重新启动 sendmail 服务。
# svcadm enable network/smtp:sendmail |