使用twig快速搭建WebMail系統(tǒng)_Mail服務(wù)器教程
什么是 twig ?
twig是 The Web Information Gateway 的縮寫,是一套利用 PHP 開發(fā)而成的軟件,它可以讓你輕松地架設(shè)一個網(wǎng)絡(luò)郵局 (WebMail)。
使用者只需透過瀏覽器,即可完成郵件的收發(fā)動作。除此之外,它還整合了新聞群組、通訊簿、行程安排、會議、書簽......等功能,是一套多功能的 WebMail軟件。
1、twig系統(tǒng)需求:
TWIG 需要以下的套件:
支持php的網(wǎng)頁服務(wù)器( 建議使用 Apache )
PHP 3.0.11 以上版本
此外若能配合下列套件,將能發(fā)揮 twig 更佳的特性:
MySQL 或 pgsql
LDAP 服務(wù)器
IMAP 服務(wù)器
筆者建議以 Apache+PHP+MySQL+IMAP 的組合來架設(shè),至于LDAP服務(wù)器可依自行需要再加以搭配。
筆者所采用的套件如下:
RedHat 7.2
Apache 1.3.22
PHP 4.0.6
MySQL 3.23.41
twig 2.7.5
2、下載twig軟件:
首先請先檢查系統(tǒng)中是否已經(jīng)安裝了 Apache+PHP+MySQL+IMAP,你可以透過下列指令檢查是否已經(jīng)安裝:
# rpm -qa | grep -i apache
# rpm -qa | grep -i php
# rpm -qa | grep -i mysql
# rpm -qa | grep -i imap
若發(fā)現(xiàn)有未安裝的套件,可利用你的Linux安裝光盤片來安裝。以 RedHat 7.2 為例,我們可以在光盤片的 RedHatRPMS 目錄中找到許多的 rpm 套件,并利用下列指令來安裝:
# rmp -ivh
或者你想升級至較新的版本,可至下列網(wǎng)址下載最新的版本:
Apache:http://www.apache.org
PHP:http://www.php.net
MySQL:http://www.mysql.com
此外最重要的是要下載 twig,我們可以至 http://twig.screwdriver.net/download.php3 下載最新的 twig 2.7.5版。當(dāng)然啦!以上所需的軟件都可在 LinuxCenter 軟件數(shù)據(jù)庫中找到。
3、twig安裝步驟:
筆者假設(shè)你的 Linux 系統(tǒng)中已經(jīng)安裝了 Apache+PHP+MySQL+IMAP,而且 twig 也已經(jīng)下載至你的家目錄中�,F(xiàn)在就開始進行安裝的動作吧!
1. 將 twig 從家目錄復(fù)制到 /usr/local
# cp $HOME/twig-2.7.5.tar.gz /usr/local
2.解壓縮檔 twig-2.7.5.tar.gz
# cd /usr/local
# tar zxvf twig-2.7.5.tar.gz
3.執(zhí)行 twig-install,將 twig 安裝至 /var/www/html/
# cd /usr/local/twig-2.7.5
# ./twig-install /var/www/html/twig
4. 建立數(shù)據(jù)庫
# mysqladmin -u root -p create twig
# cd /usr/local/twig-2.7.5/setup
# mysql -u root -p twig < twig.table.mysql
5. 修改參數(shù)設(shè)定
# cd /var/www/html/twig/config
# vi config.inc.php3
$config["fromdomain"] = "你的網(wǎng)域名稱"; //修改為你這臺 twig 主機的網(wǎng)域名稱
$config["language"] = "chinesebig5"; //將語系改成繁體中文
$config["imap_server"] = "YourImapServerDomain"; //指定你的IMAP服務(wù)器位置,若是在同一臺機器只要用"localhost"即可
$config["smtp_server"] = "YourSmtpServerDomain"; //指定你的SMTP服務(wù)器位置,若是在同一臺機器只要用"localhost"即可
$config["session_handler"] = "php4session"; //php 4以上系統(tǒng)可將 cookie 改為 session
$config["login_handler"] = "php4session"; //php 4以上系統(tǒng)可將 cookie 改為 session
# vi dbconfig.inc.php3
$dbconfig["sqlusername"]="root"; //修改 mysql 的使用者帳號
$dbconfig["sqlpassword"]="你的密碼"; //修改 mysql 的使用者密碼
$dbconfig["defaultdb"]="twig"; //修改預(yù)設(shè)數(shù)據(jù)庫名稱
$dbconfig["sqltype"]="mysql"; //修改使用數(shù)據(jù)庫
6. 修改 advanced.acl.population 以設(shè)定管理者帳號
# cd /usr/local/twig-2.7.5/setup
# vi advanced.acl.population
修改 INSERT INTO twig acl groups VALUES('456744','TWIGAdministrators','管理者帳號'); //將"管理者帳號"改成你的打算用來作管理的帳號
# mysql -u root -p twig < advanced.acl.population
7. 網(wǎng)頁測試
使用瀏覽器輸入網(wǎng)址進行測試(如:http://your.domain.here/twig/test.php3)這里是用來測試 IMAP 與 Database 的,共有三個部份,請一一加以測試是否為 work。
8.使用twig
如果網(wǎng)頁測試的部份都沒問題了,請使用瀏覽器輸入網(wǎng)址(如:http://your.domain.here/twig/),就可以看到下面的畫面了。

9. 使用者登入
利用一組系統(tǒng)中已存在的帳號登入,你就可以看到下列的畫面。twig 預(yù)設(shè)會有 主頁 | 郵件 | 新聞| 通訊簿 | 行程 | 會議 | 工作 | 筆記 | 書簽 | 模塊 | 說明 | 注銷 等選項,你可以一一加以點選使用。個人環(huán)境的設(shè)定可在"模塊"選項中進行修改。

4、twig管理者接口
我們已經(jīng)在第六個步驟中設(shè)定了管理者的帳號了,接著我們還必須手動建立一個文件才能使用管理者的接口。請在 features/admin 目錄中建立一個叫 users 的目錄,并在此目錄中建立一個名為 .admin 的文件。例如 michael 是 twig 管理員的帳號,除了必須在第六步驟中將 advanced.acl.population 文件中的管理員修改為 michael,還要在 features/admin/users 目錄下建立一個 michael.admin 的文件。
# cd /var/www/html/twig/features/admin
# mkdir users
# cd users
# touch michael.admin
接下來讓我們用 michael 這個身份登入看看:

有沒有發(fā)現(xiàn)在"選項"中已多了一個"系統(tǒng)管理"的項目,點選進去看看吧。在這里你可以針對組別或個人使用者修改相關(guān)的設(shè)定值,是不是很方便呢?
5、設(shè)定檔介紹 你可以藉由編輯 config 目錄下的設(shè)定文件來對 TWIG 作設(shè)定上的調(diào)整:
config.inc.php3 - 整體環(huán)境設(shè)定的設(shè)定檔
announcements.inc.php3 - 主頁中會顯示在"公布"字段的文件
dbconfig.inc.php3 - 數(shù)據(jù)庫的設(shè)定文件
images.inc.php3 - 使用圖片的清單
login.footer.inc.php3 - 登入畫面的文件尾設(shè)定文件
login.form.php3 - 登入畫面的主體設(shè)定文件
login.header.inc.php3 - 登入畫面的文件頭設(shè)定文件
mainmenu.inc.php3 - 顯示在主頁的清單項目
defaults.inc.php3 - 使用者及程序偏好設(shè)定的默認(rèn)值文件
header.inc.php3 - 每一頁的文件頭設(shè)定 (本文件位于 features 目錄中)
footer.inc.php3 - 每一頁的文件尾設(shè)定 (本文件位于 features 目錄中)
上述文件我們已經(jīng)看過 config.inc.php3 及 dbconfig.inc.php3 這兩個文件了,若有其它的需要你也可以藉由修改文件中的選項來改變設(shè)定值。接下來我們再來看看其它比較實用的例子。
比方說你想讓使用者登入后看到管理者所規(guī)定或宣布的一些事項,你可以編輯 announcements.inc.php3 這個文件,讓使用者在主頁中的"公布"字段中看到這些訊息。

如果你覺得登入畫面的英文訊息很礙眼,你也可以去修改 login.form.php3 這個文件將登入畫面改成中文的畫面。

當(dāng)然啦!如果你想將預(yù)設(shè)的 Logo 改成自已網(wǎng)站上的 Logo,你可以將自已作好的 Logo 圖片放置于 images 目錄底下,并將 images.inc.php3 文件中的「 $img["logo"] = $config["imgdir"] . "twig.gif"; 」這個變量的 "twig.gif" 值改為自已圖片的文件名。

怎么樣?不錯吧!
6、TWIG的內(nèi)部安全機制
TWIG 提供了兩個不同的安全機制:Basic 與 Advanced。這兩種機制在安全上有所不同,兩者只可擇其一,不能共存。你可以藉由修改 config.inc.php3 設(shè)定檔中的 $config["security"] 變量來改變它們。以下簡單介紹這兩種機制:
Basic
basic 機制與 TWIG 1 時的情況雷同,你可以利用 $disabled[] 來關(guān)閉一些使用者的特性項目。
Advanced
advanced 機制與 basic 截然不同,它可以使用 Access Control List (ACL) 來針對單一使用者或群組作設(shè)定特性的激活或關(guān)閉。此外,它還需要下列的設(shè)定:
twig所連結(jié)的數(shù)據(jù)庫中必須要有 twig_acls 與 twig_acl_groups 兩個資料表
編輯 setup 目錄中的 advanced.acl.population 文件,將 換成你真正的 twig 系統(tǒng)管理者
將以上的文件加到你的數(shù)據(jù)庫中
在 setup 目錄中的 advanced.acl.population 文件是用來設(shè)定 ACL 數(shù)據(jù)庫的,這項設(shè)定可以讓 TWIGAdministrators 群組擁有所有的權(quán)限,而讓 Everyone 群組擁有預(yù)設(shè)的權(quán)限,系統(tǒng)剛安裝好時所有的使用者都是屬于 Everyone 群組。當(dāng)你設(shè)定好后,你可以試著用管理者的帳號登入,此時你會發(fā)現(xiàn)在主頁中多了一個系統(tǒng)管理的選項,你可以在此調(diào)整你的系統(tǒng)設(shè)定。不過要注意的是,advanced 機制除了 $disabled["global_autoaccounts"] 這個變量之外,并不支持任何的 $disabled[] 變量。
看昏頭了嗎?不用擔(dān)心!這些我們之前都已經(jīng)設(shè)定好了。如果你想要使用 advanced 機制,只要將 config.inc.php3 設(shè)定檔中的 $config["security"] 變量設(shè)定為 "advanced" 就好了!
7、twig其它安全性的考慮
以下針對幾種安全上的議題簡單地作一個介紹。
1. 首先你必須確定你的設(shè)定檔不會輕易地遭人存取。除了系統(tǒng)的權(quán)限之外,你最好在你的 config 目錄底下加一個 .htaccess檔。為了確保你的設(shè)定檔是安全的,請試著利用瀏覽器取存你的 config.inc.php3 文件:
http:////config/config.inc.php3
2. 如果你的系統(tǒng)是安全的,你應(yīng)該會在一個彈出的安全對話窗口后收到一個取存拒絕的訊息。如果沒有,請參考網(wǎng)頁服務(wù)器的文件來設(shè)定 .htaccess 文件。
3. 另一個安全上的顧慮是在 TWIG 與 mail/database 服務(wù)器之間的聯(lián)機問題。一個安全的系統(tǒng)會將它們?nèi)糠旁谕慌_服務(wù)器上,否則你的密碼可能會經(jīng)由網(wǎng)絡(luò)上傳遞出去。此外,關(guān)于帳號/密碼之間的傳遞,建議你使用 SSL 加密聯(lián)機。
MySQL 在剛安裝好時,數(shù)據(jù)庫的使用者并沒有設(shè)定密碼,包括 root 也一樣。所以如果希望你的系統(tǒng)能安全地運作,別忘了幫 root 設(shè)定一組密碼。此外,本文中的范例使用 root 的身份聯(lián)機是由于教學(xué)方便考量,建議在數(shù)據(jù)庫聯(lián)機部份,盡量使用一般使用者的身份來存取 MySQL。
到目前的設(shè)定應(yīng)該都沒問題了,現(xiàn)在就試著登入 twig,寄封信給你的好朋友吧!
- qmail+vpopmail+sqwebmail的安裝步驟(1)
- 分布式的Qmail郵件系統(tǒng)(2)
- 以Procmail-Gateway過濾寄出信件病毒(2)
- QMAIL+MH設(shè)計方案(2)
- Webmail攻防實戰(zhàn)(8)
- 用WebEasyMail架構(gòu)Web郵件服務(wù)器(3)
- 分布式的Qmail郵件系統(tǒng)(1)
- 構(gòu)建反病毒反垃圾郵件系統(tǒng)(二)
- 配置你的第一臺e-mail服務(wù)器(4)
- Win2003自帶mail服務(wù)器配置詳細(xì)過程
- 用WebEasyMail架構(gòu)Web郵件服務(wù)器(4)
- 電子郵件系統(tǒng)收發(fā)不正常的常見原因
- 相關(guān)鏈接:
- 教程說明:
Mail服務(wù)器教程-使用twig快速搭建WebMail系統(tǒng)
。