sendmail
宛如傳說中腓尼基國王所創造出來的結
(knot),其繁複糾纏無人能解﹔直到亞歷山大大帝的到來,抽出寶劍,劈開這個根本無須思考的死結。如果
sendmail
的問題能以這種斬釘截鐵的途徑一刀兩斷,所有的電腦技術問題都將可以如法炮製,以不到
200
頁篇幅的
”
快速秘笈
”
,尋求終極的解決方案。
正如
sendmail
的創始人所說的一樣,這是個複雜的世界,也是個動態的世界。
sendmail
的複雜性,正反映出電腦系統與實際需求之間,多變的互動關係。sendmail
是一個郵局:它接受各種奇形怪狀的郵件,透過各種通訊協定,將郵件轉送到各地的支局或集散中心,最後丟到對方的郵件信箱。看起來很簡單!它的運作功能,彷彿是一個虛擬世界中的全球快遞公司。
只有極少數的電腦軟體
(包含作業系統
)
設計和規模能夠和
sendmail
相比。和許多的通訊協定一樣,sendmail
最初的目標,只是要解決幾個區域網路之間郵件繞送的問題﹔隨著網路規模的激增,電子郵件成為全世界最普及的通訊方式之一,sendmail
必須面對各種難以想像的複雜情況:郵件的內容包羅萬象,通訊協定的多樣化,全球傳送的效率需求,以及安全性的顧慮
..等等。sendmail
的設計哲學,是盡量設法將郵件傳給對方﹔即使郵件被退回,多半是
DNS
或
IP
設定的問題,而不是
sendmail
的彈性不夠。
這種高度的彈性,使得
sendmail
的組態設定成為系統管理者的惡夢。許多系統附帶了
sendmail
的預設組態檔,讓系統在
”可以運作”
的情況下,盡量做出環境單純的假設。如果電子郵件系統運作的環境都是整齊劃一,本書的篇幅將不到原來的一半。
本書的基礎篇摘自原書的第一到第十七章,敘述
sendmail
的淵源與歷史版本,涵蓋新版
V8
的新功能,包括巨集
(Macro), 規則集
(rule set), sendmail.cf
的檔案範例,郵件集散中心與遞送代理程式
(agent)
的基本原理。