默认情况下,RH的sendmail只允许外发email而允许接收外部来信(localhost当然可以了)。
要想能接收外来email,
首先更改sendmail.mc,找到:DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl更改为:DAEMON_OPTIONS(`Port=smtp,Addr=本机ip, Name=MTA')dnl然后,make -C /etc/mail重新编译sendmail。
/etc/mail/access文件是允许转发的网络地址,可将局域网的网络ip加进去,这样,局域网内的任何其他的主机都可以通过本机sendmail来中转,relay。修改完后makemap hash access.db < access即可。
Sendmail好像非常需要FQDN,类似aaa.bbb.com一类的完整域名。/etc/mail/local-host-name是sendmail需要的本地FQDN,必须的。另外,若没有DNS,/etc/hosts和/etc/sysconfig/network两个文件必须修改,添加正确的主机名称,FQDN,别名等。hosts文件内的127那行,最好不要改动。那是localhost的初始定义。
这样子修改好以后,可以防止日志中出现什么553,554的错误信息--那是因为A机和B机的sendmail拥有相同的localhost主机名称。所以,FQDN,一定要设好。哪怕不用。这一切完了之后,重启sendmail。小测一下:telnet localhost 25开头如果出现aaa.bbb.com一类的FQDN,那就可以了。
Sendmail: localhost.localdomain 的問題
如果你也是用 Linux + Sendmail 架 mail server, 當你 telnet your.host.name 25 時,
若出現 localhost.localdomain, 表示 Linux Server 的 hostname 設定有誤. 這個問題並不大,
因為它還是可以正常的收 / 發 e-mail. 但是, 若寄給同樣是 localhost.localdomain 的 mail server
時, 問題就來了.
症狀:
1. 收到退回的信件, 內容是:
553 5.3.5 對方的hostname. config error: mail loops back to me (MX problem?)
554 5.3.5 Local configuration error
2. 本機 /var/log/maillog 記錄出現:
SYSERR(root): 對方的hostname. config error: mail loops back to me (MX problem?)
3. 對方的 /var/log/maillog 記錄出現:
本機IP did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA
原因:
由於本機主機名稱是 localhost.localdomain, 信件發出後, 若對方 Sendmail 主機名稱也是 localhost.localdomain 時, 信件會回到本機郵件伺服器上, 無法寄到對方郵箱中.
解決方法:
1. 知道自己正確的 hostname 為何 (通常是: 主機名稱.網域名稱, 如: myserver.abc.idv.tw, 其中 myserver 是主機名稱; abc.idv.tw 是網域名稱)
2. 執行 hostname 指令, 查看 hostname 是否正確
3. cat /etc/sysconfig/network, 查看 hostname 是否設定正確, 若不正確請修改後, 執行:
hostname 正確的hostname
4. cat /etc/hosts 檢查 127.0.0.1 那一行是否只有 localhost 與
localhost.localdomain 這兩種敘述. 若否, 請清除不相干的敘述, 並確定是否有如: 192.168.1.1
myserver.abc.idv 描述正確 hostname 的文字列. 若無, 請新增空白行加入該敘述.
5. /etc/rc.d/init.d/sendmail restart 重新啟動 Sendmail
6. telnet localhost 25 檢查是否出現正確的 hostname