在 /etc/mail/access 裡編入以下字樣:
<pre class="c" name="code">
Connect:xxx.xxx.xxx.xxx RELAY
# 或者
xxx.xxx.xxx.xxx OK
然後 cd /etc/mail
執行:
<pre class="c" name="code">
# 若是 linux 的話,或者 /etc/mail/ 裡有 access.db
makemap hash access < access
# 若是 solaris 的話,或者 /etc/mail/ 裡有 access.pag
makemap dbm access < access
謝謝你的回答,access裡面我看過了,只有
localhost.localdomain RELAY
localhost RELAY
127.0.0.1 RELAY
10.15.1 RELAY
xxxxxxxxxxxx.com.tw RELAY
並沒有特定要求
我可以telnet到對方,這台mailserver上沒有防火牆,對方還沒寄信過來,所以我也不知是否會被擋,除了這些設定檔要注意外,還有哪些要注意嗎
您要測的,是要從 10.28.5.2 裡面,做 telnet 10.2.2.1 25 的動作來測試。
如果有從 10.28.5.2 寄不來 10.2.2.1 的話,看 Mail 的 log。
另外也要看 @ 後面寫的是什麼?是不是 sendmail 可以認出 @ 後面 要寄到哪裡去。
如果有從 10.28.5.2 寄不來 10.2.2.1 的話,看 Mail 的 log。
看 10.28.5.2 上的 mail log。
對方進進來都正常了,我直接寫入access中
請問一下,我寄過去的信,要能寄到10.28.5.2(svr-exch1),在sendmail中也有需要設定的部分嗎
如果寄給 10.28.5.2 是以 root@svr-exch1
1.確認在 10.2.2.1 的 /etc/hosts 檔案裡有 10.28.5.2 svr-exch1 這筆對照。
2.在 10.2.2.1 裡面 telnet svr-exch1 25 是通的。
3.在 svr-exch1 裡面的 /etc/mail/access 有加上 10.2.2.1 OK 這條規則。
我在hosts.allow有加對方了,telnet port 25過去也ok,這樣hosts中也要加嗎?因為我hosts中只有解析自己,沒有其他人
通常在 *nix 的 /etc/nsswitch.conf 裡的 hosts 的這一行是:
hosts: files dns
如果你要從 10.2.2.1 寄到 10.28.5.2,看那個 @ 後面是用 IP?還是什麼名稱?
如果是寄給 xxx@svr-exch1 的話,根據 nsswitch.conf 檔,
會先看 /etc/hosts 有沒有說 srv-exch1 的 IP 是什麼?
沒有的話,就會從 DNS 查,看 srv-exch1 的 IP是什麼?
如果也查不到的話,sendmail 就不知道要送往哪個IP而退信。
所以,你測試 telnet 10.28.5.2 25 ,只是確認 IP 之間的 routing 是不是通,
除非你測試 telnet svr-exch1 25 也是可通的話,sendmail也才有通的可能。
再問一下,當我telnet sver-exch1 25不通,但寫完整名稱telnet sver-exch1.a.b 25就會通的話,這樣還需要在hosts中指明ip對名稱嗎
telnet sver-exch1 25不通 => 在 /etc/hosts 加上 10.28.5.2 svr-exch1
telnet sver-exch1.a.b 25 會通 => 兩種可能:
1.在 /etc/hosts 上有 10.28.5.2 sver-exch1.a.b 這記錄。
2.nslookup sver-exch1.a.b 可查得到;但是 要看查到的 IP 是 10.28.5.2?
還是 public IP?若是 後者,則表示是繞外面一圈才到 sver-exch1.a.b,而不是從 intranet 進去。
從您 telnet 25 port 的測試,至少寄給 xxx@ver-exch1.a.b 應寄得成功,但寄給 xxx@ver-exch1 會寄不成。