有很多方法可以提高 sendmail 站点的管理效率。sendmail 软件包中提供了一些管理工具;让我们来看看其中最重要的几个。
邮件在以下目录中排队/var/spool/mqueue目录中,等待传输。此目录称为邮件假脱机。sendmail 程序提供了一种显示所有假脱机邮件消息及其状态的格式化列表的方法。
/usr/bin/mailq 命令是 sendmail 可执行文件的符号链接,其行为与
# sendmail -bp |
$ mailq Mail Queue (1 request) --Q-ID-- --Size-- -----Q-Time----- ------------Sender/Recipient------------ RAA00275 124 Wed Dec 9 17:47 root (host map: lookup (tao.linux.org.au): deferred) terry@tao.linux.org.au |
我们可以通过发出以下命令强制 sendmail 立即处理队列/usr/bin/runq命令。
runq 命令不产生任何输出。sendmail 将开始在后台处理邮件队列。
如果您使用具有 固定 IP 地址的临时拨号 Internet 连接,并在断开连接时依赖 MX 主机来收集您的邮件,您会发现强制 MX 主机在建立连接后尽快处理其邮件队列非常有用。
sendmail 发行版中包含一个小的 perl 程序,这使得支持它的邮件主机可以轻松实现此操作。etrn 脚本对远程主机的作用与 runq 命令对我们自己的主机的作用大致相同。如果我们像本例所示那样调用该命令
# etrn vstout.vbrew.com |
通常,您会将此命令添加到您的 PPPip-up脚本中,以便在建立网络连接后立即执行它。
sendmail 收集有关邮件流量和已向其传递邮件的主机的一些信息。有两个命令可用于显示此信息:mailstats 和 hoststat。
mailstats 命令显示有关 sendmail 处理的邮件量的统计信息。首先打印数据收集开始的时间,然后是一个表格,其中每行代表一个配置的邮件程序,最后一行显示所有邮件的汇总总计。每行显示八项信息
字段 | 含义 |
---|---|
M | 邮件程序(传输协议)编号 |
msgsfr | 从邮件程序接收的消息数 |
bytes_from | 来自邮件程序的邮件 Kbytes |
msgsto | 发送到邮件程序的消息数 |
bytes_to | 发送到邮件程序的邮件 Kbytes |
msgsreg | 拒绝的消息数 |
msgsdis | 丢弃的消息数 |
邮件程序 | 邮件程序的名称 |
示例 18-5。mailstats 命令的示例输出
# /usr/sbin/mailstats Statistics from Sun Dec 20 22:47:02 1998 M msgsfr bytes_from msgsto bytes_to msgsrej msgsdis Mailer 0 0 0K 19 515K 0 0 prog 3 33 545K 0 0K 0 0 local 5 88 972K 139 1018K 0 0 esmtp ============================================================= T 121 1517K 158 1533K 0 0 |
如果在sendmail.cf文件中启用了 StatusFile 选项并且状态文件存在,则会收集此数据。通常,您会将以下内容添加到您的sendmail.cf文件
# status file O StatusFile=/var/log/sendmail.st |
要重新启动统计信息收集,您需要将统计信息文件长度设置为零
> /var/log/sendmail.st |
hoststat 命令显示有关 sendmail 尝试向其传递邮件的主机的状态信息。hoststat 命令等效于将 sendmail 作为以下命令调用
sendmail -bh |
输出在单独的一行中显示每个主机,并为每个主机显示自尝试传递邮件以来的时间以及当时收到的状态消息。
示例 18-6 显示了您可以从 hoststat 命令获得的输出类型。请注意,大多数结果表明交付成功。另一方面,earthlink.net 的结果表明交付不成功。状态消息有时可以帮助确定失败的原因。在这种情况下,连接超时,可能是因为主机在尝试交付时已关闭或无法访问。
示例 18-6。hoststat 命令的示例输出
# hoststat -------------- Hostname ---------- How long ago ---------Results--------- mail.telstra.com.au 04:05:41 250 Message accepted for scooter.eye-net.com.au 81+08:32:42 250 OK id=0zTGai-0008S9-0 yarrina.connect.com.a 53+10:46:03 250 LAA09163 Message acce happy.optus.com.au 55+03:34:40 250 Mail accepted mail.zip.com.au 04:05:33 250 RAA23904 Message acce kwanon.research.canon.com.au 44+04:39:10 250 ok 911542267 qp 21186 linux.org.au 83+10:04:11 250 IAA31139 Message acce albert.aapra.org.au 00:00:12 250 VAA21968 Message acce field.medicine.adelaide.edu.au 53+10:46:03 250 ok 910742814 qp 721 copper.fuller.net 65+12:38:00 250 OAA14470 Message acce amsat.org 5+06:49:21 250 UAA07526 Message acce mail.acm.org 53+10:46:17 250 TAA25012 Message acce extmail.bigpond.com 11+04:06:20 250 ok earthlink.net 45+05:41:09 Deferred: Connection time |
purgestat 命令刷新收集的主机数据,等效于将 sendmail 作为以下命令调用
# sendmail -bH |
统计信息将持续增长,直到您清除它们。您可能需要定期运行 purgestat 命令,以便更轻松地搜索和查找最近的条目,尤其是在您拥有繁忙的站点时。您可以将该命令放入crontab文件中,使其自动运行,或者只是偶尔自己执行。