1. 程式人生 > >Linux+postfix+extmail+dovecot打造基於web頁面的郵件系統

Linux+postfix+extmail+dovecot打造基於web頁面的郵件系統

準備階段:需要手動下載的軟體包:

postfix-2.6.5.tar.gz
courier-authlib-0.62.4.tar.bz2
eextmail-1.2.tar.gz
xtman-1.1.tar.gz
Time-HiRes-1.9707.tar.gz
File-Tail-0.99.3.tar.gz
rrdtool-1.2.23.tar.gz

1.配置好yum源,以本地光碟為例。

將redhat5.6光碟掛載到虛擬機器上,使用如下命令配置yum源,下面的過程會使用。

mkdir /media/cdrom
mount /dev/cdrom /media/cdrom
rm /etc/yum.repo/* -rf
vim /etc/yum.repos.d/server.repo
[base]
name=Instructor Server Repository
baseurl=file:///media/cdrom/Server
gpgcheck=0
 [VT]
name=Instructor VT Repository
baseurl=file:///media/cdrom/VT
gpgcheck=0
 [Cluster]
name=Instructor Cluster Repository
baseurl=file:///media/cdrom/Cluster
gpgcheck=0
 [ClusterStorage]
name=Instructor ClusterStorage Repository
baseurl=file:///media/cdrom/ClusterStorage
gpgcheck=0

2.配置自己的dns伺服器,我以dean.com域為例

1)安裝bind

yum install bind

yum install caching-nameserver       # 這個軟體包可以自動建立一個純快取域名伺服器

2)手動建立配置檔案

vim /etc/named

options {
       directory "/var/named";
};
zone "." {
        typehint;
        file"named.ca";
};
zone "localhost" {
        typemaster;
        file"localhost.zone";
};
zone "0.0.127.in-addr.arpa" {
        typemaster;
        file "named.local";
};
zone "dean.com" {
        typemaster;
        file"dean.com.zone";
};
zone "0.168.192.in-addr.arpa" {
        typemaster;
        file"192.arpa";
};

3) 手動建立正反向dean.com域檔案 

cd /var/named
vim dean.com.zone
$TTL 86400
dean.com.              IN      SOA     ns.dean.com.    admin.dean.com. (
                                                       2011082301
                                                       1H
                                                       10M
                                                       7D
                                                        1D)
                                NS      ns.dean.com.
                                MX 10   mail.dean.com.
ns.dean.com.           IN      A       192.168.0.32
mail.dean.com.         IN      A       192.168.0.32
 
vim 192.arpa
$TTL 86400
@                      IN      SOA     ns.dean.com.    admin.dean.com. (
                                                       2011082301
                                                       1H
                                                       10M
                                                       7D
                                                       1D )
                                NS      ns.dean.com.
                               MX 10   mail.dean.com.
32           IN      PTR     ns.dean.com.
32           IN      PTR     mail.dean.com.

chown :named /var/named/* -R

service named start

# 修改主機名稱

vim /etc/sysconfig/network

HOSTNAME=mail.dean.com

hostname mail.dean.com

vim /etc/hosts

127.0.0.1              mail.dean.com localhost

# 修改虛擬機器的預設DNS,測試下我們自己配置的DNS是否正常

vim /etc/resolv.conf

nameserver 192.168.0.32                          #只保留這一行就行

dig -t A mail.dean.com @127.0.0.1             #能解析出192.168.0.32說明正常

dig -x 192.168.0.32 @127.0.0.1                #能正常解析出mail.dean.com說明正常


成功建立DNS後,下面進入正式階段:(以下根據老師的文章略作修改)整個構架圖如下:

1、首選安裝相關的rpm包,使用yum安裝下列rpm包

httpd, php, php-mysql, mysql, mysql-server,mysql-devel, openssl-devel, dovecot, perl-DBD-MySQL, tcl, tcl-devel,libart_lgpl, libart_lgpl-devel,libtool-ltdl,libtool-ltdl-devel

yum install -y httpd php php-mysql mysql mysql-servermysql-devel openssl-devel dovecot perl-DBD-MySQL tcl tcl-devel libart_lgpllibart_lgpl-devel libtool-ltdl libtool-ltdl-devel

2、因為我們使用postfix,所以最好關閉sendmail,甚至是解除安裝

service sendmail stop

chkconfig sendmail off                        # 開機不啟動

rpm –e sendmail --nodeps

3、最好事先安裝下列元件,防止編譯出錯:

Development Libraries

Development Tools

Legacy Software Development

X Software Development

yum groupinstall "Development Libraries""Development Tools" "Legacy Software Development" "XSoftware Development" –y

4、啟動mysql資料庫,並給mysql的root使用者設定密碼:

service mysqld start

chkconfig mysqld on

mysqladmin -u root password 'redhat' 

set password [email protected]'localhost'=password('redhat');  

set password for [email protected]'127.0.0.1'=password('redhat');   #設定本地密碼

GRANT ALL PRIVILEGES ON *.* TO [email protected]'%' IDENTIFIED BY ‘redhat’;#設定遠端登陸密碼

FLUSH PRIVILEGES;

quit

#啟動saslauthd服務,並將其加入到自動啟動佇列:

 servicesaslauthd start

chkconfig saslauthd on

 

二、安裝配置postfix

#建立postfix使用者

 groupadd -g2525 postfix   #大於一千最好 -g

 useradd -gpostfix -u 2525 -s /sbin/nologin -M postfix

groupadd -g 2526 postdrop

 useradd -gpostdrop -u 2526 -s /bin/false -M postdrop

假設準備階段的軟體包都存放在/mnt/postfix裡

 tar zxvfpostfix-2.6.5.tar.gz

 cdpostfix-2.6.5

 make makefiles'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL-I/usr/include/sasl  -DUSE_TLS ''AUXLIBS=-L/usr/lib/mysql -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2   -lssl -lcrypto'

#gcc的編譯選項;mysql標頭檔案;支援sasl認證;cyrus_sasl的標頭檔案;mysql的客戶端;指明auxlibs的位置

make

make install

 

安裝過程中會出現一些提示除了tempdir:改為/tmp,其他使用預設項,直接直接回車        

  install_root: [/] /

  tempdir:[/usr/local/src/ postfix-2.6.5] /tmp

  config_directory:[/etc/postfix] /etc/postfix

  daemon_directory:[/usr/libexec/postfix]

  command_directory:[/usr/sbin]

  queue_directory:[/var/spool/postfix]

  sendmail_path:[/usr/sbin/sendmail]

  newaliases_path:[/usr/bin/newaliases]

  mailq_path:[/usr/bin/mailq]

  mail_owner: [postfix]

  setgid_group:[postdrop]  

   html_directory: [no] /var/www/postfix_html

    manpages:[/usr/local/man]

   readme_directory: [no]

安裝後會由警告,不用理會

newaliases                                       # 生成別名二進位制檔案,可有可無,反正以後也要打

2.進行一些基本配置,測試啟動postfix並進行發信

vi /etc/postfix/main.cf

修改以下幾項為您需要的配置

myhostname = mail.dean.com

myorigin = dean.com

mydomain = dean.com

mydestination = $myhostname, localhost.$mydomain,localhost, $mydomain

mynetworks = 192.1680.0/24, 127.0.0.1/8

 

說明:

myorigin引數用來指明發件人所在的域名;

mydestination引數指定postfix接收郵件時收件人的域名,即您的postfix系統要接收到哪個域名的郵件;

myhostname 引數指定執行postfix郵件系統的主機的主機名,預設情況下,其值被設定為本地機器名;

mydomain引數指定您的域名,預設情況下,postfix將myhostname的第一部分刪除而作為mydomain的值;

mynetworks 引數指定你所在的網路的網路地址,postfix系統根據其值來區別使用者是遠端的還是本地的,如果是本地網路使用者則允許其訪問;

inet_interfaces 引數指定postfix系統監聽的網路介面;

 

注意:

1、在postfix的配置檔案中,引數行和註釋行是不能處在同一行中的;

2、任何一個引數的值都不需要加引號,否則,引號將會被當作引數值的一部分來使用;

3、每修改引數及其值後執行 postfix reload 即可令其生效;但若修改了inet_interfaces,則需重新啟動postfix;

4、如果一個引數的值有多個,可以將它們放在不同的行中,只需要在其後的每個行前多置一個空格即可;postfix會把第一個字元為空格或tab的文字行視為上一行的延續;

 

啟動postfix

/usr/sbin/postfix start

#手動建立啟動指令碼

vim /etc/init.d/postfix
 

#!/bin/bash
. /etc/rc.d/init.d/functions
. /etc/sysconfig/network
[ ${NETWORKING} = "no" ] && exit 0
 
[ -x /usr/sbin/postfix ] || exit 0
[ -d /etc/postfix ] || exit 0
[ -d /var/spool/postfix ] || exit 0
 
RETVAL=0
prog="postfix"
 
start() {
       # Startdaemons.
       echo -n{1}quot;Starting postfix: "
       /usr/bin/newaliases >/dev/null 2>&1
       /usr/sbin/postfixstart 2>/dev/null 1>&2 && success || failure {1}quot;$progstart"
       RETVAL=$?
       [ $RETVAL-eq 0 ] && touch /var/lock/subsys/postfix
        echo
       return$RETVAL
}
 
stop() {
        # Stopdaemons.
       echo -n{1}quot;Shutting down postfix: "
       /usr/sbin/postfixstop 2>/dev/null 1>&2 && success || failure {1}quot;$progstop"
       RETVAL=$?
       [ $RETVAL-eq 0 ] && rm -f /var/lock/subsys/postfix
       echo
       return$RETVAL
}
 
reload() {
       echo -n{1}quot;Reloading postfix: "
       /usr/sbin/postfixreload 2>/dev/null 1>&2 && success || failure {1}quot;$progreload"
       RETVAL=$?
       echo
       return$RETVAL
}
abort() {
       /usr/sbin/postfixabort 2>/dev/null 1>&2 && success || failure {1}quot;$progabort"
       return $?
}
flush() {
       /usr/sbin/postfixflush 2>/dev/null 1>&2 && success || failure {1}quot;$progflush"
       return $?
}
check() {
       /usr/sbin/postfixcheck 2>/dev/null 1>&2 && success || failure {1}quot;$progcheck"
       return $?
}
restart() {
       stop
       start
}
# See how we were called.
case "$1" in
  start)
       start
       ;;
  stop)
       stop
       ;;
  restart)
       stop
       start
       ;;
  reload)
       reload
       ;;
  abort)
       abort
       ;;
  flush)
       flush
       ;;
  check)
       check
       ;;
  status)
      status master
       ;;
  condrestart)
       [ -f/var/lock/subsys/postfix ] && restart || :
       ;;
  *)
       echo{1}quot;Usage: $0{start|stop|restart|reload|abort|flush|check|status|condrestart}"
       exit 1
esac
exit $?

-------------------------------------------------------------------------------------------

# 別忘了給執行許可權

chmod +x /etc/init.d/postfix

chkconfig --add postfix                 # 這步可能加不,不用管它

 

連線postfix,驗正服務啟動狀況:

[[email protected] postfix]# telnet 192.168.0.71 25

Trying 192.168.0.71...

Connected to station71.redhat_hu.com (192.168.0.71).

Escape character is '^]'.

220 mail.evo.com ESMTP Postfix

ehlo mail.evo.com

250-mail.evo.com

250-PIPELINING

250-SIZE 10240000

250-VRFY

250-ETRN

250-ENHANCEDSTATUSCODES

250-8BITMIME

250 DSN

mail from:[email protected]

250 2.1.0 Ok

rcpt to:[email protected]

250 2.1.5 Ok

data

354 End data with<CR><LF>.<CR><LF>

subject:test

test 123...

.

250 2.0.0 Ok: queued as 7AAD51B803D

quit

221 2.0.0 Bye

Connection closed by foreign host.

You have mail in /var/spool/mail/root

[[email protected] postfix]# mail

Mail version 8.1 6/6/93.  Type ? for help.

"/var/spool/mail/root": 1 message 1 new

>N  [email protected]          Sun Aug 1420:03  15/481   "test"

#測試成功

 

三、為postfix開啟基於cyrus-sasl的認證功能

 

使用以下命令驗正postfix是否支援cyrus風格的sasl認證,如果您的輸出為以下結果,則是支援的:

/usr/sbin/postconf -a

cyrus

dovecot

 

vi /etc/postfix/main.cf

新增以下內容:
 

############################CYRUS-SASL############################
 
broken_sasl_auth_clients = yes
 
#定義是否允許突破sasl認證
 
smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_invalid_hostname,reject_non_fqdn_hostname,reject_unknown_sender_domain,reject_non_fqdn_sender,reject_non_fqdn_recipient,reject_unknown_recipient_domain,reject_unauth_pipelining,reject_unauth_destination
 
#拒絕xxxxxxxxx
 
smtpd_sasl_auth_enable = yes
 
smtpd_sasl_local_domain = $myhostname
 
smtpd_sasl_security_options = noanonymous
 
smtpd_sasl_application_name = smtpd
 
smtpd_banner = Welcome to our $myhostnameESMTP,Warning: Version has been hidden!
 
#歡迎資訊且隱藏版本號
 

vi /usr/lib/sasl2/smtpd.conf

新增如下內容:

pwcheck_method: saslauthd

mech_list: PLAIN LOGIN

 

讓postfix重新載入配置檔案

/usr/sbin/postfix reload

service postfix restart

 

[[email protected] postfix]# telnet 192.168.0.32

Trying 192.168.0.32.

Connected to station71.redhat_hu.com (192.168.0.32

Escape character is '^]'.

220 Welcome to our mail.evo.com ESMTP,Warning: Versionhas been hidden.

ehlo mail.evo.com

250-mail.evo.com

250-PIPELINING

250-SIZE 10240000

250-VRFY

250-ETRN

250-AUTH PLAIN LOGIN

250-AUTH=PLAIN LOGIN #有以上兩行說明CYRUS-SASL認證新增成功

250-ENHANCEDSTATUSCODES

250-8BITMIME

250 DSN

quit

221 2.0.0 Bye

Connection closed by foreign host.

#測試

 

四、安裝Courierauthentication library

注意:確保安裝libtool-ltdl,libtool-ltdl-devel不然會報錯

 

# tar jxvf courier-authlib-0.62.4.tar.bz2

# cd courier-authlib-0.62.4

#./configure --prefix=/usr/local/courier-authlib --sysconfdir=/etc--with-authmysql --with-mysql-libs=/usr/lib/mysql--with-mysql-includes=/usr/include/mysql --with-redhat--with-authmysqlrc=/etc/authmysqlrc --with-authdaemonrc=/etc/authdaemonrcCFLAGS="-march=i686 -O2 -fexpensive-optimizations"   CXXFLAGS="-march=i686 -O2-fexpensive-optimizations"

 

# make

# make install

 

# chmod 755/usr/local/courier-authlib/var/spool/authdaemon

# cp /etc/authdaemonrc.dist  /etc/authdaemonrc

# cp /etc/authmysqlrc.dist  /etc/authmysqlrc

 

修改/etc/authdaemonrc 檔案

authmodulelist="authmysql"

authmodulelistorig="authmysql"    #修改這3行

daemons=10

 

編輯/etc/authmysqlrc 為以下內容,其中2525,2525 為postfix 使用者的UID和GID。
 

MYSQL_SERVER localhost
 
MYSQL_PORT 3306                   (指定你的mysql監聽的埠,這裡使用預設的3306)
 
MYSQL_USERNAME extmail      (這時為後文要用的資料庫的所有者的使用者名稱)
 
MYSQL_PASSWORD extmail        (密碼)
 
MYSQL_SOCKET /var/lib/mysql/mysql.sock #此行前註釋去掉
 
------------------------------------------------
 
MYSQL_DATABASE extmail         #自動生成,不要修改?
 
------------------------------------------------
 
MYSQL_USER_TABLE mailbox
 
MYSQL_CRYPT_PWFIELD password
 
MYSQL_UID_FIELD '2525'
 
MYSQL_GID_FIELD '2525'
 
MYSQL_LOGIN_FIELD username
 
MYSQL_HOME_FIELD concat('/var/mailbox/',homedir)          #郵箱的位置
 
MYSQL_NAME_FIELD name
 
MYSQL_MAILDIR_FIELD concat('/var/mailbox/',maildir)  
 

# cp courier-authlib.sysvinit/etc/init.d/courier-authlib                     #courier提供的啟動指令碼

# chmod 755 /etc/init.d/courier-authlib

# chkconfig --add courier-authlib

# chkconfig --level 2345 courier-authlib on

 

#echo"/usr/local/courier-authlib/lib/courier-authlib" >>/etc/ld.so.conf  #或新增庫檔案/etc/ld.so.conf.d/courier.conf

[[email protected] courier-authlib-0.62.4]#  ldconfig -v | grep courier

/usr/local/courier-authlib/lib/courier-authlib:

       libcourierauthcommon.so-> libcourierauthcommon.so.0

       libcourierauth.so-> libcourierauth.so.0

       libcourierauthsasl.so-> libcourierauthsasl.so.0

       libcourierauthsaslclient.so-> libcourierauthsaslclient.so.0

#庫檔案成功載入

# service courier-authlib start   (啟動服務)

ps aux |grep courier

#檢視程序啟動

 

新建虛擬使用者郵箱所在的目錄,並將其許可權賦予postfix使用者:

#mkdir –pv /var/mailbox

#chown –R postfix/var/mailbox   #所有使用者的郵件都在這裡

 

接下來重新配置SMTP 認證,編輯 /usr/local/lib/sasl2/smtpd.conf ,確保其為以下內容:

#加入這些內容

pwcheck_method: authdaemond

log_level: 3

mech_list:PLAIN LOGIN

authdaemond_path:/usr/local/courier-authlib/var/spool/authdaemon/socket

 

五、讓postfix支援虛擬域和虛擬使用者

 

1、編輯/etc/postfix/main.cf,新增如下內容:
 

########################Virtual MailboxSettings########################
 
virtual_mailbox_base = /var/mailbox
 
virtual_mailbox_maps =mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
 
virtual_mailbox_domains =mysql:/etc/postfix/mysql_virtual_domains_maps.cf
 
virtual_alias_domains =
 
virtual_alias_maps =mysql:/etc/postfix/mysql_virtual_alias_maps.cf
 
virtual_uid_maps = static:2525
 
virtual_gid_maps = static:2525
 
virtual_transport = virtual
 
maildrop_destination_recipient_limit = 1
 
maildrop_destination_concurrency_limit = 1
 
##########################QUOTASettings########################
 
message_size_limit = 14336000
 
virtual_mailbox_limit = 20971520
 
virtual_create_maildirsize = yes
 
virtual_mailbox_extended = yes
 
virtual_mailbox_limit_maps =mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
 
virtual_mailbox_limit_override = yes
 
virtual_maildir_limit_message = Sorry, the user'smaildir has overdrawn his diskspace quota, please Tidy your mailbox and tryagain later.
virtual_overquota_bounce = yes
 

2、使用extman原始碼目錄下docs目錄中的extmail.sql和init.sql建立資料庫:

 

# tar zxvf extman-1.1.tar.gz

# cd extman-1.1/docs

# mysql -u root -p <extmail.sql   #新增extmail.sql資料庫到mysql

# mysql -u root -p <init.sql

# cp mysql* /etc/postfix/

 

3、授予使用者extmail訪問extmail資料庫的許可權

mysql> GRANT all privileges on extmail.* [email protected] IDENTIFIED BY 'extmail';

mysql> GRANT all privileges on extmail.* [email protected] IDENTIFIED BY 'extmail';

 

說明:啟用虛擬域以後,需要取消中心域,即註釋掉myhostname,mydestination, mydomain, myorigin幾個指令;當然,你也可以把mydestionation的值改為你自己需要的。

 

六、配置dovecot

# vi /etc/dovecot.conf

mail_location =maildir:/var/mailbox/%d/%n/Maildir #修改之
 
……
 
auth default { 
 
mechanisms =plain
 
#注意把pam{}這一項註釋掉!!! 
 
passdb sql {
 
args =/etc/dovecot-mysql.conf #新增之
 
}
 
userdb sql {
 
args =/etc/dovecot-mysql.conf #新增之 
 
}
 
……

 # vi /etc/dovecot-mysql.conf

driver = mysql                                                                             #驅動
 
connect = host=localhost dbname=extmail user=extmailpassword=extmail   #連線項
 
default_pass_scheme = CRYPT
 
password_query = SELECT username AS user,password ASpassword FROM mailbox WHERE username = '%u'                           
 
user_query = SELECT maildir, uidnumber AS uid,gidnumber AS gid FROM mailbox WHERE username = '%u'

接下來啟動dovecot服務:

# service dovecot start

# chkconfig dovecot on

#netstat檢視服務啟動情況

七、安裝Extmail-1.2

1、安裝

# tar zxvf extmail-1.2.tar.gz

# mkdir -pv /var/www/extsuite

# mv extmail-1.2 /var/www/extsuite/extmail

# cp /var/www/extsuite/extmail/webmail.cf.default  /var/www/extsuite/extmail/webmail.cf

 

2、修改主配置檔案

#vi /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_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

 

3、apache相關配置

由於extmail要進行本地郵件的投遞操作,故必須將執行apache伺服器使用者的身份修改為您的郵件投遞代理的使用者;本例中打開了apache伺服器的suexec功能,故使用以下方法來實現虛擬主機執行身份的指定。此例中的MDA為postfix自帶,因此將指定為postfix使用者:
 

<VirtualHost *:80>
 
ServerName mail.test.com
 
DocumentRoot /var/www/extsuite/extmail/html/
 
ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi
 
Alias /extmail /var/www/extsuite/extmail/html
 
SuexecUserGroup postfix postfix
 
</VirtualHost>

修改 cgi執行檔案屬主為apache執行身份使用者:

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

 

如果您沒有開啟apache伺服器的suexec功能,也可以使用以下方法解決:

# vi /etc/httpd/httpd.conf

User postfix

Group postfix

 

<VirtualHost *:80>

ServerName mail.test.com

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

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

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

</VirtualHost>

 

4、依賴關係的解決

 

extmail將會用到perl的Unix::syslogd功能,您可以去http://search.cpan.org搜尋下載原碼包進行安裝。

# tar zxvf Unix-Syslog-0.100.tar.gz

# cd Unix-Syslog-0.100

# perl Makefile.PL

# make

# make install

 

5、啟動apache服務

# service httpd start

# chkconfig httpd on

 

八、安裝Extman-1.1

 

1、安裝及基本配置

 

# tar zxvf extman-1.1.tar.gz

# mv extman-1.1 /var/www/extsuite/extman

 

修改配置檔案以符合本例的需要:

# cp /var/www/extsuite/extman/webman.cf.default  /var/www/extsuite/extman/webman.cf

# vi /var/www/extsuite/extman/webman.cf

 

SYS_MAILDIR_BASE = /home/domains

此處即為您在前文所設定的使用者郵件的存放目錄,可改作:

SYS_MAILDIR_BASE = /var/mailbox

 

修改cgi目錄的屬主:

# chown -R postfix.postfix/var/www/extsuite/extman/cgi/

 

在apache的主配置檔案中Extmail的虛擬主機部分,新增如下兩行:

ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi

Alias /extman /var/www/extsuite/extman/html

 

建立其執行時所需的臨時目錄,並修改其相應的許可權:

#mkdir  -pv  /tmp/extman

#chown postfix.postfix /tmp/extman

 

修改

SYS_CAPTCHA_ON = 1 #驗證碼功能

SYS_CAPTCHA_ON = 0

 

好了,到此為止,重新啟動apache伺服器後,您的Webmail和Extman已經可以使用了,可以在瀏覽器中輸入指定的虛擬主機的名稱(直接輸ip)進行訪問,如下:

http://mail.test.com

 

若進不去↓

【選擇管理】即可登入extman進行後臺管理了。預設管理帳號為:[email protected] 密碼為:extmail*123*

【域列表】--新增域儲存好了後 在進去  勾選【允許註冊】

 

 

---------------------------------------------------------------------

測試:註冊倆使用者,一個給另一個發郵件就OK了

---------------------------------------------------------------------

 

 

說明:

(1) 如果您安裝後無法正常顯示校驗碼,安裝perl-GD模組會解決這個問題。如果想簡單,您可以到以下地址下載適合您的平臺的rpm包,安裝即可: http://dries.ulyssis.org/rpm/packages/perl-GD/info.html

(2) extman-1.1自帶了圖形化顯示日誌的功能;此功能需要rrdtool的支援,您需要安裝此些模組才可能正常顯示圖形日誌。

 

2、配置Mailgraph_ext,使用Extman的圖形日誌:(下面所需的軟體包面要自己下載)

接下來安裝圖形日誌的執行所需要的軟體包Time::HiRes、File::Tail和rrdtool,其中前兩個包您可以去http://search.cpan.org搜尋並下載獲得,後一個包您可以到 http://oss.oetiker.ch/rrdtool/pub/?M=D下載獲得;注意安裝順序不能改換。

 

安裝Time::HiRes

#tar zxvf Time-HiRes-1.9707.tar.gz

#cd Time-HiRes-1.9707

#perl Makefile.PL

#make

#make test

#make install

 

安裝File::Tail

#tar zxvf File-Tail-0.99.3.tar.gz

#cd File-Tail-0.99.3

#perl Makefile

#make

#make test

#make install

 

安裝rrdtool-1.2.23

#tar zxvf rrdtool-1.2.23.tar.gz

#cd rrdtool-1.2.23

#./configure --prefix=/usr/local/rrdtool

#make

#make install

 

建立必要的符號連結(Extman會到這些路徑下找相關的庫檔案)

#ln -sv /usr/local/rrdtool/lib/perl/5.8.5/i386-linux-thread-multi/auto/RRDs/RRDs.so  /usr/lib/perl5/5.8.5/i386-linux-thread-multi/

#ln -sv /usr/local/rrdtool/lib/perl/5.8.5/RRDp.pm   /usr/lib/perl5/5.8.5

#ln -sv/usr/local/rrdtool/lib/perl/5.8.5/i386-linux-thread-multi/RRDs.pm   /usr/lib/perl5/5.8.5

 

複製mailgraph_ext到/usr/local,並啟動之

# cp -r/var/www/extsuite/extman/addon/mailgraph_ext /usr/local 

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

 

啟動cmdserver(在後臺顯示系統資訊)

# /var/www/extsuite/extman/daemon/cmdserver --daemon

 

新增到自動啟動佇列

# echo “/usr/local/mailgraph_ext/mailgraph-init start”>> /etc/rc.d/rc.local

# echo “/var/www/extsuite/extman/daemon/cmdserver -v-d” >> /etc/rc.d/rc.local

 

使用方法: 等待大約15分鐘左右,如果郵件系統有一定的流量,即可登陸到extman裡,點“圖形日誌”即可看到圖形化的日誌。具體每天,周,月,年的則點選相應的圖片進入即可。

--------------------- 
原文:https://blog.csdn.net/deansrk/article/details/6717720