當給出一條信息時, smail 首先檢查目的地是否是本地的主機,或是一個遠程地點。如果目標主機地址是
在配置中設置的本地的主機名之一,信息被傳遞給控制器模塊。否則, smail 把目的地地址傳遞給很多路由
器驅動程序去發現哪個主機提交一條信息。他們在路由器文件中被描述;如果這個文件不存在,一套缺省路
由器被使用。
目的地主機順序地被傳遞給所有的路由器,並且發現最特定的線路的一個被選擇。考慮被郵寄了到
joe@foo.bar.com 的一條信息。然,一個路由器可能在 bar.com 域為所有的主機知道一條缺省線路,同時
另外的一個自己有為 foo.bar.com的信息。因為者是更特定的,它在前者之上被選擇。如果有兩個路由器
提供“最好的匹配”,首先在路由器文件中來到的一個被選擇。
這個路由器現在指定被使用的運輸方式,例如 UUCP ,產生一個新的目的地地址。新地址與提交信息的主機一
起被傳遞給運輸。在上面的例子中, smail 可能發現foo.bar.com 是經由UUCP使用路徑 ernie !bert 被到
達的。然它將產生 bert!foo.bar.com!user 的一個新目標,並且讓 UUCP 運輸作為信封地址使用這個被傳
遞給 ernie 。
當使用缺省安裝時,下列路由器是可得到的:
如果目的地主機地址能被解決使用 gethostbyname ( 3 )或 gethostbyaddr ( 3 )圖書館呼叫,信息將經由
SMTP 被交付。唯一的例外是,如果地址被發現參考本地的主機,它也被傳遞給控制器模塊。
smail 也認出作為合法的主機名作為有點的空鉛被寫的IP地址,只要他們能通過一個gethostbyaddr( 3 )呼
叫被解決。例如,scrooge@[ 149.76.12.4 ]將是一個有效的地址,盡管在 quark.physics.groucho.edu 上
為scrooge的極不平常的通訊地址。
如果你的機器在因特網上,這些路由器不是你正在尋找的,因為他們不支持MX 記錄。見下面為這種情況應做
什。
如果 /usr/lib/smail/paths , pathalias 數據庫,存在, smail 將試著在這個文件中查一下目標主機(減去
任何trailing .uucp )。通過這個路由器匹配的到一個地址的郵件將使用 UUCP被發送,使用在數據庫中被發
現了的路徑。
如果目標主機實際上是一個UUCP鄰居,主機地址(減去任何trailing .uucp )將被比較為uuname 命令的輸出
去檢查。如果這是一種狀況,信息將使用 UUCP 運輸被發送。
如果地址沒被上面任意一種路由器匹配,它將被發送到聰明的主機那裡。到象被使用的運輸一樣,到聰明主
機的路徑被設置在設置文件中。
這些缺省為許多簡單的安裝工作,但是如果路由要求變得有點復雜,它們則失敗。如果你面對下面被討論了
的任何問題,你將必須安裝你自己的路由器文件用以制服缺省。你可能作為開始的一個樣品路由器文件在附
錄中被給出--。一些分區和一套設置文件被定制在這些困難附近工作。
當你的主機與撥號的 IP 和 UUCP 連接生活在一個雙宇宙中時,最糟的問題可能會產生。然,你將你的主
機名放在你僅偶爾通過你的 SLIP 連接談論的主機文件中,因此 smail 將試圖經由 SMTP 為這些主機發送任
何郵件。這通常不是你想要的,因為就算 SLIP 連接定期被激活, SMTP 比在 UUCP 上發送郵件要慢。使用缺
省安裝,不能逃離 smail 。
你能在查詢解決器之前,讓smail檢查路徑文件,從而避免這個問題,並且將你想要迫使 UUCP發送的所有主
機放入路徑文件。如果你從不想在 SMTP 上發送任何信息,你也能評價基路由器的路由。
另外一個問題是缺省安裝不提供真實的因特網郵件路由,因為基路由器的路由不計算MX 記錄。為因特網郵
件路由啟用充分支持,評價這個路由器,並且 uncomment 那個使用了BIND的路由器。然而,被包括在一些沒有
BIND支持的分區中的 smail 二進制代碼被編入了。如果你啟用BIND,但是在 paniclog 文件中得到一條信息
“路由器 inet_hosts :沒發現驅動器bind”,然你必須得到來源並且重新編譯 smail (見上一節)。
最,使用 uuname 驅動器通常不是一個好主意。對一個,當你沒有 UUCP 安裝時,它將產生一個配置錯誤,
因為沒有發現 uuname命令 。第二是,當你列在你的UUCP系統文件中的地點比你實際上擁有的郵件連接點多的
時候。這些可能是你僅交換新聞的地點,或是你偶爾經由匿名的 UUCP 下載文件的地點,但是與其他地點沒有
通途。
在第一個問題附近工作,你能用一個位置手跡代替做一個簡單出口的 uuname 0 。然而,更多的一般的解決
方案是,編輯路由器文件並且完全移開這個驅動程序。
--------------------------------------------------------------------------------
路徑數據庫
smail 期望在/usr/lib/smail.下的路徑文件中發現 pathalias 數據庫.這個文件是可選擇的,所以,如果你根
本不想要執行任何 pathalias 路由,只要簡單地移開任何存在的路徑文件即可。
路徑必須是一個排序的ASCII文件,它包含繪制目的地地點名字到 UUCP 重擊路徑的入口。因為 smail 在查找
一個地點時使用二進制的搜索,該文件必須被排序。在這個文件中不允許注釋,地點名字必須使用TAB使其從
路徑中被分開。 Pathalias 數據庫在章-中更詳細地被討論。
如果你手動產生這個文件,你應該確保為一個地點包括所有合法的名字。例如,如果一個地點被兩個無格式的
UUCP名字知道並且是充分合格的域名,你必須為他們每一個增加一個入口。文件能通過分類(1)命令將它排序。
然而,如果你的地點僅僅是一個小地點,然根本沒有路徑文件:僅在你的設置文件中安裝聰明的主機,並且把
所有的路由留給你的郵件。
--------------------------------------------------------------------------------
(http://www.fanqiang.com)
進入【UNIX論壇】
|