首页 | 邮件资讯 | 技术教程 | 解决方案 | 产品评测 | 邮件人才 | 邮件博客 | 邮件系统论坛 | 软件下载 | 邮件周刊 | 热点专题 | 工具
网络技术 | 操作系统 | 邮件系统 | 客户端 | 电子邮箱 | 反垃圾邮件 | 邮件安全 | 邮件营销 | 移动电邮 | 邮件软件下载 | 电子书下载

邮件服务器

技术前沿 | Qmail | IMail | MDaemon | Exchange | Domino | 其它 | Foxmail | James | Kerio | JavaMail | WinMail | Sendmail | Postfix | Winwebmail | Merak | CMailServer | 邮件与开发 | 金笛 |
首页 > 邮件服务器 > Sendmail > 18.14 sendmail的统计信息、测试和调试 > 正文

18.14 sendmail的统计信息、测试和调试

出处:人民邮电出版社 作者:[美]Evi Nemeth Garth Snyder Trent R.Hein 时间:2008-4-27 3:32:04

18.14  sendmail的统计信息、测试和调试

sendmail可以收集有关它所处理消息的数量和大小的统计信息。您可以用mailstats命令显示这些数据,数据是按邮寄程序(mailer)进行组织的。sendmail的confSTATUS_FILE选项(在OSTYPE文件中)指定了应该保存统计信息的文件名称。如果指定的文件存在,则将打开记账(accounting)功能。

sendmail统计信息文件的默认位置是/etc/mail/statistics,但有些厂商把这个文件叫做sendmail.st,放在/var/log中。mailstats给出的总计值是从创建统计信息文件以来的累计。如果希望周期的统计信息,可以用cron轮换并重新初始化此文件。

下面是一个例子:

 

如果所有人都可以读取邮件统计文件,那么就不必由root来运行mailstats命令。
这条命令显示了6个值:收到的消息和收到的千字节数(msgsfr、bytes_from),发送的消息和发送的千字节数(msgsto、bytes_to),拒收的消息数(msgsrej),以及丢弃的消息数(msgsdis)。第一列的数字标识出邮寄程序(mailer),最后一列列出了邮寄程序的名字。T开头的行是所有的消息和字节数,C开头的行是连接数。这些值中包括了本地和中继转发的邮件。

18.14.1  测试和调试

基于m4的配置要经过某种程度上的预先测试。如果要用它们,可能并不需要进行底层的调试。有一样东西是调试标志不能测试的,那就是您的设计方案。在研究本章时,我们在所检查的好几个配置文件和设计中发现了错误。这些错误小到调用某项功能时没带上必要的宏(例如,使用masquerade_envelope时没有用MASQUERADE_AS打开伪装),大到sendmail配置和防火墙的设计之间发生全面冲突,而防火墙控制着是否允许邮件进入以及进入的条件有哪些。

您不能设计一个在真空中的邮件系统。邮件系统必须与DNS MX记录和防火墙策略同步(或者至少不会相冲突)。

sendmail提供了世界上已知最丰富的调试辅助程序集之一,它的调试标志不是简单的布尔值或整数,而是二维量x.y,其中x选定主题,而y选定要显示的信息量。值为0表示不调试,为127表示如果您打印输出的话,会造成纸张的浪费。主题的范围是0~99,目前定义了大约80个。
sendmail软件发布中的文件sendmail/TRACEFLAGS列出了正在使用的值和使用它们的文件和函数。所有对调试的支持都处在原始配置文件的层次上。在许多情况下,把调试输出和sendmail源代码一起看看是会有帮助的。

如果调用sendmail时带上一个-dx.y标志,调试输出将送到屏幕(标准错误输出)。表18.18显示了几个重要的x值和一些y的建议值。如果您打开了作为守护进程(-bd)运行的sendmail的调试功能,那么就要小心了,因为调试输出可能最终会卡住SMTP对话,在sendmail和远程主机进行通信时造成奇怪的故障。

表18.18 调试主题

   

含义和建议

0

显示编译标志和系统身份(请试试y = 1 或者 10

8

显示DNS名字解析(试试 y=8

续表

   

含义和建议

11

跟踪邮件的投递(显示邮寄程序的调用)

12

显示本地到远程的名字转换过程

17

列出MX主机

21

跟踪重写规则(要了解详情,可以使用 y=2或者y=12

27

显示别名和转发机制(试试 y= 4

44

显示如果发生故障,尝试打开文件的次数(y=4

60

显示数据库映射的查找

Gene Kim和Rob Kolstad写过一个叫checksendmail的Perl脚本,它用地址测试模式调用sendmail,在包含由您提供的测试地址的文件上运行。它将结果与期望值相比较。这个脚本让您能够根据站点上典型地址的测试集,对新版的配置文件进行测试,确保自己不会在无意间破坏以往一直工作正常的任何地方。

18.14.2   嗦的投递


许多在命令行上调用sendmail的用户代理程序都能接受一个-v标志,它传递给了sendmail,让sendmail显示出投递消息所采取的步骤。下面的例子使用了mail命令。粗体字是从键盘向用户代理输入的内容,其余的内容是sendmail的啰嗦输出。

 
 
 

anchor上的sendmail连接上了toadranch.com上的sendmail。两台机器都使用ESMTP协议来协商交换消息。

18.14.3  用SMTP通信

在调试邮件系统时可以直接使用SMTP。为了发起一次SMTP会话,可以telnet至TCP端口25或者使用Sendmail-bs命令。默认情况下,这是sendmail在守护进程模式(-bd)下运行时进行监听的端口,它以邮件提交代理身份运行时使用端口587。表18.19显示了最重要的SMTP命令。

表18.19 SMTP命令

    

   

HELO hostname

如果采用SMTP通信,标识正在连接的主机

EHLO hostname

如果采用ESMTP通信,标识正在连接的主机

MAIL From: revpath

发起一次邮件事务(信封发件人)

RCPT To: fwdpatha

标识信封收件人

VRFY address

验证地址是否有效(可投递)

EXPN address

显示别名和.forward映射的展开结果

DATA

开始消息的主体b

QUIT

结束交换并关闭连接

RSET

重置连接状态

HELP

打印SMTP命令的汇总信息

a.一则消息可以用多条RCPT命令。
b.您可以在消息主体内的一行上输入一个点(.)来结束消息主体。

SMTP整个语言只有14条命令,所以它非常容易学习和使用。它不区分大小写。SMTP的规范可以在RFC2821中找到。

包括sendmail在内的大多数传输代理都支持SMTP和ESMTP,smap是现如今唯一的例外。遗憾的是,许多提供主动过滤机制的防火墙设备并不支持ESMTP。

支持ESMTP协议的进程将以EHLO命令而不是HELO发起通信。如果另一端的进程听懂了并答复OK,那么双方便协商它们能支持的扩展,最后达到进行交流所需的最小公分母。如果返回的是一条错误消息,那么支持ESMTP协议的进程就后退到SMTP。

18.14.4  队列监视

您可以使用mailq命令(等价于sendmail -bp命令)查看队列内消息的状态。消息在被投递时,或者已经尝试过投递但没有成功的时候,它们就被排入“队列”。

mailq打印出当时/var/spool/mqueue下文件的汇总信息,这些信息普通人就可以直接阅读。它的输出对于判断一则消息为什么被拖延非常有帮助。如果信息显示出正在形成积压邮件的现象,那么您就可以监视sendmail尝试消除卡壳的状态。

注意,sendmail在8.12及以后的版本上,有两个默认的队列:一个用于端口25上接收到的消息,另一个用于在端口587上接收到的消息(客户机提交队列)。您可以调用mailq-Ac以看到客户机队列。

下面是mailq的一种典型输出。这个例子显示出有3条消息在等候投递:

  

如果您认为自己比sendmail还了解情况,或者您只是想要sendmail尝试立即重新投递排队的消息,那么可以运行命令sendmail -q迫使队列开始运行。如果您使用sendmail -q -v命令,那么sendmail会一次一次地显示每次投递的情况,这往往能够帮助进行调试工作。如果让sendmail自己自行处理的话,它会每隔一段时间(一般是30分钟)重新尝试一次投递。

18.14.5  日志机制

sendmail使用syslog(系统日志)来记录错误和状态消息,它所采用的系统日志设备是“mail”,级别可以从“debug”到“crit”,这些消息都以字符串“sendmail”作标记。可以用命令行的选项-L覆盖这个日志字符串“sendmail”,如果您正在调试sendmail的一个副本,而其他副本正在完成正常的邮件处理事务时,采取这个办法就很方便了。有关系统日志的更多信息请参见第10章。

在命令行或配置文件中指定confLOG_LEVEL选项,就能决定sendmail用作日志阈值的严重性级别。日志级别的值越高,表示严重性级别越低,也使得被记录的信息越多。

回想一下,系统日志中记录某个级别的消息,将要报告给该级别以及所有高于它的级别。/etc/syslog.conf文件决定了每则消息最终的目的地。

在Red Hat和Fedora系统上,sendmail的日志默认记录在/var/log/maillog里。对于SUSE来说,这个日志文件是/var/log/mail,而对于Debian和Ubuntu而言,它是/var/log/mail.log。如果Linux的标准化工作能够整顿这些随机而且显然没有意义的差异,那么我们脚本的可移植性不就会更好吗?

表18.20给出了sendmail日志级别和syslog(系统日志)严重性级别之间大致的对照关系。
表18.20 sendmail日志级别和syslog日志级别的对照

L

   

L

   

0

不作日志

4

notice

1

alert或者crit

5~11

info

2

crit

>=12

debug

3

err或者warning

 

 

一个更好的程序是mreport,它是由Jason Armstrong编写的。


它可以用来汇总由sendmail写下来的日志文件。只要运行make,然后再运行make install立即就能编好它。下面是从一个Red Hat系统上取得的mreport输出结果的样本:

  
  

如果您的邮件日志文件只能由root读取(它们应该如此),您必须使用sudo或者成为root来运行mreport。mreport的标志和选项都在它的手册页中有文档说明。在本例中的-f标志表示根据发件人归并和分类;类似的,-t标志则表示根据收件人进行分类。-i参数是输入文件,-o是输出文件。


如果打算定期运行mreport,那么应该告诉您的用户。他们可能会觉得让系统管理员用这样一种好工具来浏览邮件日志是对他们隐私的一种侵犯。

相关文章 热门文章
  • sendmail中.forward文件的注意事项
  • Linux启动 Sendmail速度慢的解决办法
  • RHEL5.2 sendmail和openwebmail 、dpvecpt 配置总结
  • Linux启动sendmail速度慢的解决办法
  • 为Sendmail添加邮件认证功能
  • FYI:商用Sendmail的安全和隔离要点
  • 在Perl和Sendmail的附件做过滤系统
  • sendmail做smtp SERVER
  • Sendmail Analyzer 5.3 发布
  • 如何限制Sendmail下邮件的大小
  • Fedora架设Sendmail邮件服务器
  • 架设RHEL4系统Sendmail邮件服务器
  • Sendmail8.12.9+RedHat 8.0建构邮件服务器
  • sendmail大全
  • Sendmail邮件服务器快速指南
  • SendMail上手指南
  • 用Sendmail配置你的第一台e-mail服务器
  • RedHatLinux AS3中SendMail的配置
  • 企业Sendmail邮件服务器的创建
  • Sendmail环境下对抗垃圾邮件的处理方法
  • Sendmail的邮件用户与系统用户分离
  • 我的qmail安装历程
  • 带SMTP认证功能的sendmail配置
  • Sendmail的relay用法汇总
  • 自由广告区
     
    最新软件下载
  • SharePoint Server 2010 部署文档
  • Exchange 2010 RTM升级至SP1 教程
  • Exchange 2010 OWA下RBAC实现的组功能...
  • Lync Server 2010 Standard Edition 标..
  • Lync Server 2010 Enterprise Edition...
  • Forefront Endpoint Protection 2010 ...
  • Lync Server 2010 Edge 服务器部署文档
  • 《Exchange 2003专家指南》
  • Mastering Hyper-V Deployment
  • Windows Server 2008 R2 Hyper-V
  • Microsoft Lync Server 2010 Unleashed
  • Windows Server 2008 R2 Unleashed
  • 今日邮件技术文章
  • 腾讯,在创新中演绎互联网“进化论”
  • 华科人 张小龙 (中国第二代程序员 QQ...
  • 微软推出新功能 提高Hotmail密码安全性
  • 快压技巧分享:秒传邮件超大附件
  • 不容忽视的邮件营销数据分析过程中的算..
  • 国内手机邮箱的现状与未来发展——访尚..
  • 易观数据:2011Q2中国手机邮箱市场收入..
  • 穿越时空的爱恋 QQ邮箱音视频及贺卡邮件
  • Hotmail新功能:“我的朋友可能被黑了”
  • 入侵邻居网络发骚扰邮件 美国男子被重..
  • 网易邮箱莫子睿:《非你莫属》招聘多过..
  • 中国电信推广189邮箱绿色账单
  • 最新专题
  • 鸟哥的Linux私房菜之Mail服务器
  • Exchange Server 2010技术专题
  • Windows 7 技术专题
  • Sendmail 邮件系统配置
  • 组建Exchange 2003邮件系统
  • Windows Server 2008 专题
  • ORF 反垃圾邮件系统
  • Exchange Server 2007 专题
  • ISA Server 2006 教程专题
  • Windows Vista 技术专题
  • “黑莓”(BlackBerry)专题
  • Apache James 专题
  • 分类导航
    邮件新闻资讯:
    IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮
    电子邮箱 | 反垃圾邮件|邮件客户端|网络安全
    行业数据 | 邮件人物 | 网站公告 | 行业法规
    网络技术:
    邮件原理 | 网络协议 | 网络管理 | 传输介质
    线路接入 | 路由接口 | 邮件存储 | 华为3Com
    CISCO技术 | 网络与服务器硬件
    操作系统:
    Windows 9X | Linux&Uinx | Windows NT
    Windows Vista | FreeBSD | 其它操作系统
    邮件服务器:
    程序与开发 | Exchange | Qmail | Postfix
    Sendmail | MDaemon | Domino | Foxmail
    KerioMail | JavaMail | Winwebmail |James
    Merak&VisNetic | CMailServer | WinMail
    金笛邮件系统 | 其它 |
    反垃圾邮件:
    综述| 客户端反垃圾邮件|服务器端反垃圾邮件
    邮件客户端软件:
    Outlook | Foxmail | DreamMail| KooMail
    The bat | 雷鸟 | Eudora |Becky! |Pegasus
    IncrediMail |其它
    电子邮箱: 个人邮箱 | 企业邮箱 |Gmail
    移动电子邮件:服务器 | 客户端 | 技术前沿
    邮件网络安全:
    软件漏洞 | 安全知识 | 病毒公告 |防火墙
    攻防技术 | 病毒查杀| ISA | 数字签名
    邮件营销:
    Email营销 | 网络营销 | 营销技巧 |营销案例
    邮件人才:招聘 | 职场 | 培训 | 指南 | 职场
    解决方案:
    邮件系统|反垃圾邮件 |安全 |移动电邮 |招标
    产品评测:
    邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端
    广告联系 | 合作联系 | 关于我们 | 联系我们 | 繁體中文
    版权所有:邮件技术资讯网©2003-2010 www.5dmail.net, All Rights Reserved
    www.5Dmail.net Web Team   粤ICP备05009143号