摘要:本文在"通過(guò)vPOPmail實(shí)現(xiàn)QMail郵件賬戶的數(shù)據(jù)庫(kù)管理"一文的基礎(chǔ)上討論如何通過(guò)QMailadmin實(shí)現(xiàn)對(duì)存放在數(shù)據(jù)庫(kù)中的虛擬域郵件用戶賬號(hào)進(jìn)行Web管理。通過(guò)QMailadmin管理員可以通過(guò)Web方式實(shí)現(xiàn)添加刪除用戶及修改用戶密碼等郵件用戶的管理,而用戶可以自行修改自己的密碼。
硬件環(huán)境:HP Netserver E60 128M內(nèi)存 單網(wǎng)卡
軟件環(huán)境:
Redhat6.2
vPOPmail4.9.4
QMail1.3
MySQL-3.23.22-beta
ucspi-tcp-0.88
QMailadmin-0.38.tar.gz
autorespond-1.0.0.tar.gz ezmlm-idx
本文介紹如何采用Web方式實(shí)現(xiàn)對(duì)郵件用戶的管理,而避免了每次添加用戶都需 要登錄到郵件服務(wù)器的麻煩。Inter7開(kāi)發(fā)了遵從GPL版權(quán)的QMailadmin來(lái)實(shí)現(xiàn)這個(gè)功能。
要使用該軟件,郵件服務(wù)器的上必需運(yùn)行有Apache的WWW服務(wù)器。
1、下載必需的軟件包
QMailadmin提供的功能必須在實(shí)現(xiàn)了虛擬域及虛擬用戶的賬號(hào)的Web方式以后,才能進(jìn)行,如果你在服務(wù)器上還沒(méi)有實(shí)現(xiàn)"通過(guò)vPOPmail實(shí)現(xiàn)QMail郵件賬戶的數(shù)據(jù)庫(kù)管理",則請(qǐng)閱讀該文章,并完成了虛擬域及用戶的配置以后才能開(kāi)始本文的工作。要實(shí)現(xiàn)QMailadmin的功能,需要下載下面新的軟件包:
QMailadmin0.38.tar.gz http://WWW.inter7.com/QMailadmin/
autorespond-1.0.0.tar.gz http://WWW.vPOPmail.cx/autorespond-1.0.0.tar.gz
autorespond用來(lái)支持實(shí)現(xiàn)郵件的自動(dòng)回復(fù),例如您的電子郵件地址為[email protected], 由于您最近出差,不能及時(shí)回復(fù)收到的郵件,則你可以使用該軟件包實(shí)現(xiàn)郵件的回復(fù),當(dāng)結(jié)合使用QMailadmin時(shí),原理如下:
當(dāng)使用Web管理界面指定對(duì)某個(gè)用戶(如ideal)指定郵件自動(dòng)回復(fù),則在該用戶所在的域內(nèi), 創(chuàng)建一個(gè)文件名字為.QMail-ideal.
下面我們首先討論QMail的郵件投遞機(jī)制:
QMail的投遞機(jī)制為:當(dāng)接受到一個(gè)信件后,由QMail-lspawn控制郵件投遞機(jī)制;它首先察看QMail-users機(jī)制(QMail-users是一個(gè)給用戶指派-assign-地址的系統(tǒng)),若收信人地址沒(méi)有定義在assign文件中(/var/QMail/assign參閱Life with QMail 的3.6QMail-users)則激活QMail-getpw程序,然后調(diào)用QMail-local來(lái)實(shí)現(xiàn)本地郵件投遞。QMail-local首先試著投遞郵件到localpart@host的地址,其中l(wèi)ocalpart為本地用戶名。若沒(méi)有找到,則進(jìn)一步察看/var/QMail/alias中定義的別名,若存在對(duì)應(yīng)的別名則投遞郵件到別名對(duì)應(yīng)的用戶目錄下,否則退回郵件。
若按照QMail-users機(jī)制在assign中找到對(duì)應(yīng)于郵件目的地址的規(guī)則,則從users/assign得到相關(guān)信息,然后進(jìn)行標(biāo)準(zhǔn)的.QMail文件操作。一般來(lái)說(shuō),.QMail-
從上面的機(jī)制中可以看到,通過(guò)QMailadmin為ideal用戶創(chuàng)建郵件自動(dòng)回復(fù)時(shí)會(huì)在用戶所在的域目錄中(如:/home/vPOPmail/domains/domains.com.cn中創(chuàng)建.QMail-ideal文件,當(dāng).QMail-local進(jìn)入assign處理以后將會(huì)首先進(jìn)行標(biāo)準(zhǔn)的.QMail文件操作,所以將會(huì)根據(jù)該文件進(jìn)行郵件自動(dòng)回復(fù)。現(xiàn)在我們看看.QMail-ideal的文件內(nèi)容:
|/usr/local/bin/autorespond 10000 5 /home/vPOPmail/domains/domain.com.cn/AU
TORESPONGDING/message /home/vPOPmail/domains/domain.com.cn/AUTORESPONGDING &[email protected]
其中|表示調(diào)用一個(gè)程序來(lái)處理該郵件這里是調(diào)用autorespond來(lái)處理;10000表示允許處理信件的總時(shí)間;5表示在這段時(shí)間內(nèi)的最大郵件數(shù);
/home/vPOPmail/domains/domain.com.cn/AU
TORESPONGDING/message指示自動(dòng)回復(fù)的郵件內(nèi)容的消息文件;
/home/vPOPmail/domains/domain.com.cn/AUTORESPONGDING指定log文件位置。其中&[email protected]表示同時(shí)將郵件轉(zhuǎn)發(fā)給&[email protected],也可以在添加自動(dòng)回復(fù)時(shí)不指定轉(zhuǎn)發(fā)。
ezmlm-0.53.tar.gzhttp://WWW.ezmlm.org/
ezmlm-0.53是一個(gè)由Dan J. Bernstein編寫的基于QMail的郵件列表管理軟件,它具有郵件列表管理器所應(yīng)該具有的所有基本功能,例如訂閱者地址列表管理、自動(dòng)消息退回處理和消息發(fā)布和歸檔等等。
2、QMailadmin的安裝配置選項(xiàng)
在編譯該軟件包以前,需要根據(jù)自己的需要對(duì)軟件包進(jìn)行編譯配置,下面我們就討論所有的配置選項(xiàng)含義如下(配置選項(xiàng)的使用方法為:./configure
conf_option=chosen):
若您的服務(wù)器的cgi-bin不在標(biāo)準(zhǔn)的位置,則使用該配置選項(xiàng)指定正確的cgi-bin目錄的位置:
--enable-cgibindir={dir} WWW服務(wù)器的cgi-bin目錄路徑
若您不希望郵件管理界面的HTML模版存放在/usr/local/share/QMailadmin,則使用該選項(xiàng):
--with-htmllibdir={dir} QMailadmin HTML 模版存放目錄路徑
若您的QMail路徑不是缺省的/var/QMail,則使用該選項(xiàng)指定正確的QMail安裝路徑:
--enable-QMaildir={dir} QMail的安裝路徑
若訪問(wèn)WWW服務(wù)器時(shí)的cgi-bin路徑不是/cgi-bin/cgi_program則需要指定該配置選項(xiàng):
--enable-cgipath={/cgi-bin/QMailadmin}
若vPOP用戶不是缺省的vchkpw用戶,則使用該選項(xiàng)指定正確的用戶名:
--enable-vPOPuser={vPOPuser}
若autorespond安裝路徑不是缺省的/user/local/bin,則使用該選項(xiàng)指定路徑:
--enable-autoresponder-bin={path}
若ezmlm 安裝路徑不是缺省的 /user/local/bin/ezmlm,則使用該選項(xiàng)指定路徑:
--enable-ezmlmdir={dir}
若希望限定系統(tǒng)的最大POP用戶數(shù)量則使用該選項(xiàng)指定:
--enable-maxPOPusers=unlimited -1為沒(méi)有限制,0則是關(guān)閉該功能使用該選項(xiàng)指定系統(tǒng)的最大別名(alias)數(shù):
--enable-maxaliases=unlimited -1為沒(méi)有限制,0則是關(guān)閉該功能使用該選項(xiàng)指定系統(tǒng)的最大郵件轉(zhuǎn)發(fā)(forward)數(shù):
--enable-maxforwards=unlimited -1為沒(méi)有限制,0則是關(guān)閉該功能使用該選項(xiàng)指定系統(tǒng)的最大郵件自動(dòng)回復(fù)(autoresponder)數(shù):
--enable-maxautorepsonders=unlimited -1為沒(méi)有限制,0則是關(guān)閉該功能使用該選項(xiàng)來(lái)設(shè)定系統(tǒng)最大的郵件列表數(shù)量:
--enable-maxmailinglists=unlimited 缺省為沒(méi)有限制。
3、QMailadmin及相關(guān)軟件包的編譯
autorespond的編譯生成:
[root@mail src]# tar xvfz autorespond-1.0.0.tar.gz
[root@mail src]# [root@WWW src]# cd autorespond-1.0.0
[root@mail autorespond-1.0.0]# gcc -Wall -o autorespond autorespond.c
[root@mail autorespond-1.0.0]# cp autorespond /usr/local/bin/
ezmlm的編譯生成:
[root@mail src]# tar xvfz ezmlm-0.53.tar.gz
[root@mail src]# cd ezmlm-0.53
[root@mail ezmlm-0.53]# make
[root@mail ezmlm-0.53]# make man
[root@mail ezmlm-0.53]# make seup
QMailadmin的編譯生成(這里是按照前兩篇文章的缺省安裝進(jìn)行配置的):
1
[root@WWW QMailadmin-0.38]# ./configure --enable-cgibindir=/usr/local/Apache/cgi
-bin/ --enable-cgipath=/cgi-bin/QMailadmin
2
[root@WWW QMailadmin-0.38]# make clean
3
[root@WWW QMailadmin-0.38]# make
在進(jìn)行make這一步時(shí),可能會(huì)出現(xiàn)如下的錯(cuò)誤:
gcc -g -O2 -o QMailadmin QMailadmin.o alias.o autorespond.o forward.o mailing list.o sysadmin.o user.o util.o auth.o template.o command.o show.o cgi.o limits.
o dotQMail.o -L/home/vPOPmail/lib -lvPOPmail -lnsl -lm -lcrypt
/home/vPOPmail/lib/libvPOPmail.a(vauth.o): In function `vauth_open':
/usr/src/vPOPmail-4.9.4/vauth.c:59: undefined reference to `MySQL_init'
/usr/src/vPOPmail-4.9.4/vauth.c:61: undefined reference to `MySQL_real_connect'
... ...
你需要使用vi修改/usr/src/QMailadmin-0.38/Makefile文件,將:
COMMONLDADD = -L/home/vPOPmail/lib -lvPOPmail
修改為:
COMMONLDADD = -L/usr/local/lib/MySQL/ -lMySQLclient -L/home/vPOPmail/lib -lvPOPmail
注: "/usr/local/lib/MySQL/"為你按照缺省路徑安裝MySQL時(shí)的路徑,若你的系統(tǒng)將MySQL安裝在別的路徑,則需要在這里指定正確的MySQL庫(kù)的安裝路徑,即尋找libMySQLclient.a的路徑
4
[root@WWW QMailadmin-0.38]# make install-strip
新聞熱點(diǎn)
疑難解答