系统管理指南:网络服务

Procedure如何使用 sendmail.cf 的备用配置管理邮件传送

sendmail 的缺省配置中,客户机队列运行器必须能够将邮件提交给本地 SMTP 端口上的守护进程。如果该守护进程没有侦听 SMTP 端口,邮件将保留在队列中。要避免此问题,请执行以下任务。有关守护进程和客户机队列运行器的更多信息,以及要了解可能必须使用此备用配置的原因,请参阅sendmail 版本 8.12 中的配置文件 submit.cf

此过程可确保守护进程的运行仅用于接受来自本地主机的连接。

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 停止 sendmail


    # svcadm -t disable network/smtp:sendmail
    
  3. 复制要更改的配置文件。


    # cd /etc/mail/cf/cf
    
    # cp sendmail.mc myhost.mc
    
    myhost

    选择 .mc 文件的新名称。

  4. 编辑新配置文件(例如,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 地址的计算机上使用这些配置宏。


    1. (可选的)如果主机启用了 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 地址。


    2. (可选的)要查看主机是否启用了 IPv6 本地主机地址,请运行以下命令。


      # /usr/sbin/ifconfig -a

      如果启用了 IPv6,将显示以下类似输出。


      lo0: flags=2000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6> mtu 8252 index 1
      
                    inet6 ::1/128
  5. 使用 m4 生成配置文件。


    # /usr/ccs/bin/make myhost.cf
    
  6. 复制原始配置文件后,安装新配置文件。


    # cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.save
    
    # cp myhost.cf /etc/mail/sendmail.cf
    
  7. 重新启动 sendmail 服务。


    # svcadm enable network/smtp:sendmail