centos5.1的sendmail不能在本地用户之间发生邮件,但之前是可以的,输入:
netstat -an|grep 25
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
unix 2 [ ] DGRAM 7325
ps -ef|grep sendmail
root 3158 1 0 Mar31 ? 00:00:00 sendmail: accepting connections
smmsp 3166 1 0 Mar31 ? 00:00:00 sendmail: Queue runner@01:00:00 for /var/spool/clientmqueue
root 6490 6443 0 08:28 pts/1 00:00:00 grep sendmail
说明sendmail运行正常,那么问题出在哪里呢,查看mail日志,/var/log/maillog,重复出现:
Mar 31 04:02:36 www sendmail[6602]: m2UK2DeH006602: from=root, size=2028, class=0, nrcpts=1, msgi/
d=<200803302002.m2UK2DeH006602@www.ky-sch.cn>, relay=root@localhost
Mar 31 04:02:36 www sendmail[6602]: m2UK2DeH006602: to=root, ctladdr=root (0/0), delay=00:00:23, /
xdelay=00:00:00, mailer=relay, pri=32028, relay=[127.0.0.1] [127.0.0.1], dsn=4.0.0, stat=Deferred/
: Connection refused by [127.0.0.1]
据此可以得出问题所在:连接被本地[127.0.0.1]拒绝,这就应该是本地的localhost出了问题,查看/etc/hosts,看到有这么一行:
127.0.0.1 www.ky-sch.cn www localhost.localdomain localhost
删除www.ky-sch.cn、www,然后重起sendmail:
service sendmail restart
问题解决。
提示:Linux下的多个网络程序需要使用/etc/hosts文件,如没有必要,不要修改这个文件。 |