情况:
-----------------------------------------------
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 <mail.txt 命令往internet发一封邮件失败
在 /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”所指什么服务呢?
----------------------------------------
我認為是你的主機名稱 DNS 無法解析所造成
Sendmail 預設以 hostname 為發信主機名,但你的名稱不對
或是在 sendmail.cf 找你的機器名 ,ex:
Djmail.xxx.com
mail.xxx.com 需可被 DNS 解折並為這一台的 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地址)
这样就可以发送了。
2014-08-12 09:18:06