作者:PHP白姐 | 来源:互联网 | 2014-05-28 08:57
情况:-----------------------------------------------1。linux防火墙中允许SMTP2。/etc/hosts.allow中有行:all:localhost/etc/hosts.deny中有行:all:all3。/etc/host.conf中配置如下:#Lookupnam
情况:
-----------------------------------------------
1。linux 防火墙中允许SMTP
2。/etc/hosts.allow 中有行: all : localhost
/etc/hosts.deny 中有行: all : all
3。/etc/host.conf 中配置如下:
# Lookup names via DNS first then fall back to /etc/hosts.
order bind,hosts
-----------------------------------------------
使用:mail -s test my@email.com
在 /var/log/maillog 中发现错误:
---------------------------------------------------------------
Dec 29 10:36:58 rhelas3
sendmail[22236]: iBT2aw2l022236: from=root,
size=55, class=0, nrcpts=1, msgid=<200412290236.iBT2aw2l022236@localhost.localdomain>, relay=root@localhost
Dec 29 10:36:58 rhelas3 sendmail[22238]: iBT2awjn022238:
tcpwrappers (rhelas3, 127.0.0.1) rejection
Dec 29 10:36:58 rhelas3 sendmail[22236]: iBT2aw2l022236: to=dk@zsnet.com,
ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay,
pri=30055, relay=[127.0.0.1] [127.0.0.1], dsn=5.0.0, stat=Service
unavailable
Dec 29 10:36:58 rhelas3 sendmail[22236]: iBT2aw2l022236:
iBT2aw2m022236: DSN: Service unavailable
Dec 29 10:36:58 rhelas3 sendmail[22236]: iBT2aw2m022236: to=root,
delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=31079,
relay=[127.0.0.1], dsn=5.0.0, stat=Service unavailable
Dec 29 10:36:58 rhelas3 sendmail[22236]: iBT2aw2m022236:
iBT2aw2n022236: return to sender: Service unavailable
Dec 29 10:36:58 rhelas3 sendmail[22236]: iBT2aw2n022236:
to=postmaster, delay=00:00:00, xdelay=00:00:00, mailer=relay,
pri=32103, relay=[127.0.0.1], dsn=5.0.0, stat=Service
unavailable
Dec 29 10:36:58 rhelas3 sendmail[22236]: iBT2aw2m022236: Losing
./qfiBT2aw2m022236: savemail panic
Dec 29 10:36:58 rhelas3 sendmail[22236]: iBT2aw2m022236:
SYSERR(root): savemail: cannot save rejected email anywhere
---------------------------------------------------------------
究竟是什么问题呢? “Service unavailable”所指什么服务呢?
----------------------------------------
我??槭悄愕闹?C名? DNS ?o法解析所造成
Sendmail ??以 hostname ?榘l信主?C名,但你的名?不??br />
或是在 sendmail.cf 找你的?C器名 ,ex:
Djmail.xxx.com
mail.xxx.com 需可被 DNS 解折?K?檫@一台的 IP
----------------------------------------
修改主机名
vi /etc/sysconfig/network,修改HOSTNAME一行为HOSTNAME=主机名,然后运行命令"
hostname 主机名"。无论你是否重启,
主机名修改成功了。
----------------------------------------
修改了主机名为服务器的域名后重试,还是无法发送。
>> 原来原因是因为 /etc/hosts.allow 和 /etc/hosts.deny 设置有问题。
>> 把 /etc/hosts.deny 中的 ALL:ALL 注释掉后,可以正常发送。
----------------------------------------
telent localhost 25可以,
LINUX默认情况SMTP仅绑定127.0.0.1,因此不能从网络访问,要打开SMTP,如下即可:
edit /etc/sendmail.cf
找到:
# SMTP daemon options
O DaemOnPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA
添加:
# SMTP daemon options
O DaemOnPortOptions=Port=smtp,Addr=你的IP, Name=MTA
保存!
----------------------------------------
问题就是在于 /etc/hosts.deny 设置了 ALL:ALL 之后,在 /etc/hosts.allow
中没有对sendmail充分的授权。
在 /etc/hosts.allow 中加入以下行:
sendmail : hostname (主机名,不一定需要是域名)
sendmail : hostip
(主机的ip地址)
这样就可以发送了。