五、安裝Sendmail
Sendmail的最新版本可以從ftp://ftp.sendmail.org/pub/sendmail/處得到,另外,許多linux的發行套件中都包含有Sendmail軟件包,具體信息請到Sendmail的主頁 http://www.sendmail.org處查看。
首先以root的身份登錄到系統中,把tar.gz的包解開tar -xzf sendmail.8.9.3.tar.gz,用make -f開始編譯。編譯完後產生系統設置文件——sendmail.cf。
六、 Sendmail的配置文件
這時安裝好的Sendmail幾乎是沒用的,你必須對它的配置文件sendmail.cf進行設置,它才能正常工作。下面就對這個文件的格式進行詳細討論。
1.格式
文件的每一行都以一個命令字符打頭,後邊是具體的設置內容。命令字符說明了本行的作用,設置內容說明了設置的對象,空行將被忽略。如果行的第一個字符是空格,說明是上一行的繼續行。
2.命令字符功能說明
每行的命令字符決定了該行的作用,下面對配置文件中的命令字符進行逐一說明。
⑴ #
#號說明了本行是注釋行。
⑵ D
D是宏定義操作符,用法是:DK [字符串],這就將宏K定義成了後面的字符串,可以在配置文件中對它進行引用,避免了多次輸入某一相同的字符串。注意:宏的名字應該是單獨的一個大寫字母,因為Sendmail用小寫字母定義自己的宏變量。
⑶ C和F
C和F是類定義操作符,用法是:CK [類名]或者FK 文件名,這就定義了類K或者定義了從指定的文件中讀取類K的值。一個類可以包含一個或多個單詞,也要使用單獨的大寫字母,原因同上。
⑷ H
H是郵件頭定義操作符,一般來講,我們不用對配置文件中缺省提供的郵件頭做任何的修。
⑸ O
O是設置選項操作符,sendmail具有多種可以對它的操作進行設置的選項,還可以通過這些選項來告訴sendmail它所要使用的文件放在什麼位置。當然這些選項也可以通過命令行來提供,兩種方法是等價的,人們常常將很少改變的設置在配置文件中通過O操作符給出。
⑹ P
P是優先級操作符,用來指定郵件的優先級別。另外sendmail還指定了一些具體的郵件標題,這些特定的郵件標題本身就具有了確定的優先級。例如:
Pspecial-delivery = 100
Pfirst-class = 0
Plist = -30
Pjunk = -100
⑺ V
V是sendmail.cf的版本級別操作符,它能夠使sendmail知道在配置文件中可以找到哪些特性。要注意的是:sendmail.cf的版本級別和sendmail的版本級別可不是一回事。
⑻ K
K是關鍵字數據庫操作符,因為sendmail使用了一些關鍵字數據庫,例如別名庫等等。K操作符可以用來告訴sendmail這些可利用的數據庫的位置或類別等類似信息,缺省支持DBM格式的庫,一般可以支持DBM、BTREE、HASH、NIS等。
⑼ M
M 是郵件發送器的操作符,對於每一個目標,可以定義一個專門的郵件發送器。郵件發送器將通過定義在其中的sendmail固定的SMTP傳輸器把郵件發送給其他主機。
所有郵件發送器都是用M操作符和郵件發送器的名字開頭的一行來定義,舉例如下:
Mlocal,P=/bin/mail,F=lsDFMfSn,S=10,R=20,A=mail-d $ u
在上面本地郵件發送器的定義中,P操作項用來提供投遞郵件的程序所處的位置的路徑名稱,F用來為本地郵件發送器提供sendmail標志。後面的S和A項為sendmail指定在改寫寄件人和收件人地址時所用到的規則集,例如S=11/21就表示用11號規則集改寫寄件人的信封地址,用21號規則集來改寫寄件人的郵件頭地址。A項用來為被運行的程序,這裡是/bin/mail,提供命令行,所以sendmail將運行命令:mail –d $u,其中的宏$u將被替換為郵件應該被發送的用戶的用戶名。
⑽ S和R
S和R是規則集操作符,規則集用來發現地址中的錯誤,將地址改寫為遠程郵件發送器能夠理解的形式,以及將郵件解析到sendmail內部的某個郵件發送器。Sendmail將按固定的順序向規則集傳送地址,規則集也可以調用其他的規則集。規則集由S來指定,S的後面是用來表示規則集的編號。
七、 關於sendmail的一些文件
在sendmail中會存在很多的文件,這裡列出幾個常用的意義:
①/var/log/maillog sendmail的log, 分析錯誤有用
②/var/spool/mail/$USER 進來的信, 每個用戶一個文件
③/var/spool/mqueue mail queue, 可以用mailq看隊列中待發的信
④/etc/sendmail.cw 如果機器有好多alias就把名字都寫在此文件中,這樣寫哪個都能收到信