#!/bin/bash
#趙雲,2012年1月29日
#本腳本為初次安裝一個郵件伺服器,友善快捷,後期的優化自己調試。
#postfix+mysql+extmail+虛拟使用者
#運作前,首先配置好系統的yum環境,腳本适用于RedHat AS 5的系統,CentOS一樣。
alias cp='cp -i'
unalias cp
yum install gcc *c++* php php-mysql mysql mysql-devel mysql-server *mysql* openssl-devel dovecot db*-devel gd-* -y &>/dev/null
yum install cyrus-sasl-lib perl-DBD-MySQL tcl tcl-devel libart_lgpl libart_lgpl-devel libtool-ltdl libtool-ltdl-devel expect -y &>/dev/null
yum install cyrus-sasl cyrus-sasl-devel cyrus-sasl-plain perl httpd dovecot perl-DBD-MySQL DBD-mysql-* -y &>/dev/null
yum remove cyrus-sasl-lib cyrus-sasl -y
#結束不必要的程序
killall dovecot &>/dev/null
killall httpd &>/dev/null
killall postfix & >/dev/null
killall sendmail &>/dev/null
#
service mysqld stop &>/dev/null
rm -rf /var/lib/mysql/*
service mysqld start &>/dev/null
service sendmail stop &>/dev/null
rpm -e postfix &>/dev/null
rpm -e sendmail --nodeps &>/dev/null
tar xzf config.tar.gz
#建立使用者
userdel -r postfix
useradd -u 1000 postfix -s /sbin/nolog
groupadd postdrop -g 90
#設定主機名
echo "請輸入主機名"
read hostname
#設定郵件域名
echo "請輸入郵件域名"
read maildomain
#設定通路域名
echo "要通路的域名"
read domain
hostname $hostanme
sed -i "s/^HOSTNAME=.*/HOSTNAME=$hostname/" /etc/sysconfig/network
#安裝postfix
tar xzf postfix-2.7.3.tar.gz
cd postfix-2.7.3
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' &>/dev/null
make &>/dev/null
clear
echo ; echo ; echo ; echo ; echo ; echo
echo "請手動配置,如果不配置,請回車"
sleep 3
make install
newaliases
cd ..
#建立資料庫
tar zxf extman-1.1.tar.gz
cd extman-1.1/docs
mysql -u root < extmail.sql
mysql -u root < init.sql
#建立虛拟使用者檔案
cp mysql_virtual_* /etc/postfix
cd ../../
#修改/etc/postfix/main.cf檔案
cp config/main.cf /etc/postfix/main.cf
#配置虛拟使用者支援--smtp認證
tar xjf courier-authlib-0.63.0.tar.bz2
cd courier-authlib-0.63.0
./configure --prefix=/usr/local/courier-authlib --without-stdheaderdir --with-authmy--with-mysql-libs=/usr/lib/mysql \
--with-mysql-includes=/usr/include/mysql &>/dev/null && make &>/dev/null && make install &>/dev/null
make install-configure &>/dev/null
cp courier-authlib.sysvinit /etc/init.d/courier-authlib
#修改主配置,authdaemonrc 檔案
dir=/usr/local/courier-authlib/etc/authlib
sed -i '27cauthmodulelist="authmysql"' $dir/authdaemonrc
sed -i '34cauthmodulelistorig="authmysql"' $dir/authdaemonrc
#修改資料庫配置,authmysqlrc 檔案
sed -i '26cMYSQL_SERVER 127.0.0.1' $dir/authmysqlrc
sed -i '27cMYSQL_USERNAME extmail' $dir/authmysqlrc
sed -i '28cMYSQL_PASSWORD extmail' $dir/authmysqlrc
sed -i '49c#MYSQL_SOCKET /tmp/mysql.sock' $dir/authmysqlrc
sed -i '68cMYSQL_DATABASE extmail' $dir/authmysqlrc
sed -i '83cMYSQL_USER_TABLE mailbox' $dir/authmysqlrc
sed -i '133cMYSQL_HOME_FIELD concat('/mailbox/',homedir)' $dir/authmysqlrc
sed -i '150cMYSQL_MAILDIR_FIELD concat('/mailbox/',maildir)' $dir/authmysqlrc
#通過authdaemond進行認證
echo 'pwcheck_method: authdaemond' > /usr/lib/sasl2/smtpd.conf
echo 'authdaemond_path:/usr/local/courier-authlib/var/spool/authdaemon/socket/'>>/usr/lib/sasl2/smtpd.conf
chmod -R 755 /usr/local/courier-authlib/var/spool/authdaemon
echo "/usr/local/courier-authlib/lib/courier-authlib " >> /etc/ld.so.conf
ldconfig &>/dev/null
chmod 755 /etc/init.d/courier-authlib
chkconfig --add courier-authlib
chkconfig mysqld on
chkconfig courier-authlib on
service courier-authlib start
#配置虛拟使用者支援
cp config/dovecot.conf /etc/dovecot.conf
#配置資料查詢檔案
cp config/dovecot-mysql.conf /etc/dovecot-mysql.conf
#建立郵箱目錄,并調整權限
rm -rf /mailbox
mkdir -p /mailbox/extmail.org/postmaster/Maildir
chown -R postfix:postfix /mailbox
#安裝Extmail
tar xzf Unix-Syslog-1.1.tar.gz
cd Unix-Syslog-1.1
perl Makefile.PL &>/dev/null
make &>/dev/null ; make install &>/dev/null
tar xzf DBI-1.616.tar.gz
cd DBI-1.616
perl Makefile.PL &>/dev/null
#安裝extmail 程式套件
tar xzf extmail-1.2.tar.gz
rm -rf /var/www/extmail
mv extmail-1.2 /var/www/extmail
cp config/webmail.cf /var/www/extmail/webmail.cf
cp config/httpd.conf /etc/httpd/conf/httpd.conf
#重新啟動dovecot服務
service dovecot restart
#郵箱賬号:postmaster 密碼:extmail 域名:extmail.org
#部署Extman Web 管理界面
tar xzf GD-2.46.tar.gz
cd GD-2.46
perl Makefile.PL &>/dev/null; make &>/dev/null ; make install &>/dev/null
tar xzf File-Tail-0.99.3.tar.gz
cd File-Tail-0.99.3
rpm -ivh rrdtool-1.2.27-3.el5.i386.rpm &>/dev/null
rpm -ivh rrdtool-perl-1.2.27-3.el5.i386.rpm &>/dev/null
tar xzf extman-1.1.tar.gz
rm -rf /var/www/html/extman
mv extman-1.1 /var/www/html/extman
chown -R postfix:postfix /var/www/html/extman/
chown -R postfix:postfix /var/www/html/extman/cgi/
cp config/webman.cf /var/www/html/extman/webman.cf
mkdir /var/extman &>/dev/null
chmod 777 /var/extman
rm -rf /usr/local/mailgraph_ext
mkdir /usr/local/mailgraph_ext
cp /var/www/html/extman/addon/mailgraph_ext/mailgraph_ext.pl /usr/local/mailgraph_ext/
cp /var/www/html/extman/addon/mailgraph_ext/qmonitor.pl /usr/local/mailgraph_ext/
/var/www/html/extman/addon/mailgraph_ext/mailgraph-init start
sed -i "993c<VirtualHost $domain>" /etc/httpd/conf/httpd.conf
sed -i "994cServerName $domain" /etc/httpd/conf/httpd.conf
sed -i "69cmyhostname = $hostname" /etc/postfix/main.cf
sed -i "s/^mydomain.*/mydomain = $maildomain/g" /etc/postfix/main.cf
service httpd restart
/var/www/html/extman/daemon/cmdserver -d &>/dev/null
#在浏覽器中通路 http://伺服器位址/extman/
#添加開機啟動服務
cp config/postfix /etc/init.d/
chkconfig --add postfix
service postfix restart &>/dev/null
chkconfig dovecot on
chkconfig httpd on
chkconfig postfix on
#删除臨時檔案
rm -rf DBI-1.616
rm -rf Unix-Syslog-1.1
rm -rf postfix-2.7.3
rm -rf File-Tail-0.99.3
rm -rf courier-authlib-0.63.0
rm -rf GD-2.46
rm -rf config
echo "
安裝完成,請使用浏覽器打開 http://伺服器域名/extman/
預設密碼在完成安裝後自行修改。
使用者郵箱登入http://伺服器域名
預設郵箱賬号:postmaster 密碼:extmail 域名:extmail.org "
echo ; echo ; echo ; echo ; echo ; echo
這個是腳本的内容,可下載下傳安裝包,我都打包好了。
減壓後,由一個install.sh的檔案,用本腳本内容替換掉,按提示執行安裝。
本文轉自zhaoyun00 51CTO部落格,原文連結:http://blog.51cto.com/zhaoyun/768714