一.安裝sendmail
如果你在安裝Linux的時候,選擇了E-MAIL服務,sendmail就已經安裝在LINUX系統中了,並且已經作了一些最基本的設置。假如你在安裝時沒有選擇,或者你需要升級sendmail就可以使用以下方法進行。
1.RPM包安裝方式
1) 首先在光盤上或Internet上找到下面幾個RPM包(Redhat Linux安裝光盤都有):
sendmail-8.9.3-10.i386.rpm sendmail可執行文件
sendmail-cf-8.9.3-10.i386.rpm sendmail.cf生成器
sendmail-doc-8.9.3-10.i386.rpm sendmail.cf文檔
2) 然後使用以下命令安裝或升級:
安裝: rpm –ivh sendmail-8.9.3-10.i386.rpm
升級: rpm –Uvh sendmail-8.9.3-10.i386.rpm
2.重新編譯源碼方式
1) 首先取得最新版本的源代碼:http://www.sendmail.org/或FTP://ftp.dlut.edu.cn/pub/unix/mail/sendmail/,將它存放在/usr/local目錄下。
2) 執行以下命令,解壓縮:
cd /usr/local
tar –zxvf sendmail-8.9.3.tar.gz
這樣就會在/home目錄下建立一個sendmail-8.9.3目錄:
/usr/local/sendmail-8.9.3/README
/usr/local/sendmail-8.9.3/src
/usr/local/sendmail-8.9.3/cf
/usr/local/sendmail-8.9.3/doc
3) 編譯:由於sendmail自己帶了一個編譯程序Build,所以不用make命令:
cd /usr/local/sendmail-8.9.3/src
./Build install
二. 用sendmail構建一個E-Mail服務器
因為sendmail的功能強大,配置相當繁瑣,無法在一篇文章說完這個內容。我們在纛舉一個架設供一個公司使用的Internet E-Mail服務器為例進行講述。以下的設置也能運用在較大的電子郵局應用中,但是隨著的用戶數的增多,將會使得整個郵局的性能有所下降,這時也就相應地要進行更加深入的配置工作。有興趣的讀者可以到本網站《在線培訓》欄目中的翻譯作品子欄目中,閱讀筆者翻譯的《Sendmail》一書。
下面我們就開始吧!
1.將sendmail配置為守候進程(daemon)啟動
如果你在安裝LINUX的時候,選擇了E-Mail服務。那麼,sendmail就已經成為一個守候進程啟動了。所謂的守候進程,指的是它就象DOS操作系統中的常駐內存程序一樣,運行後,它們在後台偵聽,當需要它進行服務的時候,它就完成特定的功能和服務。在LINUX系統中有許許多多的服務就是以守衛進程的方式啟動著的。
你可以使用以下命令來確認sendmail是否已經啟動。
ps –axuwgrep sendmail
如果啟動了sendmail,那麼這個命令將顯示出它的相關信息。否則將沒有任何提示地回到命令行。如果沒有啟動,你可以手動啟動。
如果你想讓sendmail自動在系統啟動時啟動,那麼就在/etc/rc.d/rc.net文件中加上以下幾行代碼。
if [-f /usr/lib/sendmail ]; then
(cd /usr/spool/mqueue;rm –f if *)
/usr/lib/sendmail-bd-qlh;echo –n ‘sendmail'>/dev/console
fi
2.設置sendmail.cf
sendmail.cf是sendmail的配置文件。一般說來在安裝了LINUX系統之後,它將自動生成一個適合本系統使用的sendmail.cf文件,而且在sendmail.8.9.3/cf目錄下還有許多適應各種系統的sendmail.cf的文件樣本,根據文件名也可以判斷出它們所適用的場合。可以選擇它們替換原有的sendmail.cf文件。也就是將它們復制到/etc目錄中去,覆蓋掉原來的sendmail.cf文件。
而且sendmail還提供了一個sendmail.cf的生成器m4,它通過一系列的人機對話來生成一個用戶定制的sendmail.cf文件。具體的用法可以閱讀m4的幫助文檔。在此就不再詳述。
3.開啟SMTP、POP端口
在Internet中,我們采用POP端口提供接收郵件服務,采用SMTP端口提供發送郵件服務。也就是說,客戶端的郵件發送、接收系統在要發送郵件的時候,就與電子郵局的SMTP端口連接;當要接收郵件的時候,就與電子郵局的POP端口連接。
而一般在所有的類UNIX系統中,SMTP端口默認是打開的,而POP端口在默認狀態下是關閉的,我們必須將它打開。
1) 用root(超級權限)登錄到服務器上;
2) 編輯文件/etc/inetd.conf;
3) 找到描述POP端口的語句;
#pop2 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.pop2d
#pop3 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.pop3d
前面的#號代表這一行是注釋語句,不生效。
POP2是早期的端口協議版本,我們現在一般使用的是POP3.
4) 將POP3的描述語句那一行的注釋號“#”去掉。確保POP2的那一行是注釋語句。
5) 如果沒有找到,就手工補上這一行;(另外,我們還可以驗證一下是否存在SMTP端口的描述語句);
6) 存盤後退出。
7) 運行inetd命令,使得設置生效。
8) 用以下命令驗證,看POP3端口是否打開(生效)。
netstat –a grep pop
如果打開的話,可以看到以下信息:
tcp 0 0 *:pop3 *:* LISTEN
4.為新用戶開E-Mail帳號
其實,在LINUX中,要為一個新的用戶開E-Mail帳號是十分簡單的。只要在LINUX系統中新增一個用戶就可以了。那麼這個用戶帳號和密碼就是E-Mail的帳號和密碼。例如,我為一個新用戶test開一個E-Mail帳號。就用以下命令:
adduser test
passwd test
這樣,這個新用戶的E-Mail地址就是:
[email protected]
密碼當然就是帳號的密碼了。
5.為E-Mail帳號設置別名
如果,有一些用戶想使用多個E-Mail地址,是不是就要為他開多個帳號呢?如果是這樣就會增加對帳號管理的難度。所以LINUX給我們提供了一種方法:設置別名。
比如說,一個用戶叫“李小東”,它想擁有以下的幾個E-Mail地址:
[email protected]
[email protected]
[email protected]
我們就通過以下步驟來實現這樣的別名設置。
1) 以root登錄服務器;
2) 新增一個賬號lxd;
3) 編輯文件/etc/aliases;
4) 加上兩行:
xiaodong:lxd
tigger:lxd
5) 存盤退出;
6) 執行命令:
Newaliases
這樣,發給李小東的郵件可以使用三個郵件地址,而李小東只需要使用一個E-Mail帳號:
[email protected]就可以接收所有寄給以上三個E-Mail郵件地址的電子郵件。
5.為E-Mail帳號設置別名
如果,有一些用戶想使用多個E-Mail地址,是不是就要為他開多個帳號呢?如果是這樣就會增加對帳號管理的難度。所以LINUX給我們提供了一種方法:設置別名。
比如說,一個用戶叫“李小東”,它想擁有以下的幾個E-Mail地址:
[email protected]
[email protected]
[email protected]
我們就通過以下步驟來實現這樣的別名設置。
1) 以root登錄服務器;
2) 新增一個賬號lxd;
3) 編輯文件/etc/aliases;
4) 加上兩行:
xiaodong:lxd
tigger:lxd
5) 存盤退出;
6) 執行命令:
Newaliases
這樣,發給李小東的郵件可以使用三個郵件地址,而李小東只需要使用一個E-Mail帳號:
[email protected]就可以接收所有寄給以上三個E-Mail郵件地址的電子郵件。