動作

SquirrelMail

出自 Itsmw

簡介

文件說明

本文件在提到指令的部分,皆是先 sudo 成 root 的身份後才執行,所以各位在閱讀本文時,應都會發現筆者會示意目前終端機的身份別,例:「root@mail~#」。



功能說明

Squirrelmail 是一套由 PHP 寫成,支援 SMTP 及 IMAP 通訊協定的 webmail 系統,基於以下特色,筆者建議大家可以用它來取代老舊的 openwebmail 。

  1. 因輕量而帶來的快速反應
  2. 郵件、日曆(外掛)及個人檔案管理(外掛)等功能完備


  • 注意:它與 openwebmail 一樣仍無法解決 bad header (標題亂碼)的問題


本文將介紹如何在 Ubuntu 11.04 上安裝此一套件,其他 Linux 上並不保證會有相同之操作過程。



套件說明

在 ubuntu 底下,可安裝的 squirrelmail 套件及 plugin 有:

  • squirrelmail 主程式
  • squirrelmail-decode 各國字碼之解碼
  • squirrelmail-locales 多國語系檔
  • squirrelmail-lockout 外掛:密碼字典攻擊阻擋
  • squirrelmail-quicksave 外掛:支援寫信時之自動儲存功能
  • squirrelmail-secure-login 外掛:支援 IMAPs 的支援

其他好用可自行加裝的 Plug ,舉例如下:



系統需求

  1. 因為筆者尚無解決 Ubuntu 11.10 之郵件伺服器問題,建議先在 11.04 上安裝此服務
  2. Apache2 + PHP5 或 Nginx + PHP5 等網頁伺服器
    • Apache2 + PHP5 安裝指令可參考 Ubuntu 11.04 一文,第 3.1 節
    • Nginx + PHP5 請參考筆者書本著作「Ubuntu 網管手冊」
  3. 郵件伺服器
    • SMTP Server:強烈建議使用 postfix 套件
    • IMAP Server:建議使用 dovecot 來建構
    • 安裝設定文件在此 UbuntuMail



安裝設定

安裝

  • 安裝指令
    • root@mail:~# apt-get update
    • root@mail:~# apt-get install squirrelmail squirrelmail-decode squirrelmail-locales squirrelmail-lockout squirrelmail-quicksave php5-recode squirrelmail-compatibility squirrelmail-viewashtml squirrelmail-logger
    • 以上的裝法會採用 IMAP 協定(TCP 143)的通道登入,若要改用 IMAPs(TCP 993),則要加裝 squirrelmail-secure-login 套件。


  • 部分套件簡介
    • squirrelmail 主程式
    • squirrelmail-locales 各國語系,必娤
    • squirrelmail-lockout 登入失太多次鎖定某段時間,不讓其登入,以避免密碼字典攻擊
    • squirrelmail-logger 操作記錄


  • squirrelmail-spam-buttons 不裝原因:本文建議直接採用 amavis + clamav + spamassassin 的方式來過濾,因此不再使用 squirrelmail 的 spam 功能。


設定

設定指令

  • 設定方式
    請使用該團隊所寫的設定檔產生器,不要直接修改 config.php,以避免一些文字輸入上的錯誤 。
  • 設定指令
    root@mail:~# squirrelmail-configure
  • 設定檔 squirrelMail 的設定檔為 /etc/squirrelmail/config.php



squirrelmail-configure 操作方法

  • 原則:點左側字母,進入各功能
  • 以修改 squirrelmail 的網址超連紹為例:
1. 修改組織相關資訊,先選「1
quirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1.  Organization Preferences
2.  Server Settings
3.  Folder Defaults
4.  General Options
5.  Themes
6.  Address Books
7.  Message of the Day (MOTD)
8.  Plugins
9.  Database
10. Languages

D.  Set pre-defined settings for specific IMAP servers

C   Turn color on
S   Save data
Q   Quit

Command >>

2. 變更網頁郵局之連結網址,選「7

SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Organization Preferences
1.  Organization Name      : YHLab
2.  Organization Logo      : ../images/sm_logo.png
3.  Org. Logo Width/Height : (308/111)
4.  Organization Title     : YHLAB SquirrelMail $version
5.  Signout Page           : 
6.  Top Frame              : _top
7.  Provider link          : http://yhlab.myip.tw/squirrelmail/
8.  Provider name          : SquirrelMail

R   Return to Main Menu
C   Turn color on
S   Save data
Q   Quit

Command >> 

3. 在畫面下方輸入正確的網址

Here you can set the link on the right of the page.
The default is 'http://squirrelmail.org/'

[http://yhlab.myip.tw/squirrelmail/]: http://yhlab.myip.tw/squirrelmail/

4. 輸入完畢按「Enter」,會跳回上面的畫面

SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Organization Preferences
1.  Organization Name      : YHLab
2.  Organization Logo      : ../images/sm_logo.png
3.  Org. Logo Width/Height : (308/111)
4.  Organization Title     : YHLAB SquirrelMail $version
5.  Signout Page           : 
6.  Top Frame              : _top
7.  Provider link          : http://yhlab.myip.tw/squirrelmail/
8.  Provider name          : SquirrelMail

R   Return to Main Menu
C   Turn color on
S   Save data
Q   Quit

Command >> 

5. 再按「 R 」鍵回主選單

quirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1.  Organization Preferences
2.  Server Settings
3.  Folder Defaults
4.  General Options
5.  Themes
6.  Address Books
7.  Message of the Day (MOTD)
8.  Plugins
9.  Database
10. Languages

D.  Set pre-defined settings for specific IMAP servers

C   Turn color on
S   Save data
Q   Quit

Command >>

6. 最後,先按「 S 」儲存,再按「 Q 」離開


  • 註:以上功能按鍵並不限大小寫



幾個必要的設定項目

除了上面所示範的網址列設定外,在了解 squirrelmail 的設定方式後,還要繼續以下幾個必設的項目:

  • 2. Server Settings ,若要改用 IMAPs ,除了要加裝 squirrelmail-secure-login 外,這裡也要改成 993
    • A. Update IMAP Settings: localhost:143
    • B. Update SMTP Settings: localhost:25


  • 5. Themes 佈景主題的做法比較不一樣

  A. 選「 1 」,改變佈景

Define the themes that you wish to use.  If you have added a theme of your own, just follow the instructions (?) about how to add them.  You can also change the default theme.
[theme] command (?=help) > ?


  B. 輸入「?」後所出現的 HELP

.-------------------------.
| t       (detect themes) |
| +           (add theme) |
| - N      (remove theme) |
| m N      (mark default) |
| l         (list themes) |
| d                (done) |
`-------------------------'
[theme] command (?=help) > 

  C. 先按「 l 」列出可用佈景
  D. 再按「m 40 」,選用 Wood
  E. 按「 d 」,選定
  F. 按「 S 」,儲存

  • 10. Language preferences
    • 1. Default Language  :zh_TW
    • 2. Default Charset    :UTF-8
    • 3. Enable lossy encoding :false




Apache2 上的設定

  • 由於安裝的程式碼是在 /usr/share/squirrelmail 底下,所以要設定 apache2 把 http://server_name/squirrelmail 指到本地
  • 做法
  1. root@mail:~# ln -s /etc/squirrelmail/apache.conf /etc/apache2/conf.d/squirrelmail.conf
  2. root@mail:~# service apache2 restart




參數檢查

  • 參數檢查:要直接在本機的瀏覽器上輸入,記住一定用 localhost 不可以用 server host name,詳見 /etc/squirrelmail/apache.conf 內的設定值便可了解。
    http://localhost/squirrelmail/src/configtest.php
    檢視該網頁呈現的訊息,若最後一行出現「Congratulations, your SquirrelMail setup looks fine to me!」,應就沒什麼大問題了。




新增外掛

由於本文示範安裝的 squirrelmail 來源為 ubuntu 套件庫,因為所示的位置是以官方


外掛位置

  • squirrelmail 主程式位置:/usr/share/squirrelmail/
  • 外掛程式放置點:/usr/share/squirrelmail/plugins



外掛安裝原則

  • 若外掛沒什麼 bug 安裝原則如下
  1. 把外掛程式下載解壓
  2. 把整個資料夾複製到 /usr/share/squirrelmail/plugins 底下
  3. 執行 squirrelmail-configure -> 8. plugins -> 啟用所需外掛 -> s (儲存) -> q 離開
  4. 登入 squirrelmail 後,就可以看到超連結,如下圖所示
    Squirrelmail screenshot1.png



「檔案總管」外掛初步安裝


  • 解壓縮,並放到 /usr/share/squirrelmail/plguins
    • root@mail:~# tar xzvf file_manager2.tar.gz
    • root@mail:~# mv file_manager /usr/share/squirrelmail/plugins/


  • 到 /usr/share/squirrelmail 底下
    • root@mail:~# cd /usr/share/squirrelmail/plugins/file_manager
  • 複製 config.php.sample 為 config.php; file_manager.users.sample 為 file_manager.users
    • root@mail:/usr/share/squirrelmail/plugins/file_manager# cp config.php.sample config.php
    • root@mail:/usr/share/squirrelmail/plugins/file_manager# cp file_manager.users.sample file_manager.users


  • 修改 file_manager.users 加入可以使用檔案管理的使用者,以 yh 為例
#
# FILE MANAGER USER CONFIGURATION
#
# Each line should correspond to one user where the fields are:
#
#   username (must match SquirrelMail login - see README for more info)
#   base directory (any number of base directories may be listed here)
#   upload quota (in the form of "50000000" or "50MB" or "50M"; this field may be skipped (unlimited quota))
#   admin email
#   allow symlinks?  1 = yes, 0 = no
#   allow chmod?  1 = yes, 0 = no
#   allow editing of binary files?  1 = yes, 0 = no
#
# All fields must be separated by one or more tabs or spaces.
# See README for more detailed explanation of each field.
#

yh       /home/yh   500MB   admin@yhlab.myip.tw    1   1   1

 註:欄位格式為「帳號 家目錄 Quota 管理者郵件 三個數字」(數字意義在 # 註解文字有說明)



「檔案總管」外掛 Bug 修正

雖然 squirrelmail 一直都有在更新,但 file manager 外掛是早期的產品,最近都沒有修正,尤其是它開發時的 PHP 為 4.x 版,因此在 Ubuntu 11.04 上必須小修一番才可以順利運作。

  • 修改 functions.php 第 401 行,把原本的 $this (有兩處)改為如下所示的 $thisfoo
      foreach ($p_arr as $thisfoo)
      {
         $p_char = ( $i%3==0 ? "r" : ( $i%3==1 ? "w" : "x" ) );
         $perms .= ( $thisfoo=="1" ? $p_char : "-" ) . ( $i%3==2 ? " " : "" );
         $i++;
      }


  • 修改 file_manager.php 在一開始下面所示位置
   chdir('..');
   define('SM_PATH', '../');
   include_once(SM_PATH . 'plugins/file_manager/functions.php');

改成

   chdir('..');
   define('SM_PATH', '../');
   require_once(SM_PATH . 'functions/global.php');
   require_once(SM_PATH . 'functions/strings.php');
   include_once(SM_PATH . 'plugins/compatibility/functions.php');
   include_once(SM_PATH . 'plugins/file_manager/functions.php');




「檔案總管」外掛中文語系檔

 file manager 外掛並沒有中文語系檔,因此筆者花了一點時間翻譯,但還沒深入使用該功能,因此可能會有一些不貼切的地方,請大家多多包涵。

  • 建立中文語系資料夾
    • file manager 的語系檔位置
      /usr/share/squirrelmail/plugins/file_manager/locale
    • 建立準備放中文語系檔的資料夾
      • root@mail:~# mkdir /usr/share/squirrelmail/plugins/file_manager/locale/zh_TW
      • root@mail:~# mkdir /usr/share/squirrelmail/plugins/file_manager/locale/zh_TW/LC_MESSAGES


  • 下載筆者翻譯的中文語系:檔案:File manager zh TW.zip
    • 解壓縮
      root@mail:~# unzip File_manager_zh_TW.zip
    • 複製到外掛
      root@mail:~# cp file_manager.* /usr/share/squirrelmail/plugins/file_manager/locale/zh_TW/LC_MESSAGES



由官網下載主程式更新

理由說明

  • 理由
    Ubuntu 11.04 所附的 squirrelmail 為 1.4.21 ,該版本在遇到標題亂碼(bad header)的郵件時,會 timeout ,除了該郵件讀不出外,連帶會影響其他後面的郵作。
  • 建議版本
    建議下載 1.4.23 SVN 版
  • 官網下載點
    http://squirrelmail.org/download.php
  • 找到
Stable version snapshots (1.4.23-svn)
squirrelmail-2011xxxx_xxxx-SVN.stable.tar.gz (3 d/l)
squirrelmail-2011xxxx_xxxx-SVN.stable.tar.bz2 (1 d/l)
  • 隨便找一個壓縮檔下載,本地以 squirrelmail-20111118_0200-SVN.stable.tar.gz 為例進行解說。



新版本安裝方式

  • 把下載回來的檔案解壓縮(假設放在 /root 底下)
    root@mail:~# tar xzvf squirrelmail-20111118_0200-SVN.stable.tar.gz
  • 產生的資料夾
.
├── squirrelmail-20111118_0200-SVN.stable.tar.gz
├── squirrelmail.stable
│   └── squirrelmail
│       ├── class
│       ├── config
│       ├── configure
│       ├── contrib
│       ├── data
│       ├── doc
│       ├── functions
│       ├── help
│       ├── images
│       ├── include
│       ├── index.php
│       ├── locale
│       ├── plugins
│       ├── po
│       ├── README
│       ├── src
│       └── themes
└── ......
  • 把 squirrelmail.stable/squirrelmail/* 複製覆蓋至 /usr/share/squirrelmail/ 底下
    root@mail:~# cp -rf ./squirrelmail.stable/squirrelmail/* /usr/share/squirrelmail
  • 完工,請見螢幕截圖

Squirrelmail login.png




本文小檔案

__NORICHEDITOR__

題名: Title::Squirrelmail Webmail
作者: Creator::itsmw作者群
主題/關鍵詞: Subject::webmail, squirrelmail
簡述: Description::Squirrelmail 之安裝與使用
出版者: Publisher::MyIP itsmw 計畫
其他參與者: Contributor::itsmw作者群
日期: Date::2011-11-1
文件類型: Type::08伺服器軟體
資料格式: Format::text/html
文件識別代號: Identifier::http://myip.tw/itsmw/index.php?title=SquirrelMail
來源: Source::http://squirrelmail.org/
語言: Language::zh-TW
相關資源: Relation::http://kawsing.blogspot.com/2011/10/postfixdovecotsquirrelmail-ubuntu-11.html
文件涵蓋範圍: Coverage::Linux平台
版權規範: Rights::GNU Free Documentation License 1.2