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