Archive for the 'webmail' Category

Horde UTF-8 裡面處理 Big5 的問題

兩年多前,我還在維護計中 webmail 的時候,曾經評估了 Horde/IMP 跑 UTF-8 模式會碰到的問題。當時有一個很大的問題就是很多信的標題都是直接放沒編碼過的 Big5 字,導致顯示不正常。那時候在 Horde 的 MIME::decode 做了一個很噁心的事情:把所有沒編碼的東西都當 Big5 轉一次到 UTF-8,之後測試的時候,一直注意到中文的副檔名不太正確,後來就沒繼續維護後,也一直沒有機會去看為甚麼。

剛才,因為某些緣故,跑去看了另外一套 Horde 的安裝,花了不到十分鐘,發現問題是我自己製造出來的。因為 MIME::decode() 傳進來的字串有可能是已經處理過的,所以已經變成 UTF-8,而我又轉了一次… XD 現在的作法是先 UTF-8 到 UTF-8 轉一次,如果不一樣的話,才當 Big5 處理。目前看起來狀況還不錯,再觀察看看。

惡搞 Horde/IMP Quota

很久以前,計中 WebMail 的 quota 就是用 imap client 端去算的,去年中的時候,用 session 當 cache 來加速過。

剛再看 mailbox.php(郵件列表)在不同地方花的時間,會有常看到算 quota 的地方會花不少時間。而有些狀況,像是清空一個 folder 之類的,不應該全部 folder 都看一次,於是,剛就再度惡搞 IMP 的 session,把已經算過的 folder 大小塞進去(當然,在適當的地方要記得 flush)。

觀察 log 的感想是,用 folder size cache 的大概只有 20% 到 30% 左右,其實正解應該還是要 server-side 作才對啊 XD

Horde 的 memcached session handler

中午吃飽很無聊,於是就把 Horde 的 SessionHanlder 加上 memcached,換句話說,就是把 session 的東西塞進 memcached,這樣子多台 share 比較方便。

不過話說回來,目前的架構並不用 share session,而且 session 原本我就是塞 ram disk: md(4),只是純粹寫爽,然後看看好不好玩,等下把 code 清一清後,去 horde mailing 喊一喊好了 :p

Update: 我放棄了,會有奇怪的 message missing 問題,看起來是 Horde/IMP 裡面用 session 方式造成很怪的問題… Q_Q

跑 awstats

剛才把我有跑 awstats 的地方,通通改成用 static output 的方式,而且從 web 端是完全 access 不到 awstats.pl 的(我根本沒開那個目錄出來… XD),這樣子應該可以省去不少麻煩 :D

ZendOpitmizer & PHP 4.3.10

剛把機器 PHP 換到 4.3.10,結果大爆炸:

$hosts = array (1,2,3,4);
foreach ($hosts as $m) {
echo $m;
}

那個 $m 會變成 Array,在其他地方就是正常的,結果經過 ericyu 提醒,發現是 ZendOptimizer 跟 PHP 4.3.10 的問題,拿掉就好了。

後記:剛看到了,要 upgrade 到最新的 ZendOptimizer (2.5.7)。

邪惡的 webmail

前陣子因為 webmail 被一個很巨大的表拖累,導致速度很慢,那時候多生了幾台機器出來,本來是想分年級來跑,結果弄了老半天,想不到好方法。
Continue reading ‘邪惡的 webmail’