茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1674967 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
LSxMF_00019.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

小企鵝開談 : [分享]OpenWebMail的安裝與設定

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[分享]OpenWebMail的安裝與設定
Open WebMail 官方站台
Open WebMail 的官方網址是 http://openwebmail.org, 這部機器位於美國 Spring Link 骨幹上的機房, 是由熱心的網友 Daniel Pentecost 還有他的公司 Norvasen Pentecost Inc. 所完全免費提供, 目前並由網友 Thomas Chung 負責整個網站的運行與維護. 在發展 Open WebMail 的過程中, 受到許許多多來自世界各地朋友的幫助, 實在是感動良多, 真的讓人有一種世界村, 天涯若比鄰的感覺...
至於 http://turtle.ee.ncku.edu.tw/openwebmail 則是程式發展的中心, 所有最新的程式碼都是在這裡測試完後才開始對外公佈, 然後複製 (mirror) 到官方站台及各地的 mirror site.
Open WebMail 安裝需求
以上的套件, 一般來說是透過 source 安裝, 但如果您用的是 RedHat Linux, 那也有 rpm 可以快速安裝

安裝套件 (由 source 安裝)
首先請先到 http://turtle.ee.ncku.edu.tw/openwebmail/download/packages/
下載上述的各個套件
安裝 CGI.pm 套件
[code:1:60067d7de6]cd /tmp
tar -zxvf CGI.pm-3.05.tar.gz
cd CGI.pm-3.05
perl Makefile.PL
make
make install[/code:1:60067d7de6]
註: 可能您原本的機器上就已經安裝了 CGI.pm 這個套件, 不過由於有使用者回報 Open WebMail 如果使用太舊的 CGI.pm 版本,
會在上傳附件時, 發生當住的情形, 所以我們建議您安裝 2.74 以後或是更信的版本. 檢查 CGI.pm 版本的方式如下;
[code:1:60067d7de6]perl -MCGI -e 'print $CGI::VERSION'[/code:1:60067d7de6]

安裝 MIME-Base64 套件
[code:1:60067d7de6]cd /tmp
tar -zxvf MIME-Base64-3.01.tar.gz
cd MIME-Base64-3.01
perl Makefile.PL
make
make install[/code:1:60067d7de6]
註; 雖然您的機器可能已經安裝了 MIME-Base64 這個套件, 還是建議您從 source 重新裝一次. 這樣做的話, 可以確定 MIME-Base64
中的 XS 支援有被啟動, 可以大幅地增加處理 MIME 附件編碼與解碼的速度

安裝 libnet 套件
[code:1:60067d7de6]cd /tmp
tar -zxvf libnet-1.19.tar.gz
cd libnet-1.19
perl Makefile.PL (ans 'no' if asked to update configuration)
make
make install[/code:1:60067d7de6]

安裝 Text-Iconv-1.2 套件 (自 openwebmail 1.80起)
openwemail 自 1.80 版以後開始支援多國的字集轉換功能(如: 中文的簡繁轉換, 日文的 Shif-JIS/ISO-2022-JP/EUC-JP
轉換, 或是各種字集對 Unicode (UTF-8) 的轉換), 這個轉換的動作是透過 Text-Icon 套件來完成的. 而由於 Text-Iconv
事實上只是提供對系統 iconv() 相關函式 的一個 perl 介面, 所有首先要確認系統上是否支援 iconv() 相關函式, 方法如下
[code:1:60067d7de6]man iconv[/code:1:60067d7de6]
如果下完命令後沒有出現相關的 manpage 說明文件, 表示系統可能不支援 iconv() 相關函式, 不過別擔心, 我們可以透過安裝 libiconv
這個套件來替系統加上對 iconv() 的支援
[code:1:60067d7de6]cd /tmp
tar -zxvf libiconv-1.9.1.tar.gz
cd libiconv-1.9.1
./configure
make
make install[/code:1:60067d7de6]
現在再試一次 'man iconv' 確認 libiconv 已經被成功的安裝到系統之中
接下來就可以開始安裝 Text-Iconv 這個套件了
[code:1:60067d7de6]cd /tmp
tar -zxvf Text-Iconv-1.2.tar.gz
cd Text-Iconv-1.2
perl Makefile.PL[/code:1:60067d7de6]
註: 如果您用的是 FreeBSD, 或是您剛才用手動安裝 libiconv-1.9.1.tar.gz 這個套件, 請在執行 perl Makefile.PL
之前, 先修改 Makefile.PL 檔案, 將 LIBS 和 INC 這兩行設定如下

[code:1:60067d7de6]'LIBS' = ['-L/usr/local/lib -liconv'], # e.g., '-lm'
'INC' = '-I/usr/local/include', # e.g., '-I/usr/include/other'[/code:1:60067d7de6]

[code:1:60067d7de6]make
make test[/code:1:60067d7de6]

註: 如果 make test 失敗, 代表您的 OS 不支援 iconv() 這個功能或是 Makefile.PL 中的 LIB, INC 設定有誤.
您可以將 misc/patches/iconv.pl.fake 拷貝到 iconv.pl 這個檔案上, 讓 openwebmail 不透過 iconv 進行字集轉換. 這樣
簡/繁轉換 功能會還在, 但是會喪失如 自動轉換 UTF-8 格式信件的功能.

[code:1:60067d7de6]make install[/code:1:60067d7de6]

安裝套件 (由 rpm 安裝)
如果您用的是 RedHat Linux, 那麼您可以透過 rpm 快速安裝, 下載 rpm 的網址在 http://turtle.ee.ncku.edu.tw/openwebmail/download/redhat/rpm/packages/

  • 首先是安裝 CGI, MIME-Base64 和 libnet 這三個套件
    wget http://turtle.ee.ncku.edu.tw/openwebmail/download/redhat/rpm/packages/rh73/perl-CGI-2.752-34.99.6.i386.rpmrpm -Uvh --force perl-CGI-2.752-34.99.6.i386.rpm

    wget http://turtle.ee.ncku.edu.tw/openwebmail/download/redhat/rpm/packages/rh73/perl-MIME-Base64-2.12-14.i386.rpmrpm -Uvh --force perl-MIME-Base64-2.12-14.i386.rpm

    wget http://turtle.ee.ncku.edu.tw/openwebmail/download/redhat/rpm/packages/rh73/perl-libnet-1.0901-17.i386.rpmrpm -Uvh --force perl-libnet-1.0901-17.i386.rpm

    註: 您可以透過 rpm -qa | grep -i keyword 的方式來查詢系統上是否已安裝某特定套件
    註: 如果想要讓 wget 透過 proxy 去抓資料的話, 請在使用 wget 前先執行下列命令

    [code:1:60067d7de6]export http_proxy=http://your_proxy_server:3128 (for bash)
    setenv http_proxy http://your_proxy_server:3128 (for csh/tcsh) [/code:1:60067d7de6]


  • 接著檢查您的系統是否有裝 suidperl 套件

    [code:1:60067d7de6]rpm -q -a|grep -i suidperl[/code:1:60067d7de6]

    如果您的 7.3 系統沒有裝 suidperl 的話, 請

    wget http://turtle.ee.ncku.edu.tw/openwebmail/download/redhat/rpm/packages/rh73/perl-suidperl-5.6.1-34.99.6.i386.rpmrpm -Uvh --force perl-suidperl-5.6.1-34.99.6.i386.rpm

    如果您的 8.x 系統沒有裝 suidperl 的話, 請

    wget http://turtle.ee.ncku.edu.tw/openwebmail/download/redhat/rpm/packages/rh80/perl-suidperl-5.8.0-55.i386.rpmrpm -Uvh --force perl-suidperl-5.8.0-55.i386.rpm

    如果您的 9.x 系統沒有裝 suidperl 的話, 請

    wget http://turtle.ee.ncku.edu.tw/openwebmail/download/redhat/rpm/packages/rh9/perl-suidperl-5.8.0-88.i386.rpmrpm -Uvh --force perl-suidperl-5.8.0-88.i386.rpm

  • 接著是檢查您的系統是否有裝 Texi-Iconv 套件

    [code:1:60067d7de6]rpm -q -a|grep -i iconv[/code:1:60067d7de6]

    如果您的 7.3 系統沒有裝 Text-Iconv 的話, 請

    wget http://turtle.ee.ncku.edu.tw/openwebmail/download/redhat/rpm/packages/rh73/perl-Text-Iconv-1.2-RH73.i386.rpmrpm -Uvh --force perl-Text-Iconv-1.2-RH73.i386.rpm

    如果您的 8.x 系統沒有裝 Text-Iconv 的話, 請

    wget http://turtle.ee.ncku.edu.tw/openwebmail/download/redhat/rpm/packages/rh80/perl-Text-Iconv-1.2-RH80.i386.rpmrpm -Uvh --force perl-Text-Iconv-1.2-RH80.i386.rpm

    如果您的 9.x 系統沒有裝 Text-Iconv 的話, 請

    wget http://turtle.ee.ncku.edu.tw/openwebmail/download/redhat/rpm/packages/rh9/perl-Text-Iconv-1.2-RH80.i386.rpmrpm -Uvh --force perl-Text-Iconv-1.2-RH80.i386.rpm


  • 安裝 Open WebMail

    http://turtle.ee.ncku.edu.tw/openwebmail/download/release/
    下可以下載 Open WebMail 的各個 Release (openwebmail-x.yy.tar.gz), 這是屬於經過測試後, 功能較為穩定的版本.
    而在
    http://turtle.ee.ncku.edu.tw/openwebmail/download/current/ 下的

    openwebmail-current.tar.gz
    則是含有最新功能或修正, 但是沒有經過詳細的測試的程式碼.
    至於
    http://turtle.ee.ncku.edu.tw/openwebmail/download/snapshot/ 是擺放 current 的每日快照版本,
    主要是為了方便追蹤每天程式碼變動的 current 的快照版本

    如果您的作業系統是 FreeBSD, 而且您的 apache 是透過 pkg_add 方式安裝
    恭喜您, 您的作業環境和 Open WebMail 發展小組是一樣的, 所以安裝手續非常的簡單

    [code:1:60067d7de6]chmod 4555 /usr/bin/suidperl
    cd /usr/local/www
    tar -zxvBpf openwebmail-X.XX.tar.gz
    /usr/local/www/cgi-bin/openwebmail/openwebmail-tool.pl --init[/code:1:60067d7de6]

    註: 透過FreeBSD 本身的 PORTS, 可以很方便地安裝 Open WebMail,

    [code:1:60067d7de6]cd /usr/ports/mail/openwebmail
    make install clean[/code:1:60067d7de6]

    如果您的作業系統是 Linux RedHat 7.x/8.x/9.x, 而您想自己從 source 安裝的話

    [code:1:60067d7de6]cd /var/www
    tar -zxvBpf openwebmail-X.XX.tar.gz
    mv data/openwebmail html/
    rmdir data[/code:1:60067d7de6]

    [code:1:60067d7de6]cd /var/www/cgi-bin/openwebmail[/code:1:60067d7de6]
    修改 etc/auth_unix.conf (由 etc/defaults/auth_unix.conf copy 過來改)

    將 passwdfile_encrypted 設成 /etc/shadow
    將 passwdmkdb 設成 none
    EX:
    [code:1:60067d7de6]passwdfile_plaintext /etc/passwd
    #passwdfile_encrypted /etc/master.passwd
    #passwdmkdb /usr/sbin/pwd_mkdb
    passwdfile_encrypted /etc/shadow
    passwdmkdb none
    check_expire no
    check_nologin no
    check_shell no
    check_cobaltuser no
    change_smbpasswd no[/code:1:60067d7de6]

  • 修改 etc/openwebmail.conf

    將 mailspooldir 設成 /var/spool/mail
    將 ow_htmldir 設成 /var/www/html/openwebmail
    將 ow_cgidir 設成 /var/www/cgi-bin/openwebmail
    將 spellcheck 設成 /usr/bin/ispell
    EX:
    [code:1:60067d7de6]domainnames auto
    auth_module auth_unix.pl
    mailspooldir /var/spool/mail
    ow_cgidir /home/www/cgi-bin/openwebmail
    ow_cgiurl /cgi-bin/openwebmail
    ow_htmldir /home/www/html/openwebmail
    ow_htmlurl /openwebmail
    logfile /var/log/openwebmail.log

    enable_viruscheck no
    enable_spamcheck no
    enable_learnspam no

    <default_signature>
    --
    Open WebMail Project (http://openwebmail.org)
    </default_signature>[/code:1:60067d7de6]

    [code:1:60067d7de6]/var/www/cgi-bin/openwebmail/openwebmail-tool.pl --init[/code:1:60067d7de6]

  • 將下列文字加到 /etc/logrotate.d/syslog 讓系統定期砍掉過去的 log
    [code:1:60067d7de6]/var/log/openwebmail.log {
    postrotate
    /usr/bin/killall -HUP syslogd
    endscript
    }[/code:1:60067d7de6]
    註: 如果您的作業系統是Linux RedHat 6.2(CLE 0.9), 請用 /home/httpd 取代上述的 /var/www
    註: 如果您的 Linux 是 Redhat, 建議參考由 Emir Litric 所寫的 RedHat-README.txt




  • 如果您的作業系統是 Linux RedHat 7.x/8.x/9.x, 而您想快速安裝的話,
    您可以利用由 Thomas Chung 所準備的 redhat

  • 安裝 Open WebMail 的 released rpm,
    請到 http://turtle.ee.ncku.edu.tw/openwebmail/download/redhat/rpm/release/
    找出版本最新的 released rpm

    wget http://turtle.ee.ncku.edu.tw/openwebmail/download/redhat/rpm/release/openwebmail-2.10-1.i386.rpmrpm -Uvh openwebmail-2.10-1.i386.rpm

    如果您想要安裝最新的 current rpm (比 released rpm 新, 但是可能有 bug),
    請到 http://turtle.ee.ncku.edu.tw/openwebmail/download/redhat/rpm/daily-build/
    找出日期最新的 current rpm

    wget http://turtle.ee.ncku.edu.tw/openwebmail/download/redhat/rpm/daily-build/openwebmail-2.10-20031002.i386.rpmrpm -Uvh openwebmail-2.10-20031002.i386.rpm

    [code:1:60067d7de6]/var/www/cgi-bin/openwebmail/openwebmail-tool.pl --init[/code:1:60067d7de6]


  • 如果您的作業系統是其他的 Unix, 配合 Apache

  • 首先找到您的 Apache data 和 cgi-bin 目錄的父目錄,
    以下我們以 /usr/local/apache/share 作例子,
    並假設 openwebmail-x.yy.tar.gz 放在 /tmp

  • [code:1:60067d7de6]cd /usr/local/apache/share
    tar -zxvBpf openwebmail-x.yy.tar.gz
    mv data/openwebmail htdocs/
    rmdir data[/code:1:60067d7de6]

    [code:1:60067d7de6]cd /usr/local/apache/share/cgi-bin/openwebmail/[/code:1:60067d7de6]
    修改 etc/openwebmail.conf

  • 將 mailspooldir 設成 您系統中的 mail spool, 一般是 /var/mail 或是 /var/spool/mail

  • 將 ow_htmldir 設成 /usr/local/apache/share/htdocs
    將 ow_cgidir 設成 /usr/local/apache/share/cgi-bin



  • 修改 etc/auth_unix.conf (由 etc/defaults/auth_unix.conf copy 過來改)

  • 將 passwdfile_encrypted 設成 '/etc/shadow'

  • 將 passwdmkdb 設成 'none'




  • 註: 各 Unix 平台改法不見得相同, 請參考 defaults/auth_unix.conf 中的說明, 以便得知確切的改法

    [code:1:60067d7de6]cd /usr/local/apache/share/cgi-bin/openwebmail[/code:1:60067d7de6]

    修改所有 openwebmail*.pl 的 perl script, 包括
    openwebmail.pl, openwebmail-main.pl,
    openwebmail-read.pl, openwebmail-viewatt.pl,
    openwebmail-send.pl, openwebmail-spell.pl,
    openwebmail-prefs.pl, openwebmail-folder.pl,
    openwebmail-abook.pl, openwebmail-advsearch.pl,
    openwebmail-cal.pl and openwebmail-tool.pl
    將 script 中第一行 #!/usr/bin/suidperl 改成 !您的 suidperl 所在的路徑


  • 檢查您的 suidperl 程式的 mode, 看看是否是 r-sr-xr-x, 如果不是的話

    [code:1:60067d7de6]chmod 4555 /usr/local/bin/suidperl[/code:1:60067d7de6]

  • [code:1:60067d7de6]/usr/local/apache/share/cgi-bin/openwebmail/openwebmail-tool.pl --init[/code:1:60067d7de6]

    註: 如果您是在 Solaris 上安裝 Open WebMail,
    請記得建立 /etc/openwebmail_path.conf 這個檔案.
    然後在其中放入您 openwebmail CGI 所在的路徑


    如果 openwebmail.pl 位於/usr/local/apache/share/cgi-bin/openwebmail/openwebmail.pl


    那麼 /etc/openwebmail_path.conf 應該如下:


    /usr/local/apache/share/cgi-bin/openwebmail


    註: 如果您用的是Apache 2.0 以後的版本,
    請在 apache 的設定檔 httpd.conf 中, 將


    [code:1:60067d7de6]AddDefaultCharset ISO-8859-1[/code:1:60067d7de6]

    改成


    [code:1:60067d7de6]AddDefaultCharset off[/code:1:60067d7de6]

    設定 Open WebMail 系統
    在 cgi-bin/openwebmail/etc 可以發現有 defaults/openwebmail.conf, openwebmail.conf.help
    和 openwebmail.conf 這三個檔, 其中
    defaults/openwebmail.conf - 內定的 Open WebMail 設定檔,
    包含所有可以設定的選項
    openwebmail.conf.help - defaults/openwebmail.conf
    所有選項的說明檔
    openwebmail.conf - 主要的設定檔, 管理者要設定的選項, 應該都寫在這個檔案裡頭,
    而不應該直接去改 defaults/openwebmail.conf
    openwebmail.conf 的內容
    [code:1:60067d7de6]# Open WebMail configuration file
    #
    # This file contains just the overrides from defaults/openwebmail.conf
    # please make all changes to this file.
    #
    # This file sets options for all domains and all users.
    # To set options on per domain basis, please put them in sites.conf/domainname
    # To set options on per user basis, please put them in users.conf/username
    #
    domainnames auto
    auth_module auth_unix.pl
    mailspooldir /var/mail
    ow_cgidir /usr/local/www/cgi-bin/openwebmail
    ow_cgiurl /cgi-bin/openwebmail
    ow_htmldir /usr/local/www/data/openwebmail
    ow_htmlurl /openwebmail
    logfile /var/log/openwebmail.log
    spellcheck /usr/local/bin/ispell<br>
    enable_viruscheck no
    enable_spamcheck no
    enable_learnspam no<br>
    default_language en

    <default_signature>
    --
    Open WebMail Project (http://openwebmail.org)
    </default_signature>[/code:1:60067d7de6]
    以上的內容可能隨著您系統而有所不同, 不過在您完成前述的安裝後, 您可以修改以下幾個選項
    domainnames
    一般情況下, openwebmail 應該能正確地判斷出您 server 的 domainname, 進而正確地設定使用者的預設 Email address,
    但如果發生 openwebmail 判斷錯誤或是您希望設定成其他的 domainname, 你可以將這個選項由 auto 改成您所要的 domainname,
    如 mail.myserver.com.tw

    spellcheck
    設定拼字檢查程式所在的路徑, 一般而言, 可能是以下其中之一, 您可以用 ls -l filename 方式檢查看看
    /usr/bin/apsell
    /usr/bin/ispell
    /usr/local/bin/aspell
    /usr/local/bin/ispell

    enable_viruscheck
    是否呼叫外部程式進行病毒掃描, 預設是 no, 這個功能需要在系統上先安裝ClamAV 這套軟體

    enable_spamcheck
    是否呼叫外部程式進行垃圾信判讀, 預設是 no, 這個功能需要在系統上先安裝SpamAssassin 這套軟體

    enable_learnspam
    是否呼叫外部程式進行垃圾信學習, 預設是 no, 通常這個功能與 enable_spamcheck要互相配合, 因為學習所得到資料庫將會在 spamcheck 進行垃圾信判讀時被參考

    default_language
    內定的語言, 我們把它由 en(英文) 改成 zh_TW.Big5 (繁體中文)
    註: 自 2.0 版 20030416 以後, 已經不需要在 openwebmail.conf 中設定 default_language 這個選項了,openwebmail 會根據使用者所用的瀏覽器設定, 自動選擇適合的內定的語言

    default_signature
    設定預設的簽名檔, 設在這裡的值會成為每個新使用者的預設簽名檔, 不過使用時每個使用者可以依自己的需求, 設定成其他的內容

    初始化 Open WebMail
    在前面的安裝步驟裡頭, 最後一個步驟是
    [code:1:60067d7de6]cd the_direcotry_of_openwebmail_cgi_scripts
    ./openwebmail-tool.pl --init[/code:1:60067d7de6]
    這個動作會建立一些 Open WebMail 在執行時會用到的對應表, 如簡繁轉換, 陰陽曆轉換等. 如果這個動作沒有做的話, 使用者將無法透過 Web介面使用 Open WebMail 而由於在各種不同作業系統上的 perl 版本的差異, 其所使用的 dbm 種類也不盡相同, 有的可能需要特殊的設定後才能使用, --init 在建立上述對應表之前,會測試系統上 perl 的 dbm 種類, 並且提供一些必要的建議事項

  • 首先會檢查 etc/dbm.conf 中的 dbm_ext, dbmopen_ext 和 dbmopen_haslock 三個選項的設定是否正確,
    如果設定有誤的話, 您會看到如下的畫面
    [code:1:60067d7de6]Please change the following 3 options in etc/dbm.conf
    from
    dbm_ext .db
    dbmopen_ext none
    dbmopen_haslock no
    to
    dbm_ext .db
    dbmopen_ext %dbm_ext%
    dbmopen_haslock yes[/code:1:60067d7de6]
    管理者可以將 etc/defaults/dbm.conf copy 成 dbm.conf, 然後將正確的 dbm 設定值, 寫到 etc/dbm.conf中


  • 其次是檢查系統上的 dbm 是否內定使用 DB_File.pm 這個模組, 如果是而且有需要的話, 會建議您對 DB_File.pm 作一些必要的修改(這個修改是由 DB_File.pm 作者所提供的), 您會看到如下畫面
    [code:1:60067d7de6]Please modify /usr/libdata/perl/5.00503/mach/DB_File.pm by adding
    $arg[3] = 0666 unless defined $arg[3];
    before the following text (about line 247)
    # make recno in Berkeley DB version 2 work like
    recno in version 1[/code:1:60067d7de6]


  • 請務必依照以上的建議作修改, 否則您的 Open WebMail 可能會無法完全正常動作, 也請記得在做完修改之後, 別忘了重新執行一次 './openwebmail-tool.pl --init'

    測試 Open WebMail
    在完成上面的步驟後, 您可以連線到

    http://your_server_hostname/cgi-bin/openwebmail/openwebmail.pl

    並且登入看看是否一切正常
    冷日
    (冷日)
    Webmaster
    • 註冊日: 2008/2/19
    • 來自:
    • 發表數: 15771
    [分享]WebMail 介紹
    WebMail 介紹

    目前用最多的mailuseragent應該要算是Mirosoft的Outlook和OutlookExpress.這類的mailreader雖然方便,常碰到的一個問題就是一旦mail被收進某台電腦的中,從其他台電腦就讀不到這個mail了.比如您在公司/學校用電腦收取信件,回家忽然想查看其中部分的內容,因為信件在學校的電腦裡頭,所以您在家就看不到了.又如果您出門在外的時候,使用的不是自己的電腦,如果忽然想看看自己是否有新信件,也不好用別人的outlook收信.另外,設定pop3server,smtpserver等對於某些使用者來說也有點困難.這時候WebMail就顯出他的好處了.


    WebMail就是使用者透過browser連到webserver,而由webserver上的程式負責作收信/送信的動作.使用者直接透過browser作讀信/寫信等操作,信件其實並不存在使用者的電腦上.因此無論使用者用的是哪一部電腦,只要可以連上網路,都可以使用讀到之前與新收到的信件.另外一個好處是WebMail不容易因為讀取含有病毒的檔案而導致中毒,更不會發生個人郵件系統中毒後,寄送大量病毒信件給其他親朋好友的這種慘劇.


    WebMail 的種類

    依照 WebMail 存取 信件匣 (mailfolder) 的方式來分的話, 主要可分為兩種


    1. Through Imap/POP3


    如上圖所示,在寄信方面,WebMail程式以SMTPprotocol和MailServer上的TransportAgent溝通,將信件經由TA送往Internet.而在信件匣的處理上,則是透過所謂的POP3或是IMAP4server進行存取.

    透過POP3/IMAP4server存取信件匣主要的好處是提供WebMailService的主機和MailServer可以是不同一部機器.因此在為已有的MailServer額外加上WebMail服務功能時,就不必擔心會影響到原本的MailServer.當然上面WebServer所用的Httpserver和WebMail也可以都安裝在與Mailserver同一部機器裡頭,不過當MailServerLoad很重時,將Webserver與MailServer兩者分開,可以有分散負載的好處

    另一個好處是WebMail不必去擔心信件匣存取的一些細節問題,比如不用考慮信件匣擁有者,檔案權限的問題(由POP3/IMAP4server處理掉了),同時WebMail在設計上可以與信件匣的資料格式無關.只要是POP3/IMAP4看得懂的格式,都可以為WebMail所用.

    註:目前常見的信件匣格式共有兩種,mbox和maildir


    mbox是一個信件匣對應到一個檔案,匣內的每封信件,以空白行格開,一封接一封地放在這個檔案中
    maildir是一個信件匣對應到一個目錄,匣內的每封信件,分別對應到目錄中的一個文字檔

    但是透過POP3/IMAP4server存取信件匣也有一些缺點,首先是效率的問題,由於是透過POP3/IMAP4來存取信件匣,WebMail程式本身並無法信件匣作一些進階的資料管理或索引,因此當信件匣內信件數目一多的時候,WebMail必須透過POP3/IMAP4進行大量的資料傳輸,會導致速度變慢(試想信件匣內有5000封信件,使用者分別要求以日期,作者,標題,大小等條件進行排序的情形).

    其次是功能上的限制,由於POP3/IMAPserver提供的主要是對信件匣的信件的基本操作,所以如果WebMail要提供Mail以外的一些功能就較不容易,如自動回信,行事曆,網路磁碟等等

    2.DirectAccess

    與前面的圖相比,可以發現寄信方面還是透過SMTP經由TransportAgent將信件送往Internet,但是在信件匣處理上,改成WebMail程式直接存取使用者信件匣,不再透過POP3/IMAP4server.

    直接存取使用者信件匣的主要好處是因為WebMail直接處理filesystem上的datafile,程式可以針對信件匣內的信件的一些資料欄位進行索引或快取,加速信件匣的存取速度.因此即使在信件匣內有許多信件時,還是維持不錯的效能,同時也可以是需要存其他資料在filesystem中,所以如要實現其他的功能會較為容易.

    但是直接存取檔案本身,WebMail需要了解所處理的信件匣格式的細節,因此要支援多種格式會較為麻煩,同時為了處理信件匣屬於不同擁有者所造成的檔案權限限制,WebMail本身需要以setuidroot方式的身分執行,因此WebMail程式本身的設計需要特別小心,以免造成系統安全上的漏洞.

    冷日
    (冷日)
    Webmaster
    • 註冊日: 2008/2/19
    • 來自:
    • 發表數: 15771
    [快速回覆]OpenWebMail的安裝與設定
    原出處網站:
    http://turtle.ee.ncku.edu.tw/~tung/openwebmail/
    前一個主題 | 下一個主題 | 頁首 | | |


    
    Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|