郵件列表能夠很好地利用郵件平臺進行諸如主題討論、信息發(fā)布和共享等工作。Sympa是專業(yè)性質(zhì)的郵件列表管理工具,特別適用于較大型的系統(tǒng),具有完備的功能和出色的性能。本文將通過一個實例介紹Sympa的安裝和基本配置過程。
安裝前的準備
安裝環(huán)境為Red Hat 8.0/Sendmail 8.12.8。Sympa功能強大,可以自動完成各項郵件列表管理工作,因而也對其支持環(huán)境提出了嚴格的要求。在安裝之前,應(yīng)該先了解其必需的條件。Sympa是用Perl編寫的,所以對Perl包的要求必不可少。從Sympa 3.1開始要求使用數(shù)據(jù)庫來存放訂戶(Subscriber)的數(shù)據(jù),所以得提供數(shù)據(jù)庫環(huán)境。目前Sympa支持MySQL、PostgreSQL、Oracle和Sybase四種數(shù)據(jù)庫,本文將以MySQL為例。最后,還需要預(yù)先創(chuàng)建一個Sympa用戶(使用“useradd sympa”即可)。
安裝
首先從Sympa的主站點www.sympa.org下載源程序,最新的版本是3.4.3.1。接下來按照一般步驟解壓縮源包,命令如下:
#gzip -dc sympa-3.4.3.1.tar.gz | tar xf -
然后開始運行安裝,命令如下:
#cd sympa-3.4.3.1
#./configure
--with-bindir=/etc/smrsh
--with-iconsdir=/var/www/icons/sympa
--with-mandir=/usr/share/man
--with-sendmail_aliases=/etc/aliases
#make
#make install
在整個安裝過程中有幾點需要特別注意。由于Red Hat上的Sendmail使用了smrsh,所以必須使用“--with-bindir=/etc/smrsh”這個配置選項。“--with-sendmail_aliases”用來設(shè)定列表中使用的別名文件,在Red Hat中,一般為“/etc/aliases”。在“make”過程中將提示安裝所需的CPAN模塊,那些默認為“y”的模塊都應(yīng)該安裝,其它的可以按照需要進行選擇。
初始化配置
與Sympa關(guān)系最大的主配置文件是/etc/sympa.conf。它可以對Sympa的各種基本運行參數(shù)進行設(shè)定,格式較為簡單:keyword value。一般情況下,應(yīng)該對以下項目進行定制:
1.domain 設(shè)置郵件的域名,使其與自己站點的域名相符合,如domain test.com;
2.email 在列表管理信件中出現(xiàn)在“From:”頭中的用戶名,如email list;
3.listmaster 列表管理員的E-mail地址(可以設(shè)定多個),在Sympa中,列表管理員擁有最大權(quán)限,如listmaster postmaster@test.com;
4.msgcat 多語言文件的位置,一般設(shè)為“/home/sympa/nls”;
5.lang 設(shè)置Web界面的語言環(huán)境,Sympa中提供了對中文的支持,但是版本較老,不推薦使用,建議使用默認的US語言;
6.db_type 數(shù)據(jù)庫系統(tǒng)的類型,如db_type mysql;
7.db_name 包含用戶及訂戶信息的數(shù)據(jù)庫名,如db_name sympa;
8.db_host 數(shù)據(jù)庫主機名,如db_host localhost;
9.db_user 對數(shù)據(jù)庫具有操作權(quán)限的用戶,如db_user manager;
10.db_passwd db_user的密碼。
sympa.conf中配置的內(nèi)容很豐富,包括磁盤限額、郵件發(fā)送大小、郵件循環(huán)控制、每封郵件的并發(fā)用戶數(shù)等,完全可以根據(jù)需要來定制。
在sympa.conf中配置好與數(shù)據(jù)庫相關(guān)的選項后,接下來要創(chuàng)建相應(yīng)的數(shù)據(jù)庫。Sympa已經(jīng)準備好了創(chuàng)建的腳本,所以需要做的就是直接運行,代碼如下:
#mysql < create_db.mysql
“create_db.mysql”文件一般可在“/home/sympa/bin”目錄下找到。建立數(shù)據(jù)庫后,進入MySQL檢查數(shù)據(jù)庫結(jié)構(gòu)。應(yīng)該看到Sympa的數(shù)據(jù)庫包括兩個表:user_table和subscriber_table。出于安全考慮,需要設(shè)置數(shù)據(jù)庫權(quán)限,代碼如下:
grant all on sympa.* to manager@localhost identified by ’your_password’;
flush privileges;
注意:用戶manager和your_password應(yīng)該與sympa.conf中的db_user和db_password分別對應(yīng)。
使用數(shù)據(jù)庫來存放列表用戶數(shù)據(jù),可以提高整個郵件列表系統(tǒng)的運行效率,同時也為用戶數(shù)據(jù)的維護提供了盡可能的靈活性。
Sympa的運行主要依賴于4個Perl程序:
1.sympa.pl是主守護進程,負責(zé)處理各條命令并轉(zhuǎn)發(fā)消息;
2.bounced.pl負責(zé)處理彈回(Bounced)的消息;
3.archived.pl負責(zé)生成郵件的Web存檔;
4.task_manager.pl負責(zé)一些其它的任務(wù)處理,同時也用于以后擴展的需要。
為了實現(xiàn)開機時自動啟動這些腳本程序,可以在/etc/rc.local中加入以下代碼:
~sympa/bin/sympa.pl
~sympa/bin/archived.pl
~sympa/bin/bounced.pl
~sympa/bin/task_manager.pl
此外,為了更好地監(jiān)視這些進程的運行狀況,應(yīng)該使用日志來進行記錄。可以通過在“/etc/syslog.conf”中增加以下一行來實現(xiàn):
local1.* /var/log/sympa
修改完成后要重新啟動syslog守護進程。
在郵件列表中,郵件別名(Mail Aliases)起著十分關(guān)鍵的作用。為了配合整個系統(tǒng)的運行,以下幾個別名是系統(tǒng)必需的,應(yīng)該在“/etc/aliases”中加入:
sympa: "| /home/sympa/bin/queue sympa@\samplerobot"
listmaster: "| /home/sympa/bin/queue listmaster@\samplerobot"
bounce+*: "| /home/sympa/bin/bouncequeue sympa@\samplerobot"
sympa-request: manager
sympa-owner: manager
注意:sympa-request應(yīng)該為自動程序(robot)的系統(tǒng)管理員,負責(zé)維護整個Sympa系統(tǒng)人員的地址;sympa-owner則為Sympa運行中錯誤信息的返回地址。
除了系統(tǒng)必需的別名外,對于每一個新建的列表(以books列表為例),通常還需要建立如下6個別名:books、books-request、books-editor、books-owner、books-subscribe和books-unsubscribe。很多郵件列表程序都需要手工來設(shè)置這些繁雜的別名記錄,但是Sympa提供了一個好用的腳本:alias_manager.pl(一般在/home/sympa/bin下),可以自動建立別名。Sympa的Web腳本在創(chuàng)建列表時會自動執(zhí)行該命令,但在Sendmail下因為“/etc/aliases”的權(quán)限問題,這條自動執(zhí)行命令會失敗,建議在列表創(chuàng)建后以root身份運行此條命令。它的運行參數(shù)很簡單,如下:[!--empirenews.page--]
aliase_manager.pl add/del
要為郵件列表books@test.com建立別名,只需運行以下命令:
aliase_manager.pl add books test.com
運行Sympa的Web接口
剩下的工作是運行Sympa的Web接口,用Web方式來管理郵件列表,會使整個操作變得直觀簡便。與其它的系統(tǒng)(如Mailman)不同,Sympa采用了統(tǒng)一的Web界面,不管是列表管理員(List Master),還是列表所有者(List Owner),或者普通的訂戶(Subscriber),都可以通過這個接口來進行相關(guān)操作。在通過驗證后,三類用戶會擁有各不相同的視圖,實現(xiàn)權(quán)限之內(nèi)的操作。
實現(xiàn)所有這些Web功能的是一個wwsympa.fcgi腳本。它一般位于“/home/sympa/bin”下,同時,有另一個配置文件“/etc/wwsympa.conf”對應(yīng)。這個腳本有兩種運行方式,一種是普通的CGI方式,另一種方式是使用FastCGI。后一種方式在運行效率上有很大提高(尤其針對較大的訪問流量而言)。配置FastCGI需要FastCGI的CPAN模塊,還需要在Apache中安裝mod-fastcgi模塊。這里將對這兩種方式的配置分別進行介紹。
1.使用普通CGI方式,只需要在Apache的配置文件(/etc/httpd/conf/httpd.conf)中加入下面一行:
ScriptAlias /wws /home/sympa/bin/wwsympa.fcgi
另外,在/etc/wwsympa.conf文件中應(yīng)該修改如下行:
use_fast_cgi 0
2.使用FastCGI方式,在httpd.conf中添加下面幾行:
FastCgiServer /home/sympa/bin/wwsympa.fcgi -processes 2
SetHandler fastcgi-script
ScriptAlias /wws /home/sympa/bin/wwsympa.fcgi
做了這些修改后,就可以啟動Sympa的Web接口。輸入“http://yourlistserver/wws”,Sympa的Web界面就會映入眼簾。