首先進行安裝ucspi-tcp-0.88 AS3的glibc的版本問題,打完補丁才能正常編譯 root: ~ tar zxvf ucspi-tcp-0.88.tar.gz root: ~ cd ucspi-tcp-0.88 root: ~ patch -p1 ucspi-tcp-0.88.a_record.patch \\ 補丁所在路徑 root: ~ patch -p1 ucspi-tcp-0.88.errno.p
首先進行安裝ucspi-tcp-0.88
AS3的glibc的版本問題,打完補丁才能正常編譯
root: ~ $ tar zxvf ucspi-tcp-0.88.tar.gz
root: ~ $ cd ucspi-tcp-0.88
root: ~ $ patch -p1 < ucspi-tcp-0.88.a_record.patch \\ 補丁所在路徑
root: ~ $ patch -p1 < ucspi-tcp-0.88.errno.patch \\ 補丁所在路徑
root: ~ $ patch -p1 < ucspi-tcp-0.88.nobase.patch \\ 補丁所在路徑
root: ~ $ make
root: ~ $ make setup check
##################
安裝qmail-1.03
root: ~ $ mkdir /var/qmail
root: ~ $ mkdir /var/qmail/alias
建立組及用戶
root: ~ $ groupadd nofiles
root: ~ $ groupadd qmail
root: ~ $ useradd alias -g nofiles -d /var/qmail/alias -s /nonexistent
root: ~ $ useradd qmaild -g nofiles -d /var/qmail -s /nonexistent
root: ~ $ useradd qmaill -g nofiles -d /var/qmail -s /nonexistent
root: ~ $ useradd qmailp -g nofiles -d /var/qmail -s /nonexistent
root: ~ $ useradd qmailq -g qmail -d /var/qmail -s /nonexistent
root: ~ $ useradd qmailr -g qmail -d /var/qmail -s /nonexistent
root: ~ $ useradd qmails -g qmail -d /var/qmail -s /nonexistent
打補丁及編繹安裝qmail
root: ~ $ tar zxvf qmail-1.03.tar.gz
root: ~ $ tar zxvf qmail-smtpd-auth-0.31.tar.gz
root: ~ $ cp qmail-smtpd-auth-0.31/base64.* qmail-1.03 \\ 打smtp-auth補丁,支持smtp認證
root: ~ $ patch -d qmail-1.03 < qmail-smtpd-auth-0.31/auth.patch \\ 補丁路徑
root: ~ $ cd qmail-1.03
root: ~ $ patch -p1 < qmail-103.patch \\ 補丁路徑
root: ~ $ patch -p1 < qmailqueue-patch \\ 補丁路徑
root: ~ $ patch -p1 < qmail-maildir++.patch \\ 補丁路徑
root: ~ $ patch -p1 < qmail-1.03.errno.patch \\ 補丁路徑
root: ~ $ patch -p1 < qmail-1.03.qmail_local.patch \\ 補丁路徑
root: ~ $ vi qmail-smtpd.c \\ 搜索函數straynewline中的451改為553
// 當你的
服務器收到無效格式的郵件時,會發送:"I am not going to a
clearcase/" target="_blank" >ccept that message at the moment,you can try again later",對方服務器收到後,幾秒鐘後又會發送同樣的郵件給你,造成多次的重復。
// 改為553後,你的服務器將直接發送:"I am not going to accept that message,don't try sending it again.",告訴對方的服務器不要再發這封無效的信件。
root: ~ $ make setup check
root: ~ $ ./config-fast mail.snoopy.gov \\ 這裡改為你的域名
添加別名用戶
root: ~ $ touch /var/qmail/alias/.qmail-root
root: ~ $ touch /var/qmail/alias/.qmail-postmaster
root: ~ $ touch /var/qmail/alias/.qmail-mailer-daemon
root: ~ $ chmod 644 /var/qmail/alias/.qmail*
root: ~ $ echo postmaster > /var/qmail/control/bouncefrom \\ 退回郵件
root: ~ $ echo mail.snoopy.gov > /var/qmail/control/helohost \\ 主機名(解決新浪拒收郵件問題)
root: ~ $ echo 10485760 > /var/qmail/control/databytes \\ 接收郵件的最大容量 (0=無限制)??
root: ~ $ echo 40 > /var/qmail/control/concurrencylocal \\ 本地同時投遞郵件的數目
root: ~ $ echo 40 > /var/qmail/control/concurrencyremote \\ 同時投遞至遠程主機的數目
/var/qmail/control/locals \\ 確保文件中有缺省域名,否則投遞失敗的郵件將不知所蹤
如果存在postfix和sendmail,或其他郵件服務,停用現在的mail服務,或則刪除它!
root: ~ $ /etc/rc.d/init.d/sendmail stop
root: ~ $ cp /var/qmail/bin/sendmail /usr/sbin/qmail.sendmail
root: ~ $ rm -f /etc/alternatives/mta
root: ~ $ ln -s /usr/sbin/qmail.sendmail /etc/alternatives/mta
root: ~ $ ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
root: ~ $ ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
root: ~ $ chmod 777 /usr/sbin/sendmail \\ 這裡特別要注意檢查/usr/sbin/sendmail的屬性.不然會導致裝完後用igenus在web界面發信不成功
###################
安裝vpopmail
root: ~ $ mkdir /home/vpopmail
root: ~ $ mkdir /home/vpopmail/etc
添加用戶和組
root: ~ $ groupadd vchkpw
root: ~ $ useradd -g vchkpw vpopmail
添加mysql的vpopmail用戶,用於操作vpopmail
數據庫 AS3默認安裝後,mysql缺少mysql-server-3.23.58-4.i386.rpm,裝上去!然後
測試是否可以正常使用
root: ~ $ cp /usr/lib/mysql/* /usr/lib/
root: ~ $ cp /usr/include/mysql/* /usr/include/
root: ~ $ service mysqld start
root: ~ $ mysql -p
mysql>create database vpopmail; \\ 進入mysql命令行
mysql>gr
ant all on vpopmail.* to vpopmail@localhost identified by "snoopyxp";
編譯安裝vpopmail
root: ~ $ tar zxvf vpopmail-5.2.1.tar.gz
root: ~ $ cd vpopmail-5.2.1
root: ~ $ vi vmysql.h
#define MYSQL_UPDATE_SERVER "localhost" \\ mysql服務器名
#define MYSQL_UPDATE_USER "vpopmail" \\ 用戶名
#define MYSQL_UPDATE_PASSWD "snoopyx" \\ 改成你設置的密碼
#define MYSQL_READ_SERVER "localhost" \\ mysql服務器名
#define MYSQL_READ_USER "vpopmail" \\ 用戶名
#define MYSQL_READ_PASSWD "snoopyx" \\ 改成你設置的密碼
創建tcp.smtp文件(或者使用/etc/tcp.smtp)
root: ~ $ vi /home/vpopmail/etc/tcp.smtp
127.0.0.1:allow,RELAYCLIENT=""
:allow
root: ~ $ cd /home/vpopmail/etc
root: ~ $ tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp
進行編譯
root: ~ $ ./configure --prefix=/home/vpopmail \\ 指定安裝路徑
--enable-mysql=y \\ 是否應用My
sql數據庫 --enable-incdir=/usr/include/mysql \\ Mysql數據庫include文件所在目錄
--enable-libdir=/usr/lib/mysql \\ Mysql數據庫lib文件所在目錄
--enable-default-domain=snoopy.gov \\ 定義虛擬域名
--enable-passwd=n \\ 是否使用系統密碼驗證方式
--enable-defaultquota=10485760 \\ 定義缺省郵箱大小,10485760為10MB,20971520為20MB,52428800為50MB
--enable-tcprules-prog=/usr/local/bin/tcprules \\ 指定tcprules目錄
--enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp \\ 指定tcprules應用規則文件
--enable-vpopuser=vpopmail \\ vpopmail的用戶
--enable-vpopgroup=vchkpw \\ vpopmail的組
--enable-ip-alias-domains=n \\ 在虛擬域中允許通過反向IP地址查找虛擬域名
--enable-sqwebmail-pass=y \\ sqwebmail密碼驗證支持
--enable-hardquota=10000000 \\ 限制磁盤限額為10M就需要使用下面這個配置參數,若磁盤限額超出,將拒絕接受該用戶的新郵件,並返回一封拒絕信息郵件,其中的信息可以定制
root: ~ $ make
root: ~ $ make install-strip
創建虛擬域
root: ~ $ cd /home/vpopmail/bin
root: ~ $ ./vadddomain 域名 (密碼)
\\ 在
mysql數據庫vpopmail中自動生成vpopmail表單,生成的密碼是postmaster@域名帳戶的密碼,以後登陸qmailadmin就是使用postmaster登陸的
root: ~ $ ./vadduser 用戶名 密碼
\\ 會自動往表vpopmail中添加用戶數據,用戶添加到默認的域裡面。如果要添加到其他的虛擬域,用戶名要帶域名,如
[email protected])
如果不成功的話,則必須先刪除創建的域,./vdeldomain 域名 不要使用手工操作mysql刪除域和用戶帳號(除非你特別熟悉),否則會引起系統帳戶的紊亂
########################
smtp-auth的設置
root: ~ $ chmod 4755 vchkpw
root: ~ $ chown root.root vchkpw
\\ 如果使用帶驗證的smtp,smtp進程要調用密碼驗證程序,則必須要使用 setuid 和setgid。提高vchkpw的權限,才能完成setgid操作。
接下來安裝cmd5checkpw
root: ~ $ tar zxvf cmd5checkpw-0.22.tar.gz
root: ~ $ cd cmd5checkpw-0.22
root: ~ $ make
root: ~ $ mkdir /usr/man
root: ~ $ mkdir /usr/man/man8
root: ~ $ make install
注意,因為使用vpopmail,所以checkpassword可以不用安裝!
生成qmail的啟動腳本
root: ~ $ cp /var/qmail/boot/home /var/qmail/rc
root: ~ $ vi /var/qmail/rc \\ 對rc文件進行修改,以決定投送方式
#!/bin/sh
# Using splogger to send the log through syslog.
# Using dot-forward to support sendmail-style ~/.forward files.
# Using qmail-local to deliver messages to ~/Mailbox by default.
exec env - PATH="/var/qmail/bin:$PATH" qmail-start ./Maildir/ splogger qmail &
#vi /var/qmail/smtp //編輯smtp服務的啟動腳本
#!/bin/sh
# -c 100 // 指同時並行連接數為100
QMAILDUID=qmaild
NOFILESGID=nofiles
/usr/local/bin/tcpserver -H -R -c 100 -l 0 -t 1 -v -p -x /home/vpopmail/etc/tcp.smtp.cdb -u $QMAILDUID -g $NOFILESGID 0 smtp /var/qmail/bin/qmail-smtpd mail.snoopy.gov /home/vpopmail/bin/vchkpw /bin/true /bin/cmd5checkpw /bin/true 2>&1 | /var/qmail/bin/splogger smtpd 3 &
root: ~ $ vi /var/qmail/pop3 \\ 編輯pop3服務的啟動腳本
#!/bin/sh
/usr/local/bin/tcpserver -l mail.snoopy.gov -U -c 100 -H -R 0 pop3 /var/qmail/bin/qmail-popup mail.snoopy.gov /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir &
root: ~ $ chmod 755 /var/qmail/rc
root: ~ $ chmod 755 /var/qmail/smtp
root: ~ $ chmod 755 /var/qmail/pop3
運行qmail並測試
root: ~ $ /var/qmail/rc
root: ~ $ /var/qmail/smtp
root: ~ $ /var/qmail/pop3
root: ~ $ ps aux | grep "qmail" \\ 查看qmail的服務進程是否已完全正常啟動
如果qmail已正常啟動,用outlook測試qmail的smtp和pop3是否正常,注意由於vpopmail支持虛擬域名,在outlook中設置郵件帳號時,用戶名後要加上域名,像
[email protected]。smtp是帶認證的,在outlook中也要作相應設置。建議先將qmail測試正常後再安裝igenus。如果qmail出現問題,可查看mysql中的vpopmail數據庫,/var/log下的mysqld和maillog日志記錄
注意: 如果你在X下用X的kmail客戶端測試,smtp的驗證要選擇LOGIN,POP的驗證選擇純文本(APOP是錯的,雖然有時候mail客戶端會自動檢測條到APOP上面),如果有好幾個驗證方式給你選擇的話。
如果能發信,但收不到,這個時候看一下/var/log/maillog會找到答案的,一般是由於找不到libmysqlclient.so.12這個mysql庫文件造成的,前面我之所以要copy到/usr/lib下就是因為這個問題
######################
安裝並運行igenus
root: ~ $ tar zxvf igenus_2_20030516_snap.tgz -C /var/www/html
建temp文件夾
root: ~ $ cd /var/www/html/igenus
root: ~ $ mkdir temp
root: ~ $ chmod -R 0755 temp
root: ~ $ chown -R vpopmail:vchkpw temp
修改httpd.conf
root: ~ $ vi /etc/httpd/conf/httpd.conf
Group Apache
User Apache
修改為:
Group vchkpw
User vpopmail
AddDefaultCharset ISO-8859-1
修改為
AddDefaultCharset GB2312 \\ 使默認頁面為中文,2.x的apache需要修改
root: ~ $ /etc/rc.d/init.d/httpd restart \\ 重啟apache,使修改生效
修改config_inc.
php文件
root: ~ $ cd /var/www/html/config
root: ~ $ vi config_inc.php
$CFG_BASEPATH = "/var/www/html/igenus";
$CFG_MYSQL_HOST = 'localhost';
$CFG_MYSQL_USER = 'vpopmail';
$CFG_MYSQL_PASS = 'snoopy'; \\ 改成你的密碼
$CFG_MYSQL_DB = 'vpopmail';
$CFG_TEMP = $CFG_BASEPATh."/temp";
重新編制Mysql數據庫表格
root: ~ $ mysql -u root -p
mysql>use vpopmail;
mysql>alter table vpopmail drop primary key;
mysql>alter table vpopmail add column pw_id int(5) NOT NULL primary key auto_increment;
mysql>create table address (id int(11) unsigned NOT NULL auto_increment,pw_id int(5) unsigned NOT NULL default '0',name varchar(64) NOT NULL default ', email varchar(128) NOT NULL default ',UNIQUE KEY id (id),KEY pw_id (pw_id)) TYPE=MyISAM;
mysql>CREATE TABLE stow (id int(11) unsigned NOT NULL auto_increment,pw_id int(5) NOT NULL default '0',name varchar(64) NOT NULL default ',http varchar(128) NOT NULL default ',memo varchar(255) NOT NULL default ',PRIMARY KEY (id)) TYPE=MyISAM PACK_KEYS=1;
mysql>quit;
編輯qmail自啟動腳本
root: ~ $ vi /etc/rc.d/init.d/qmail \\ 編輯自動運行腳本
#! /bin/sh
# chkconfig: 2345 90 90
# description: qmail (include smtp and pop3) auto start/stop scripts.
. /etc/rc.d/init.d/functions
case "$1" in
start)
echo -n "start qmail:"
/var/qmail/rc &
echo "."
echo -n "start smtp service:"
/var/qmail/smtp
echo "."
echo -n "start pop3 service:"
/var/qmail/pop3
echo "."
;;
stop)
echo "stop qmail:"
killproc qmail-send
killproc qmail-clean
killproc qmail-rspawn
killproc qmail-lspawn
killproc splogger
killproc tcpserver
;;
*)
exit 1
;;
esac
exit 0
root: ~ $ chmod 755 /etc/rc.d/init.d/qmail
root: ~ $ chkconfig --add qmail
\\ 現在只要你啟動系統就會自動運行
igenus在安裝和使用過程中出現錯誤的解決方法
1.登錄時出現的錯誤。
編輯/usr/loal/lib/php.ini,修改:
register_globals = On
2.發郵件時出現528錯誤,其實這是php在編譯過程中找不到/usr/sbin/sendmail文件造成的,qmail使用/var/qmail/bin/sendmail發信
解決方法:
a.添加鏈接
root: ~ $ ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
b.停止apache運行
c.重新編譯php即可
########################
安裝ezmlm and ezmlm-idx使qmail支持郵件列表功能
1.注意:為了啟用maillist的MySQL支持,你必須首先建立mysql管理用戶:(Ex:user:ezmlm,pass:ezmlm)
root: ~ $ mysql -p
>use mysql;
>create database ezmlm;
>grant all on ezmlm.* to ezmlm@localhost identified by "密碼";
>flush privileges;
>exit;
root: ~ $ mysqladmin -u root -psnoopyxp create ezmlm
2.ezmlm-idx包含有對ezmlm的修正和補充,他們是一個整體。
root: ~ $ cd /home/software
root: ~ $ tar -zxvf ezmlm-0.53.tar.gz
root: ~ $ tar -zxvf ezmlm-idx-0.40.tar.gz
root: ~ $ mv -Rf ezmlm-idx-0.40/* ezmlm-0.53/ \\ 將ezmlm-idx-0.40下的文件覆蓋到ezmlm-0.53下
root: ~ $ cd ezmlm-0.53
root: ~ $ patch < idx.patch
root: ~ $ patch < ezmlm-idx-0.53.400.unified_41.patch
root: ~ $ make mysql \\ MySQL 支持
root: ~ $ make clean
root: ~ $ make man
root: ~ $ make ch_GB \\ 漢字GB2312支持
修改conf-sqlcc文件
內容為:-I/usr/include/mysql
修改conf-sqlld
內容為: -L/usr/lib/mysql -lmysqlclient -lnsl -lm -lz
-lz是增加zip壓縮支持
修改conf-bin
第一行:/var/qmail/bin/ezmlm
修改conf-man
第一行:/var/qmail/man
修改conf-qmail
第一行:/var/qmail
root: ~ $ make setup
修改/usr/local/qmail/bin/ezmlm/ezmlmrc將"To:##L@##H"修改為"To:<#L#>@<#H#>",主要是修改用郵件客戶端收到信之後,收件人地址顯示格式錯誤。
郵件列表收到的信息亂碼解決方法:
在/home/vpopmail/domains/snoopy.gov/maillistname/下建立一個charset的文件
root: ~ $ touch charset
root: ~ $ chown vpopmail:vchkpw charset
root: ~ $ chmod go-r charset
root: ~ $ vi charset \\ 添加一行gb2312
這樣你發一份郵件到
[email protected] 你收到的信息將可以正確的顯示中文了!
在你建立一個基於MySQL的maillist之前,你必須保證ezmlm庫中已存在一個對應的表(其實我發現沒有表,ezmlm會自動建立,只是會提示錯誤):
Ex:你想建一個基於MySQL的maillist:testlist
root: ~ $ /var/qmail/bin/ezmlm/ezmlm-mktab -d testlist | mysql -uezmlm -pezmlm -f ezmlm
這樣就在ezmlm庫中為testlist建立了一系列相關表格:
+------------------------+
| Tables |
+------------------------+
| testlist |
| testlist_allow |
| testlist_allow_slog |
| testlist_cookie |
| testlist_deny |
| testlist_deny_slog |
| testlist_digest |
| testlist_digest_cookie |
| testlist_digest_mlog |
| testlist_digest_slog |
| testlist_mlog |
| testlist_mod |
| testlist_mod_slog |
| testlist_slog |
+------------------------+
你可以用一下命令察看,安裝了qmailadmin後可以使用qmailadmin管理郵件列表了
root: ~ $ mysqlshow -uezmlm -pezmlm ezmlm
######################
安裝autorespond
root: ~ $ tar zxvf autorespond-2.0.2.tar.gz
root: ~ $ cd autorespond-2.0.2
修改Makefile文件
將其中的INSTALL_DIR =修改為 /var/qmail/bin
root: ~ $ make
root: ~ $ make install
root: ~ $ cp autorespond /usr/local/bin
######################
安裝qmailadmin
安裝之前先確認你是否已經安裝了vpopmail,並使用vchkpw
是否已經安裝ezmlm。
是否已經安裝autorespond。
確認以上的工作已完成,可以開始安裝qmailadmin
root: ~ $ cd /tmp/software
root: ~ $ tar zxvf qmailadmin-1.0.6.tar.gz
root: ~ $ cp en-us qmailadmin-1.0.6/html/en
root: ~ $ cp en-us qmailadmin-1.0.6/html/en-us
注:以上兩步,為了
漢化qmailadmin。en-us取自iceblood的qmail安裝包
root: ~ $ cd qmailadmin-1.0.6
root: ~ $ cd qmailadmin-1.0.6
root: ~ $./configure --enable-cgibindir=/var/www/cgi-bin --enable-htmldir=/var/www/html/igenus --enable-ezmlmdir=/var/qmail/bin/ezmlm (確保你的ezmlm程序文件在此目錄下)
root: ~ $ make
root: ~ $ make install-strip
root: ~ $ mkdir -p /var/www/html/images/qmailadmin
root: ~ $ mv images/*.* /var/www/html/images/qmailadmin/ \\ 復制images下的圖片到/var/www/html/images/qmailadmin下
######################
安裝sqwebmail
root: ~ $ cd /tmp/sofeware
root: ~ $ tar zxvf sqwebmail-3.5.0-cn.tar.gz
root: ~ $ cd sqwebmail-3.5.0
root: ~ $ ./configure --with-db=db \\ 如果你沒有安裝GDBM庫,那麼請加上這個,默認系統如果找到了GDBM庫會使用GDBM庫
--enable-webpass=yes
--without-authpam
--without-authpwd
--without-authshadow
--without-authldap
--without-authuserdb
--without-authpwd
--with-authvchkpw
--with-authdaemon \\ 激活web頁面修改密碼功能模塊
--enable-cgibindir=/var/www/cgi-bin/sqwebmail
--enable-imagedir=/var/www/html/sqwebmail
--disable-utf7-folder-encoding \\ 去掉IMAP文件夾編碼支持
--with-cachedir=/tmp/sqwebmail \\ 緩存目錄
--with-cacheowner=bin \\ 緩存目錄所有者default: bin
--enable-mimetypes=/var/www/html/
--enalbe-mimecharset=gb2312
--enable-unicode=gb2312
root: ~ $ make configure-check
root: ~ $ make
root: ~ $ make install-strip
root: ~ $ make install-configure
root: ~ $ /usr/local/share/sqwebmail/libexec/authlib/authdaemond start
注意,以後必須啟動這個進程進行身份驗證,發現安裝sqwebmail後,這個進程不啟動那麼我的郵件系統就沒法登陸,總是說密碼驗證錯誤,qmailadmin倒可以登陸 su -c "/usr/local/share/sqwebmail/cleancache.pl" bin
現在,重起你主機系統,設置你的outlook或者foxmail.接受郵件了,也可以通過webmail訪問你的mail系統了
http://localhost/cgi-bin/sqwebmail/sqwebmail
通過webmail接受你的郵件信息,sqwebmail我只是裝上測試一下,看看效果,它對中文支持比較差,也沒有比較好的中文版本,大家還是覺得用igenus比較好http://localhost/cgi-bin/qmailadmin 通過web方式管理和添加用戶了
補充:在/home/vpopmail/domains/snoopy.gov下面建立一個.qmailadmin-limits文件,這個文件本身沒有在裡面寫
maxpopaccounts 100
default_quota 10485760
這樣用qmailadmin添加賬號的最大數目就是100,每個郵箱的配額就是10485760,10M