# 忽略错误提示 ignore errors chmod 0 /usr/lib/sendmail.old /usr/sbin/sendmail.old # 忽略错误提示 ignore errors ln -s /var/qmail/bin/sendmail /usr/lib ln -s /var/qmail/bin/sendmail /usr/sbin 注意: 创建 sendmail 的链接是很重要的, 即使不管以前的MTA, sendmail 命令也是一个会被很多程序调用来发送邮件的重要命令.
最后步骤是建立两个系统别名. 2.8.4. 建立系统别名 在所有 qmail 安装上面都要建立四个系统别名: | 别名 | 目的 | | postmaster | RFC 2821 标准要求, 指向邮件系统管理员(也就是你) | | mailer-daemon | 反弹邮件事实上的标准接收者 | | root | 转发特权用户, 根(root)用户的邮件给系统管理者 | | abuse | 事实上的邮件滥用(垃圾邮件)举报地址 |
建立这些系统别名, 取决于你想让这些邮件发送到哪里(一个本地用户或者一个远程地址)并且适当的创建一个.qmail 文件集合. 举个例子, 加入你想让本地用户 dave 接收发给系统管理员和邮件管理员的邮件, 就这么作: echo dave > /var/qmail/alias/.qmail-root echo dave > /var/qmail/alias/.qmail-postmaster ln -s .qmail-postmaster /var/qmail/alias/.qmail-mailer-daemon ln -s .qmail-postmaster /var/qmail/alias/.qmail-abuse chmod 644 /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-postmaster 在 INSTALL.alias 文件里面有更详细的细节. 2.8.5. 运行 qmail 如果依照上文, 你创建 /service 之后就停止了qmail, 你现在应该重新启动 qmail: qmailctl start 2.9. 测试安装 qmail 现在应该是正在运行的状态. 首先运行 qmailctl stat 来检验那些服务启动并运行中:(下面命令后部分为演示结果, 并不是必然如此的系统输出. 译者注) # qmailctl stat /service/qmail-send: up (pid 30303) 187 seconds /service/qmail-send/log: up (pid 30304) 187 seconds /service/qmail-smtpd: up (pid 30305) 187 seconds /service/qmail-smtpd/log: up (pid 30308) 187 seconds messages in queue: 0 messages in queue but not yet preprocessed: 0 所有的四个服务都应该是"up"(启动了)1秒钟以上. 如果不是这样, 你可能就是在写脚本的时候写错了一些东西或者你漏过了创建一个甚至多个必要的文件, 目录或者链接. 返回上面的安装指导, 一步一步的再检查一下你的工作. 你也可以下载并运行 inst_check 脚本, 在这里下载 http://lifewithqmail.org/inst_check. 举个例子: # sh inst_check ! /var/log/qmail has wrong owner, should be qmaill ...try: chown qmaill /var/log/qmail # 如果 inst_check 发现了问题, 解决问题后重新运行这个检查脚本. 当所有情况被判断为正确的时候, inst_check 将会报告: Congratulations, your LWQ installation looks good! readproctitle 程序维持着由svscan 管理的各个服务的错误消息的日志. 使用 ps 或者其他进程列表命令. 举个例子, 你可以看到类似下面这样的输出: # ps -efl | grep "service errors" | grep -v grep 000 S root 1006 1001 0 76 0 - 334 pipe_w Mar31 ? 00:00:00 readproctitle service errors: ...unable to start qmail-smtpd/run: exec format error # 这个例子里面, 问题出在 /service/qmail-smtpd/run 这个脚本的第一行--很有可能由于脚本文件是 DOS 格式 (DOS使用回车符-换行符结束一行的方式和Unix的仅仅用换行符方式不同). 有时候为了检验配置错误, 手动运行一下服务也会很有帮助的. 举个例子, 如果你的 qmail-smtpd/log 服务没有运行, 那么执行下面的命令: cd /service/qmail-smtpd/log svc -d . ./run 如果没有错误, 输入一行字符然后按回车键 如果还是没有错误, 输入CTRL-D (文件结束符) 这个时候, 你应该能够识别问题所在并且解决它了. 这个做完之后, 返回服务目录, 如果有必要, 运行命令: svc -u . 一旦那些服务的启动时间都大于1秒钟后, 依照 TEST.deliver 和 TEST.receive 文件里面的指令去校验服务是否正确的工作. 注意, 应用这些指令, 日志将由multilog 程序记录到 /var/log/qmail 下, 而不是 splogger 记录到类似 /var/log/maillog 的文件里面. 注意: 如果你选择了 maildir 邮箱格式作为默认的传送方式, 在运行这些指令之前, 你必须在你的主目录和别名的主目录创建 Maildir 目录. 参见 maildir 小节查找如何恰当的创建这个目录.
3. 配置 你已经从源代码tarball方式, 或者自编译包方式, 或者var-qmail包方式安装了 qmail. 这一节的内容就是按照你的需要配置qmail. 3.1. 配置文件 所有的qmail系统配置文件, 除了在~alias下的 .qmail 文件, 都位于 /var/qmail/control 目录下. qmail-control 的man手册页包括了一个像下面这样的表: |