RHEL5+postfix+mysql+extmai(源代碼)續

十五、安裝extmaiWebmail軟件

http://www.extmail.org/

#tar zxvf extmail-1.0.5.tar.gz
#mkdir -pv /var/www/extsuite
#mv extmail-1.0.5 /var/www/extsuite/extmail
#cp /var/www/extsuite/extmail/webmail.cf.default /var/www/extsuite/extmail/webmail.cf

#vim /var/www/extsuite/extmail/webmail.cf
部分修改選項的說明:
SYS_MESSAGE_SIZE_LIMIT = 5242880
用戶可以發送的最大郵件
SYS_USER_LANG = en_US
語言選項,可改作:
SYS_USER_LANG = zh_CN


SYS_MAILDIR_BASE = /home/domains
此處即爲您在前文所設置的用戶郵件的存放目錄,可改作:
SYS_MAILDIR_BASE = /var/mailbox/


SYS_MYSQL_USER = db_user
SYS_MYSQL_PASS = db_pass
以上兩句句用來設置連接數據庫服務器所使用用戶名、密碼和郵件服務器用到的數據庫,這裏修改爲:
SYS_MYSQL_USER = extmail
SYS_MYSQL_PASS = extmail

SYS_MYSQL_HOST = localhost
指明數據庫服務器主機名,這裏默認即可

SYS_MYSQL_SOCKET = /var/lib/mysql/mysql.sock
連接數據庫的sock文件位置,這裏修改爲:

SYS_MYSQL_SOCKET = /tmp/mysql.sock

SYS_MYSQL_TABLE = mailbox
SYS_MYSQL_ATTR_USERNAME = username
SYS_MYSQL_ATTR_DOMAIN = domain
SYS_MYSQL_ATTR_PASSWD = password
以上用來指定驗正用戶登錄裏所用到的表,以及用戶名、域名和用戶密碼分別對應的表中列的名稱;這裏默認即可

SYS_AUTHLIB_SOCKET = /var/spool/authdaemon/socket
此句用來指明authdaemo socket文件的位置,這裏修改爲:
SYS_AUTHLIB_SOCKET = /usr/local/courier-authlib/var/spool/authdaemon/socket

 

#vim /etc/httpd/httpd.conf

文件最後添加下面內容

<VirtualHost *:80>

ServerName mail.test.com

DocumentRoot /var/www/extsuite/extmail/html/

ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi
Alias /extman /var/www/extsuite/extman/html

ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi

Alias /extmail /var/www/extsuite/extmail/html

SuexecUserGroup postfix postfix

</VirtualHost>

 

chown -R postfix.postfix /var/www/extsuite/extmail/cgi/

解決依賴關係

#tar zxvf Unix-Syslog-1.1.tar.gz -C /usr/local/src/

#cd /usr/local/src/Unix-Syslog-1.1/

perl Makefile.PL
# make
make install

#tar -zxvf DBI-1.58.tar.gz -C /usr/local/src/

#cd /usr/local/src/DBI-1.58/

# perl Makefile.PL
make
# make install

# tar -zxvf DBD-mysql-3.0002_4.tar.tar -C /usr/local/src/

# cd /usr/local/src/DBD-mysql-3.0002_4/

# perl Makefile.PL
(
此步驟中如果出現類同Can't exec "mysql_config": No such file or directory at Makefile.PL line 76.的錯誤是因爲您的mysqlbin目錄沒有輸出至$PATH環境變量)

# make
# make install

十六、安裝extman基於Web的郵件帳號管理系統

         http://www.extmail.org/

tar zxvf extman-0\[1\]\[1\].2.2.tar.gz

#mv extman-0.2.2/ /var/www/extsite/extman

vim /var/www/extsuite/extman/webman.cf

SYS_MAILDIR_BASE = /home/domains
此處即爲您在前文所設置的用戶郵件的存放目錄,可改作:
SYS_MAILDIR_BASE = /var/mailbox

SYS_MYSQL_SOCKET = /var/lib/mysql/mysql.sock
此處修改爲:
SYS_MYSQL_SOCKET = /tmp/mysql.sock

使用extman源碼目錄下docs目錄中的extmail.sqlinit.sql建立數據庫:
cd /var/www/extsuite/extman/docs
# mysql -u root -p <extmail.sql
# mysql -u root -p <init.sql
修改cgi目錄的屬主:
# chown -R postfix.postfix /var/www/extsuite/extman/cgi/
如果extman訪問數據庫權限不足的話,可採用以下命令將新生成的數據庫賦予webman用戶具有所有權限:
mysql> GRANT all privileges on extmail.* TO extmail@localhost IDENTIFIED BY 'extmail';
mysql> GRANT all privileges on extmail.* TO extmail@127.0.0.1  IDENTIFIED BY 'extmail';

#mkdir –pv /tmp/extman
#chown postfix.postfix /tmp/extman

#/usr/local/apache/bin/apachectl restart

客戶端使用瀏覽器輸入地址瀏覽(http://mail.test.com/

 

 

選擇管理即可登入extman進行後臺管理了。默認管理帳號爲:[email protected]
密碼爲:extmail*123*

如果您安裝後無法正常顯示校驗碼,安裝perl-GD模塊會解決這個問題。如果想簡單,您可以到以下地址下載適合您的平臺的rpm包,安裝即可

#rpm -ivh perl-GD-2.35-1.el4.rf.i386.rpm

如果發信提示:

SMTP rcpt error: 5.1.1 : Recipient address rejected: User unknown in local recipient table

請在/etc/postfix/main.cf裏面確保存在下面配置

local_recipient_maps =

如果發送郵件成功,但是無法接收郵件,請註釋掉下面三項:

#myhostname = mail.test.com

#myorigin = test.com

#myhostname = mail.test.com

 

安裝extman圖形日誌

安裝Time::HiRes
#tar zxvf Time-HiRes-1.9719.tar.gz -C /usr/local/src/
#cd /usr/local/src/Time-HiRes-1.9719/
#perl Makefile.PL 
#make
#make test
#make install

安裝File::Tail
# tar -zxvf File-Tail-0.99.3.tar.gz -C /usr/local/src/
# cd /usr/local/src/File-Tail-0.99.3/
#perl Makefile
#make
#make test
#make install

安裝rrdtool-1.2.23

#rpm –ivh perl-GD-2.35-1.el5.rf.i386.rpm –force
# rpm -ivh rrdtool-1.2.30-1.el5.rf.i386.rpm rrdtool-perl-1.2.27-3.el5.remi.i386.rpm

複製mailgraph_ext/usr/local,並啓動之
# cp -r /var/www/extsuite/extman/addon/mailgraph_ext /usr/local
# /usr/local/mailgraph_ext/mailgraph-init start

# /usr/local/mailgraph_ext/qmonitor-init start

添加到自動啓動隊列
#echo "/usr/local/mailgraph_ext/mailgraph-init start" >> /etc/rc.local
#echo "/usr/local/mailgraph_ext/qmonitor-init start" >> /etc/rc.local

 

十七、安裝maildrop(郵件過濾)

http://www.courier-mta.org

maildrop是一個使用C++編寫的用來代替本地MDA的帶有過濾功能郵件投遞代理,是courier郵件系統組件之一。它從標準輸入接受信息並投遞到用戶郵箱;maildrop既可以將郵件投遞到mailboxes格式郵箱,亦可以將其投遞到maildirs格式郵箱。同時,maildrop可以從文件中讀取入站郵件過濾指示,並由此決定是將郵件送入用戶郵箱或者轉發到其它地址等。和procmail不同的是,maildrop使用結構化的過濾語言,因此,郵件系統管理員可以開發自己的過濾規則並應用其中。
我們在此將使用maildrop來代替postfix自帶的MDA,並以此爲基礎擴展後文的郵件殺毒和反垃圾郵件功能的調用;在此可能會修改前文中的許多設置,請確保您的設置也做了相應的修改。
1、安裝
courier-authlib的頭文件及庫文件鏈接至/usr目錄(編譯maildrop時會到此目錄下找此些相關的文件):
# ln -sv /usr/local/courier-authlib/bin/courierauthconfig /usr/bin
# ln -sv /usr/local/courier-authlib/include/* /usr/include

       # tar -jxvf pcre-7.3.tar.bz2 -C /usr/local/src/

       # cd /usr/local/src/pcre-7.3/

# ./configure
# make 
# make check
# make install

# groupadd -g 1001 vmail
# useradd -g vmail -u 1001 -M -s /sbin/nologin vmail

#tar jxvf maildrop-2.0.4.tar.bz2 -C /usr/local/src/

#cd /usr/local/src/maildrop-2.0.4/

#./configure --enable-sendmail=/usr/sbin/sendmail --enable-trusted-users='root vmail' --enable-syslog=1 --enable-maildirquota --enable-maildrop-uid=1001 --enable-maildrop-gid=1001 --with-trashquota --with-dirsync
# make
# make install

 

檢查安裝結果,請確保有"Courier Authentication Library extension enabled."一句出現:

# maildrop -v
maildrop 2.0.4 Copyright 1998-2005 Double Precision, Inc.
GDBM extensions enabled.
Courier Authentication Library extension enabled.
Maildir quota extension enabled.

This program is distributed under the terms of the GNU General Public
License. See COPYING for additional information.

 

新建其配置文件/etc/maildroprc文件,首先指定maildrop的日誌記錄位置:
# vim  /etc/maildroprc

寫入下面記錄

logfile "/var/log/maildrop.log"  

# touch /var/log/maildrop.log
# chown vmail.vmail /var/log/maildrop.log

配置Postfix
編輯master.cf
# vim /etc/postfix/master.cf
啓用如下兩行
maildrop unix - n n - - pipe
   flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}

注意:定義transport的時候,即如上兩行中的第二行,其參數行必須以空格開頭,否則會出錯。

編輯main.cf
# vim /etc/postfix/main.cf


virtual_transport = virtual
修改爲:
virtual_transport = maildrop

將下面兩項指定的UIDGID作相應的修改:
virtual_uid_maps = static:2525
virtual_gid_maps = static:2525
修改爲:
virtual_uid_maps = static:1001
virtual_gid_maps = static:1001

編輯/etc/authmysqlrc

# vim /etc/authmysqlrc


MYSQL_UID_FIELD '2525'
MYSQL_GID_FIELD '2525'
更改爲:
MYSQL_UID_FIELD '1001'
MYSQL_GID_FIELD '1001'

注意:沒有此處的修改,maildrop可能會報告 “signal 0x06”的錯誤報告。

 

十八、配置apache


編輯/etc/httpd/httpd.conf,修改運行用戶:
如果啓用了suexec的功能,則將虛擬主機中指定的
SuexecUserGroup postfix postfix
修改爲:
SuexecUserGroup vmail vmail

將用戶郵件所在的目錄/var/mailboxextman的臨時目錄/tmp/extman的屬主和屬組指定爲vmail 
#chown -R vmail.vmail /var/mailbox

#chmod –R 0755 /var/mailbox
#chown -R vmail.vmail /tmp/extman
#chown -R vmail.vmail /var/www/extsuite/extmail/cgi/
#chown -R vmail.vmail /var/www/extsuite/extman/cgi/
#chown -R vmail.vmail /tmp/viewlog/
#/etc/init.d/courier-authlib restart

#/usr/local/postfix/sbin/postfix reload

#/usr/local/apache/bin/apachectl restart

進行發信測試後,如果日誌中的記錄類同以下項,則安裝成功
#cat /var/log/maillog


Oct 14 03:45:36 localhost postfix/pipe[31494]: 193F257594: to=<[email protected]>, relay=maildrop, delay=0.23, delays=0.16/0.02/0/0.05, dsn=2.0.0, status=sent (delivered via maildrop service)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章