歡迎您光臨本站 註冊首頁

qmail郵件系統(二)安裝

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

qmail郵件系統(二)安裝

(二)qmail+vpopmail+mysql+qmailadmin+ezmlm+igenus的安裝

作者:peng
論壇ID:peng   www.chinaunix.net
QQ: 螃蟹 16360544

2.1實現的功能
通過以下安裝,構建一個完整的mail郵件伺服器。它用qmail為MTA,用vpopmail實現pop3服務和虛擬的郵件域。用mysql來存取用戶信息和認證。用qmailadmin來通過web形式進行方便的用戶管理,用ezmlm來實現基於mysql的大容量的郵件列表功能。通過igenus來實現webmail的功能。
2.2主機系統
   我用的是redhat8.0的系統,在一台康柏的pc server上作的。安裝的時候,選擇了custom模式。其他系統我沒有做過,應該是可以支持的,具體的可以看相應的軟體包中的README文件,都對所支持的主機系統做了詳細說明。如果有時間,我會在solaris for spare上安裝一下。
2.3 所用軟體包
  以下軟體的軟體,由於我用過iceblood的軟體包,其中關於qmailadmin漢化的文件—en-us取自於他的qmail-setup.1.53.tar.gz。要是用它的包中別的文件,一定要仔細察看配置文件,不少默認的安裝路就都被改過。建議大家去相關網站去找,我在上一章都做了介紹。Mysql我用的是系統的rpm包安裝的,也可自己用源代碼編譯。
httpd-2.0.40.tar.gz
php4-200303121030.tar.gz
qmail-1.03.tar.gz
qmail-103.patch
ucspi-tcp-0.88.tar.gz
ezmlm-0.53.tar.gz
ezmlm-idx.0.40.tar.gz
autorespond-2.0.0.tar.gz
vpopmail-5.2.tar.gz
qmailadmin-0.80.tar.gz
igenus_2_20030311.tgz
qmail-setup.1.53.tar.gz中的en-us ---qmailadmin漢化文件
把以上文件包都上傳到/home/software目錄下

2.4安裝前系統設定
  mysql管理用戶名:root   口令:mysql2003
  qmail安裝設置的默認域:chinaunix.net
  vpopmail安裝設置的默認域    管理口令:12345
ezmlm的mysql管理用戶:ezmlm  口令:ezmlm  資料庫名:ezmlm

2.5裝MYSQL
在第二張盤上運行:
# rpm -ivh mysql*
啟動mysql server:
# /etc/rc.d/init.d/mysqld start
設置mysql root口令:
# mysqladmin -u root -p password mysql2003  
Enter passwod:(直接回車)
(註:我安裝系統的時候,就選擇了安裝mysql的所有的包,這樣就不會有再安裝mysql時出現連帶關係。有連帶關係時,可以在x-windows模式下安裝,系統自動就可以解決,command模式的rpm參數我忘了)

2.6 apache
# cd /home/software/
# tar -zxvf httpd-2.0.40.tar.gz
# cd httpd-2.0.40
# ./configure --prefix=/var/www --enable-modules=so
# make
# make install

2.7安裝php
# cd /home/software
# tar -zxvf php4-200303121030.tar.gz
# cd php4-200303121030
# ./configure --with-mysql --with-apxs2=/var/www/bin/apxs
# make
# make install
# cp php.ini-dist /usr/local/lib/php.ini

2.8裝qmail-1.03(帶認證功能)
添加用戶和組:
# mkdir -p /var/qmail
# groupadd nofiles
# useradd -g nofiles -d /var/qmail/alias alias
# useradd -g nofiles -d /var/qmail qmaild
# useradd -g nofiles -d /var/qmail qmaill
# useradd -g nofiles -d /var/qmail qmailp
# groupadd qmail
# useradd -g qmail -d /var/qmail qmailq
# useradd -g qmail -d /var/qmail qmailr
# useradd -g qmail -d /var/qmail qmails
# cd /home/software
# tar xzvf qmail-1.03.tar.gz
# patch -p0 < qmail-103.patch
# cd qmail-1.03
# make setup check
# ./config-fast chinaunix.net
# cd /var/qmail/alias  
# touch .qmail-postmaster .qmail-mailer-daemon .qmail-root
# chmod 644 /var/qmail/alias/.qmail*
# cp /var/qmail/boot/home /var/qmail/rc
# chmod 755 /var/qmail/rc
# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
# ln -s /varl/qmail/bin/sendmail /usr/sbin/sendmail)
# vi /var/qmail/rc
修改其中./Mailbox為./Maildir/
# mkdir /etc/qmail
# touch /etc/qmail/start
# echo "csh -cf '/var/qmail/rc &'">;/etc/qmail/start
# echo "/etc/qmail/smtp.sh">;>;/etc/qmail/start

2.8 安裝ucspi-tcp
# cd /home/software
# tar zxvf ucspi-tcp-0.88.tar.gz
# cd ucspi-tcp-0.88
# make
# make setup check
# touch /etc/qmail/smtp.sh
# echo "/usr/local/bin/tcpserver -H -R –l chinaunix.net -t 1 -c 100 -v -p -x/etc/qmail/tcp.smtp.cdb
-u 502 -g 501 0 smtp /var/qmail/bin/qmail-smtpd /home/vpopmail/bin/vchkpw /bin/true | /var/qmail/bin/splogger &" >; /etc/qmail/smtp.sh
(註:502 and 501換成系統上的qmaild與nofiles的uid and gid的值。)
# chmod 755 /etc/qmail/smtp.sh
# touch /etc/qmail/tcp.smtp
# echo "127.0.0.1:allow,RELAYCLIENT="\"\" >; /etc/qmail/tcp.smtp
echo ":allow" >;>; /etc/qmail/tcp.smtp
# /usr/local/bin/tcprules /etc/qmail/tcp.smtp.cdb /etc/qmail/tcp.smtp.tmp < /etc/qmail/tcp.smtp
# echo 「/etc/qmail/start」 >;>; /etc/rc.d/rc.locad

2.9 安裝vpopmail
# groupadd vchkpw
# useradd -g vchkpw -d /home/vpopmail vpopmail
[說明:4.9.10也可通過smtp認證,4.10.26認證失敗並有一系列的問題,不建議使用。
如不與mysql資料庫集成也可,不要修改vmysql.h文件,並去掉./configure中的相關選項
# tar vpopmail-5.2.tar.gz
# cd vpopmail-5.2
# vi vmysql.h
根據你的MYSQL的設置,更改下面的配置
#define MYSQL_SERVER "localhost"
#define MYSQL_USER "root"
#define MYSQL_PASSWD "mysql2003"

#define MYSQL_SERVER "localhost"
#define MYSQL_USER "root"
#define MYSQL_PASSWD "mysql2003"

# ./configure --enable-default-domain=chinaunix.net
--enable-passwd=n \
--enable-tcprules-prog=/usr/local/bin/tcprules \
--enable-ip-alias-domains=n \
--enable-defaultquota=n \
--enable-sqwebmail-pass=y \
--enable-roaming-users=n\
--enable-mysql=y \
--enable-indir=/usr/include/mysql \
--enable-libdir=/usr/lib/mysql
# make
# make install-strip
# chmod 6755 /home/vpopmail/bin/vchkpw
(注意:我用的是--enable-defaultquota=n ,你要用vsetuserquota設置信箱打小; 你可以用--enable-defaultquota=10500000 默認是10M。)
# echo " tcpserver -c 100 -v -l chinaunix.net -U -H -R 0 pop3 /var/qmail/bin/qmail-popup chinaunix.net /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2>;&1
| /var/qmail/bin/splogger &" >; /etc/qmail/pop.sh
# chmod 755 /etc/qmail/pop.sh
# echo "/etc/qmail/pop.sh">;>;/etc/qmail/start
添加域:
# /home/vpopmail/bin/vadddomain chinaunix.net
(回車:輸入兩遍密碼)
添加用戶:
# /home/vpopmail/vadduser peng@chinaunix.net

2.10 zmlm and ezmlm-idx with MySQL support!
注意:為了啟用maillist的MySQL支持,你必須首先:
建立mysql管理用戶:(Ex:user:ezmlm,pass:ezmlm)
# mysql -u root –pmysql2003
>;use mysql;
>;insert into user values('localhost','ezmlm','','y','y','y','y','y','y','y','y','y','y','y','y','y', 'y');
>;update user set password=password('ezmlm') where user='ezmlm';
>;FLUSH PRIVILEGES;
>;exit;
建庫:(Ex:database:ezmlm)
# mysqladmin -u root -pXXXXX create ezmlm
ezmlm-idx包含有對ezmlm的修正和補充,他們是一個整體。
#cd /home/software
# tar -zxvf ezmlm-0.53.tar.gz
# tar -zxvf ezmlm-idx.0.40.tar.gz
# mv ezmlm-idx-0.40/* ezmlm-0.53/
# cd ezmlm-0.53
# patch < idx.patch
# make mysql        #MySQL 支持
# make clean
# make man
# make ch_GB  #漢字GB2312支持
# make setup

在你建立一個基於MySQL的maillist之前,你必須保證ezmlm庫中已存在一個對應的表:
Ex:你想建一個基於MySQL的maillist:testlist
# /usr/local/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          |
+------------------------+

你可以用一下命令察看!
# mysqlshow -u root -pXXXX ezmlm

2.11安裝autorespond
(對於qmailadmin-0.74版以上,必須使用2.0以上的版本)
# tar zxvf autorespond-2.0.0.tar.gz
# cd autorespond-2.0.0
# make
# make install
# cp autorespond /usr/local/bin

2.12 安裝igenus
# cd /home/software
# cp igenus_2_20030311.tgz /var/www
# cd /var/www
# mkdir temp
# chown vpopmail.vchkpw temp
# tar zxvf igenus_2_20030311.tgz
修改config/config_inc.php文件。config_inc.php是igenus的配置文件,必須正確設置,具體設置如下:
# vi /var/www/igenus/config/config_inc.php

$CFG_BASEPATH = "/var/www/igenus";
$ CFG_BASEPATH -----是iGNEUS webmail安裝在系統的路徑。

$CFG_MYSQL_HOST = 'localhost';
$CFG_MYSQL_HOST -----是mysql伺服器的地址。

$CFG_MYSQL_USER = 'root';
$CFG_MYSQL_USER -----是mysql伺服器的用戶名。

$CFG_MYSQL_PASS = 'mysql2003';
$CFG_MYSQL_PASS -----是mysql伺服器的密碼,根據你的實際填寫

$CFG_LANGUAGE = gb;
$CFG_LANGUAGE-----是系統默認語言,可有中英日可選。

$CFG_GMT = +8; // GMT time local
$CFG_GMT----是時區設置,中國選+8。

$CFG_TEMP = $CFG_BASEPATH."/../temp";
$CFG_TEMP----臨時文件的位置。

3、修改默認登錄域的設置,編輯login.php,查找以下字元,可設置你默認的郵件主機地址,可以設置多個。當然了,不改也可以的,略過這一步。

# vi /var/www/igenus/login.php

<INPUT CLASS=myinput2 TYPE="text" NAME="name" VALUE="news"
SIZE="10" STYLE="font-family: Tahoma">;
@
<INPUT TYEP="test" NAME="domain" VALUE="<?php echo $ Cookies_Domain;?>;" SIZE="19" CLASS="myinput2" STYLE='font-family:Tahoma'>; ----刪除@後面的句子,改變成以下:

<option value="webmail.readchina.com:>;webmail.readchina.com</option>;

設置apache相關的配置:
# vi /var/www/conf/httpd.conf
在AddType application/x-tar.tgz下面,添加以下內容:
AddType application/x-httpd-php .php
LoadModule php4_module /var/www/modules/libphp4.so
修改以下部分為:
DirectoryIndex index.php
DocumentRoot "/var/www/igenus"
<Directory "/var/www/igenus">;
User vpopmail
Group vchkpw

AddDefaultCharset ISO-8859-1 改為 AddDefaultCharset off


#vi /etc/rc.d/rc.local  
添加:
/var/www/bin/apachectl start
(註:使它開機自動啟動。)
更改php的設置:
# vi /usr/local/lib/php.ini
register_globals =off 更改為:register_globals =on
發送附件大小設置:
upload_max_filesize = 10M    ---默認是2M
vi igenus/language/gb_inc.php文件如下:

$LANG_SENDFORM_ATTACH_MESG = "請注意文件的大小不要超過1MB,否則系統無法正確接收;如果附件超過1MB,請通過Foxmail或Outlook發信!";
//$LANG_SENDFORM_ATTACH_MESG = "請注意文件的大小不要超過10MB,否則系統無法正確接收!";
更改mysql資料庫:
# mysql -uroot -pmysql2003
在mysql中創建address表,具體表結構如下:
# use vpopmail
# 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)
);
修改原來的vpopmail表,方法如下:
use vpopmail;
alter table vpopmail drop primary key;
alter table vpopmail add column pw_id int(5) NOT NULL primary key auto_increment;

(註:添加address table,是因為要使用igenus中的個人通訊錄,添加pw_id是因為igenus用它來標識用戶的唯一性的,但vpopmail用的是pw_uid)


2。13 安裝qmailadmin-0.80
在安裝之前先確認:
你是否已經安裝了vpopmail,並使用vchkpw 。
是否已經安裝ezmlm。
是否已經安裝autorespond。
確認以上的工作已完成,可以開始安裝qmailadmin。
# cd /home/software
# tar zxvf qmail-setup.1.5.3.tar.gz
# tar xvzf qmailadmin-1.0.6.tar.gz
# cd qmailadmin-1.0.6
# cp iceblood/en-us qmailadmin-1.0.6/html/en
# cp iceblood/en-us qmailadmin-1.0.6/html/en-us
(註:以上兩步,是為了漢化qmailadmin,用iceblood的qmail-setup的漢化文件。)
# cd qmailadmin-1.0.6
#./configure --enable-cgibindir=/var/www/cig-bin --enable-htmldir=/var/www/igenus
# make
# make install-strip

2。.14測試
   現在,重起你主機系統,你可以設置一下你的outlook或者foxmail.接受郵件了。也可以通過webmail訪問你的mail系統了。
  http://mail.chinaunix.net    通過webmail接受你的郵件信息
  http://mail.chinaunix.net/cgi-bin/qmailadmin   通過web方式管理和添加用戶了
2.15 小結
好了,到這裡,安裝部分就算完成了,但是,如果你以為到這就大功告成了,那就大錯特錯了,因為痛苦剛剛開始。。。在以後的貼子,我將重點講qmail及其組件的工作原理和配置、管理等等。

關於本文擋的聲明:
   這份文檔,是我參考了大量的網友的文章和書籍而寫成的。自己經過反覆安裝和測試,均安裝成功。但由於本人水平有限,文檔難免有一些遺漏。如果你在安裝的時候發現有什麼地方有錯誤的話,請去www.chinaunix.net 的mail論壇討論,我儘快回復的。
   對於這片文檔,網友可以任意轉貼。但出於對作者的尊重,轉貼時請註明作者姓名。
《解決方案》

qmail郵件系統(二)安裝

支持PENG姐。

收藏了,謝謝,勞苦功高,雖然我不用qmail。。。。
《解決方案》

qmail郵件系統(二)安裝

postfix不錯,正規軍產品。
有機會,一定要好好看看。:)
《解決方案》

qmail郵件系統(二)安裝

patch 哪 兒有下載呀
《解決方案》

qmail郵件系統(二)安裝

原帖由 "雪中凌花"]patch 哪 兒有下載呀

我在第一章準備中說了。qmail-setup.1.5.3.tar.gz中有,也可去:
http://members.elysium.pl/brush/qmail-smtpd-auth/和www.nimh.org/hacks/qmail-smtpd.c

關於qmail的認證,好好看看精華區的gadfly老大寫的:
http://www.chinaunix.net/forum/viewtopic.php?t=45055
不可不讀的好文章!
《解決方案》

qmail郵件系統(二)安裝

謝謝!!peng辛苦!
《解決方案》

qmail郵件系統(二)安裝

打了補丁后是可以編譯完成了,但又出來個新問題
就是我們在編譯好裝完好,所有需要的文件都會自動考到qmail的安
目錄里
可是現在編譯完后在qmail的安裝目錄里沒有文件,全部都在此編譯的目錄里
不知是我的操作錯誤還是紅帽9的問題????????
我在其它的系統上都沒有這樣的問題
《解決方案》

qmail郵件系統(二)安裝

我安裝了qmail ,vpopmail都沒有報錯。啟動伺服器成功
#telnet ip 25
#telnet ip 110均正常
我用/home/vpopmail/bin/vadduser peng@ccjsj.com
但從客戶端用OE連接總是身份驗證失敗是怎麼回事
《解決方案》

qmail郵件系統(二)安裝

pop和smtp都不對?

用戶名后加@ccjsj.com看看
《解決方案》

qmail郵件系統(二)安裝

peng老大,vpopmail configure的時候,最好不要加上
--enable-roaming-users=y

這個的意思就是只要用過pop服務的client, server就對這個client一定時間內 open relay, 這個用法比較少。而且也不能和open relay同時用,否則就沒有意義;但是如果和close relay,不用pop服務的用戶又發不了信;如果和auth smtp合用的話,好像這個特性又沒有太大的必要。

反之用它,還有一些弊端,例如:用nat方式pop上來的用戶,這個nat內的用戶一段時間內就可以隨便發信;以及定時需要清楚tcp.smtp.cdb等管理上得麻煩

[火星人 ] qmail郵件系統(二)安裝已經有468次圍觀

http://coctec.com/docs/service/show-post-35104.html