本文中的所有论述都针对金笛邮件,但是也同样适用于其它的邮件系统.
    在金笛邮件的试用时,尤其是在第一次安装完后最可能问题就是mail服务起不来.今天笔者以自己长期积累的jdmail维护经验来详细说明一下可能导致jdmail邮件服务起不来的情况.一定要仔细学习哟~.
    为了方便邮件管理员排查邮件系统出现的问题,jdmail设置了详细的日志信息.这不仅给邮件管理员带来了福音,也是jdmail邮件的一大特色.这和jdmail的软件理念"能简单才不简单","做软件是艺术,用软件是享受"的理念也一致的.OK,对于新接触jdmail邮件系统的您来说,邮件服务起不来是您学习jdmail的日志是一个机会.(废话一堆,满天飞来鸡蛋+石子~~)我们先来学习一个邮件的日志格式.(啥?你还不知道日志在哪查?你咋这样呢?怎么可以这个样子呢,找一下嘛,你找一下就知道啦,你找不到你就说嘛,你不说我怎么知道呢.知道我也不说呢......'前面属于纯废话,postmaster进入后台后有"日志查看"一项,可以看到日志类型,查询时间等不同的查询条件').现在我们邮件服务起不来了.那么我们肯定要查看系统信息.ok,日志类型我们选"系统信息",时间我们选今天(也就是默认显示的那个).张三:弱弱的问一句,为什么要选今天呢(话刚说鸡蛋满天飞来)."大哥,今天邮件系统起不来了,你想在日志里看它昨天是不是也没起来?"张三若有所思:"恩,昨天好像没装呢,估计应该运行正常."~!@#$%^&*
    现在来看一下日志:"2007-09-28 13:59:21    [0]    [MESSAGE]    [912]    Start all services successfully!".具体分析一下,jdmail所有的日志都大致分这么五段:年月日 时分秒 日志状态 日志类型 错误代码 日志内容.我们最关心的就是前两段和最后一段啦,中间的我也看不懂.!@#$%^&*.....像例子中所说的有用的信息也就是最后一段了"Start all services successfully!"也就是说系统中所有邮件服务起动成功.OK,一切正常,下课!李四:“老师,我这启动成功了,过了一会又停了".刚想抬脚闪人又退了回来."嗯,咋回事?"李四:"不知道呢,它自己就停了,我啥也动!","那咋办呢",李四(小声说):"看日志"."恩,看哪个日志呢".李四(声音更低了):"看系统日志"."然后呢?"."然后不知道这句话啥意思"(又一阵石林蛋雨.....).
    好,下面大家一起来看一下李四的日志."2007-09-29 16:25:48    [0]    [ERROR]    [981]    SMTP Service IP:PORT(127.0.0.1:25) already was bind or fail to create"那么这句话是什么意思呢,这句话的意思是说:本机的25号端口被占用了.也就是jdmail在起动时要监听25号端口的时候发现它已经被占用了,这个时候呢它就监听不了了,监听不了了怎么呢,还能咋办?起动不成功就是启动失败呗!李四若有所恩.眼睛里充满了敬佩的目光.当然了类似的日志还有:"2007-09-29 16:25:48    [0]    [ERROR]    [981]    SMTP Service IP:PORT(127.0.0.1:110) already was bind or fail to create","2007-09-29 16:25:48    [0]    [ERROR]    [981]SMTP Service IP:PORT(127.0.0.1:143) already was bind or fail to create","2007-09-29 16:25:48    [0]    [ERROR]    [981]    SMTP Service IP:PORT(127.0.0.1:8080) already was bind or fail to create" 其中25号端口被占用的情况是最常见的,110被占用的情况本座只遇见过一次(丫敢称自己是本座,扁他~~,一阵枪林弹雨之后,继续~~流着鼻T说),143端口占用基本没遇到过.8080端口占用也是个别情况.
    好,现在来认识一下金笛邮件系统用到的端口.smtp(简单邮件传输协议):25;pop3(邮件协议):110;imap(网络信息访问协议):143;tomcat(提供web服务,通过网页进行邮件收发和管理员进行后台管理):8080;现在知道了金笛所用到的各个端口是作什么用的.那么对于端口占用.除了恶意使用端口外,可以通过查看是不是本机也运行相同的服务来判断.拿邮件服务起不来来说,日志会提示25号端口占用,被占用的情况只能是三类:1,本机运行着其它的邮件服务器占用了25号端口;2,杀毒软件为了保护邮件安全监听25号端口;3,其它的软件恶意占用25号端口.对于第一类和第三类情况,端口是有固定的程序监听的,可以通过直接查看监听程序的办法来确定最终凶手.如果在windows下,可以通一些小工具如aports,奇虎360等来确定哪个程序占用了25号端口.当然这个时候也可以直接使用telnet localhost 25来判断,比如windows系统,执行这条命令以后提示:"220 computername.microsoft.com ESMTP Server (Microsoft Exchange Internet Mail Service 5.5.2651.58) ready"这说本机安装的微软系统自带的exchange server 或者是邮件传输协议smtp服务.去服务管理那里看一眼就明白了.如果是linux系统执行命令后可能会提示:"220 localhost.localdomain ESMTP Sendmail 8.12.8/8.12.8; Wed, 12 May 2004 15:57:01 +0800"说明本机已经默认安装了sendmail服务.这个可是linux系统默认安装的服务哟~如果你在linux系统上测试金笛邮件系统的话,最好还是先检查一下sendmail有没有关掉,有没禁用开机自动启动.这里要提得一点是,在linux下有个神奇的命令可以直接看出来哪个程序占用了哪个端口那就是:"netstat -antp"参数-p用来显示对应的应用程序.第一种和第三情况大致就这样了,相信你也会很容易解决了类似的情况.对于第二种情况,大多发生的windows系统上.在使用windows系统作服务器的时候网管员们大多会习惯性的装上杀毒软件.像瑞星,卡巴,江民等.但是几乎所有的杀毒软件都提供了邮件监控的功能.这个邮件监控的工作原理是这样的.杀毒软件本身"监控"25号端口,注意杀毒软件只是"监控",它并不监听,所以如果杀毒软件"监听"了端口无论是通过命令还是通过软件都是看不到,因为这种形为对于操作系统来说是不"可见"的,所以当本机有软件试图启动25端口,或者连接外部的25端口的时候杀毒软件就要把这个过程"接管"过来,或者直接禁止.这样就邮件服务启动的时候它会检测25号端口是不是被占用,以确保服务可以正常运行,这时候,邮件服务会发现25端口是不用的,就造成了邮件起动不起来的情况.针对这种情况还有一类特殊的软件--防木马软件也会有这种形为.因为如果本机中的盗号木马的话.它在获取了用户的用户名和密码后肯定会通过邮件的方式发送出去.这时候它肯定要连接外部
的25端口,这也是为什么有时候本机没装杀毒软件,也没装其它的邮件程序,邮件服务起不来的原因.对于杀毒软件还有一点要说的就是卡巴,卡巴的各个版本安全措施一直处理增强状态,6.0的个人版本只有一个邮件监控选项,6.*的互联网套装,在网络安全那一项还有关机邮件监控的设置.7.*的版本更厉害的在三个不同的地方设置关于邮件的监控.所以使用卡巴的朋友可能更费心一些了.您可能说了,我用的就是卡巴,我已经把所有的关于邮件监控的选项都禁用了,可是还是不能正常启动邮件服务.那么我会问你:"你把杀毒软件退了,再启动一下邮件看能不能启动".如果答案是肯定的话,那么再继续找一下吧,我相信你可以找到那一项的.
    OK,详细论述了邮件服务起来不了的原因.其它的端口占用的情况相信您已经有了解题思路了.最后祝您在金笛邮件的试用过程中使用愉快.
     金笛邮件--为您的邮件安全保架护航!