(最近修正:2000/7/28) 分享imp附件另存時的檔名問題(2000/7/28) (顏國雄): imp(2.0.11)在處理用Outlook寄來的附件檔,下載的部份少了一個將檔名解碼的動作,以致於無法正確的抓到原來的檔名,不過,這鍋好像還是得怪Outlook老用自己的標准!! 解決的方法很簡單,只
(最近修正:2000/7/28)
分享imp 附件另存時的檔名問題(2000/7/28)
(顏國雄):
imp(2.0.11) 在處理用 Outlook 寄來的附件檔,
下載的部份少了一個將檔名解碼的動作,以致於無法正確的抓到原來的檔名,不過,這鍋好像還是得怪 Outlook 老用自己的標准!!
解決的方法很簡單,只要在 imp/view.php3 中加入一行即可迎刃而解
找到 view.php3 中下面的部份
--------------------------------------------------------------------------
case DOWNLOAD_ATTACH:
$mime = new mime_part_data;
$mime->parse($part);
/* This should force a save file dialog... */
/* doesn’t seem to force save file dialog, using RFC822 does
* even for IE
* header("Content-type: application/octet-stream"); */
header("Content-type: application/RFC822");
break;
改成:
--------------------------------------------------------------------------
case DOWNLOAD_ATTACH:
$mime = new mime_part_data;
$mime->parse($part);
//就是下面這行啦!!將編碼過的檔名解碼
$mime->name = chop(decode_mime_string($mime->name));
/* This should force a save file dialog... */
/* doesn’t seem to force save file dialog, using RFC822 does
* even for IE
* header("Content-type: application/octet-stream"); */
header("Content-type: application/RFC822");
break;
簡易安裝
(蔡福興):必須先把 apache php3 imap 裝好!
1.把 horde-1.0.10.tar.gz & imp-2.0.11.tar.gz 抓回來
2.tar zxvf horde-1.0.10.tar
3.tar zxvf imp-2.0.11.tar.gz
4.mv horde-1.0.10 (你WEB的root)/horde
5.mv imp-2.0.11 (你WEB的root)/horde/imp
6.cd (你WEB的root)/horde
7.sh install.sh
8.在浏覽器上執行 http://(your web site)/horde/setup.php3 照指示一直按 Next
9.sh secure.sh
忘了告訴大家!
imp相關檔案可至以下網址抓取http://cnpa.yzu.edu.tw/~stylon/software/imp/
imp在本校的linux上有安裝完成!應該沒有問題!
IMP增加同時上線人數(經
測試45人以上沒問題)
(顏國雄):
將 /etc/
.netd.conf 中有關 imap 的那行
imap stream tcp nowait .................
改成
imap stream tcp nowait.300 .................
重新啟動 ine
td Q: 請問apache怎麽開啟php3呢 謝謝
我在linux6.0下面.
(顏國雄): 先找 mod_php* 的 rpm
可在 ftp://www.tp.edu.tw/pub/mod_php3 中找到:
mod_php3-3.0.12-1
clearcase/" target="_blank" >cc.i386.rpm
mod_php3-imap-3.0.12-1cc.i386.rpm
mod_php3-
mysql-3.0.12-1cc.i386.rpm
如果不使用資料庫,只要安裝前兩個
rpm -Uvh mod_php3*
然後修改 apache 的設定檔(應該是在 /etc/httpd/conf/ 下吧)
找設定檔中有關 php 的部份,將解的 # 字號拿掉
存檔後執行 /etc/rc.d/init.d/httpd restart 重新啟動 apache
(李權哲):裝完php3的套件後,修改apache的相關設定檔再重新啟動apache,
如:
一.修改httpd.conf(apache的設定檔,在 /etc/httpd/conf):
第67行-->#LoadModule php3_module modules/libphp3.so
改成-->LoadModule php3_module modules/libphp3.so
第113行-->#AddModule mod_php3.c
改成-->AddModule mod_php3.c
二.修改 srm.conf 檔:
第30行-->DirectoryIndex index.html index.shtml index.cgi
改成-->DirectoryIndex index.html index.shtml index.cgi index.php3
第164行-->#AddType application/x-httpd-php3 .php3
改成--->AddType application/x-httpd-php3 .php3
第165行-->#AddType application/x-httpd-php3-source .phps
改成--->AddType application/x-httpd-php3-source .phps
三.重新啟動 apache:
/etc/rc.d/init.d/httpd restart 或kill -1 apache的pid
即可使用php3
IMP安裝補充說明
(惠志堅):
1.如何直接進入 imp 的 login 畫面:
a: 請將 http://(your web site)/horde
改為 http://(your web site)/horde/imp
2.如何在一進入 imp 的 login 畫面就顯示中文:
a: 請在 /home/httpd/html/horde/imp/config/defaults.php3
將原來:
$default->language = ’en’;
改為:
$default->language = ’big5’;
(李權哲):
在imp中如果要讓user使用地址簿簽名檔等功能必
須先安裝如MySql,mSQL等database server,如果您的
系統已安裝了,必須再建立相關的dabase,table才可.
因為本校系統裝的是
MySQL,故以MySQL為例,步
驟如下:
一.首先以root連上MySQL.
方法為:#mysql -uroot -p(您的密碼)
二.建立一名為imp的database,指令為:
CREATE DATABASE imp;
三.選擇imp這個database,指令為:
USE imp;
四.建立imp_addr和imp_pref兩個table,指令為:
CREATE TABLE imp_addr ( user text, address text,
nickname text, fullname text );
CREATE TABLE imp_pref ( user text, sig text,
fullname text, replyto text,lang text);
建立完後就可正常使用
有一點很重要,在執行setup.php3時,不可只猛按NEXT,
在第五還是第六個步驟時,它會問要不要啟動資料庫功能,
預設值是沒有要改一下.
IMP安裝補充說明總整理(含資料庫設定)
(惠志堅):
imp使用mysql資料庫總整理(新增 imp 使用者方法):
1. #mysql -uroot -p(您的密碼)
2.CREATE DATABASE imp;
3.USE imp;
4.CREATE TABLE imp_addr ( user text, address text, nickname text, fullname text );
5.CREATE TABLE imp_pref ( user text, sig text, fullname text, replyto text,lang text);
6. GR
ANT ALL ON imp.* TO impuser@localhost IDENTIFIED BY '您的密碼';
7. exit
8. cd /home/httpd/html/horde
9. sh install.sh
10. 回到浏覽器 http://(your web site)/horde/setup.php3
11. next 到第十頁, 將資料庫開啟, 選項分別為:
true , mysql , impuser , 您的密碼
12sh secure.sh
13. 修正之後畫面會回英文, 要設定為中文的話, 在 /home/httpd/html/horde/imp/config/defaults.php3
將原來:
$default->language = ’en’;
改為:
$default->language = ’big5’;
14.: 若資料庫建立錯誤要重建的話, 先將原資料庫 imp 丟棄,語法如下:
DROP DATABASE imp;
Q: imp && /var/tmp.
(顏國雄): 今早兩間電腦教室(近80台)同時在使用 imp
本來都好好的,結果快下課時發生一件以前沒遇過的狀況:
----------------------------
May 26 09:21:05 w3 imapd[10208]: Fatal error user=s84382 host=w3.lsps.tp.edu.tw
May 26 09:21:05 w3 imapd[10208]: IMAP toolkit crash: Out of free storage
May 26 09:21:06 w3 imapd[10182]: Fatal error user=s85308 host=w3.lsps.tp.edu.tw
May 26 09:21:06 w3 imapd[10182]: IMAP toolkit crash: Out of free storage
----------------------------
imp 在處理附件時會使用到系統的暫存目錄 /var/tmp
我們的狀況就是隔壁在教學生使用附加檔,兩個班同時運作,讓 /var/tmp 所在的 partition 不夠用了
所以系統的暫存目錄 /var/tmp /tmp 或 /usr/tmp 最好是在容量較大的 partition
早上就
rm -R /var/tmp (得注意一下是否有別的程式在使用)
mkdir /home/tmp
cd /var
ln -s /home/tmp
做完就解決問題了
/tmp 也可以如法泡
一點小心得跟大家分享
Q: 想把IMP登錄的"語言"選擇消失要如何做??.
(黃彥霖): IMP登錄畫面有一個語言選擇, 我想大家應該都只會用到中文, 如果我想把他給取消不見, 要
如何改??
(顏國雄): 修改 imp/config/defaults.php3
$default->user_change_language= false;
$default->language = ’xxxx’;
Q: imp 裝好了但無法執行?.
(李佳茂): 我遇到了和吳中復老師在4/29編號546相同的問題,在鍵入
http://163.18.226.21/horde/imp/ 後出現
Fatal error: WebClient is not a class in /home/horde/imp/index.php3 on line 16
如果鍵入 http://163.18.226.21/horde/index.php3 則出現
Fatal error: WebClient is not a class in /home/httpd/html/horde/index.php3 on line 28
請問這是什麽原因(是php3沒起來嗎?還是imp的問題?),又該如何解決?(我使用 redhat 6.0+cle0.8) php3版本使用顏國雄老師所說的mod_php3-3.0.12-1cc,mod_php3-imap-3.0.12-1cc
(李佳茂): 我來自問自答。
經過我一番思考及推敲之後,終於找到了解決的方法。為了怕其它先進也步我後塵,誤觸雷
池造成遺憾,故加以說明。
首先如我原先的問題中所述的系統及 php3 軟體版本的環境
下,我發現我本身的問題為:
1. /home/httpd/html/horde/imp 的擁有者及擁有群組均非 root
所以我先以 chown root.root * -R 把擁有者及擁有群組改過
來。
2.後來發現錯的不光如此,我所用的 IMP 版本也有問題, 我所用 imp-2.0.11-big5.
tar.gz 的版本會造成原有問題的錯
誤,所以改用 imp-2_0_11-big5_tar.tar 這個版本的 imp 重
新 tar 開再安裝就沒問題了。
3.其實上述因版本不同所造成的問題我也曾遇過,不料又 被我碰上了,心中雖感受挫
,但自己解決問題的感覺真 好,我想實驗室的各位先進也都有同等的經驗吧!:p
Q: imp如何管理多台mail server?
(志峰): 有些學校的imp可以管理數台mail server,請問是如何做到
的?我的imp是裝在redhat上,mail server有兩部1.freebsd
2.redhat ,請問要如何用redhat上的imp來收發freebsd上
的mail 郵件?
(黃信豐): 到/horde/imp/config 裡面,修改 defaults.php3 檔案
$default->use_server_list = false;
改為 $default->use_server_list = true;
並修改 servers.php3 內之
$IMAPServers[’mail1’] = new IMAPServer(’老師郵件伺服器’,
’mail1.xxx.xxx.edu.tw’,
143
);
$IMAPServers[’mail2’] = new IMAPServer(’學生郵件伺服器’,
’mail2.xxx.xxxx.edu.tw’,
143
);
xxx.xxx.xxx.edu.tw
xxx.xxx.xxx.edu.tw
為學校不同的mail主機
(周凡淇): 裝 imp 的時候設定為可以改變 server 的位置~
使用者要收其它 server 的信
只要在【主機】的地方輸入欲收信的位置即可...
http://math.tmtc.edu.tw
裡面有一個 webmail,可以收其它主機的信...
連 hinet 都可以~~
Q: imp的
bug???
(陳靖): 不知道各位老師是否有發現在使用imp寄信時,寄件人可以任意更改,這樣的話............不就代表我們可以用昵名者的方式............!
(顏國雄): 不用那麽麻煩啦!!
這點作者早就考慮到了
修改 imp/config/defaults.php3 中
將
$default->user_change_from = true;
改成
$default->user_change_from = false;
Q: 附件(夾檔)有問題
(郭書軒): 當我測試imp後發現在附件即夾檔的檔名點
開發現是亂碼不像在outlook express內呈現是”學生.doc "正常的中文顯示,因此請
問各位imp的愛用者,此問題是否有解?
(顏國雄): 將下面的內容 imp/lib/mimetypes.lib 中下面的內容
2.0.11 版大概在 170 行左右
--------------------------------------------------------
if ($this->action[’view’])
$ret .= "";
else
$ret .= "$this->icon $this->name";
--------------------------------------------------------
改為
--------------------------------------------------------
if ($this->action[’view’])
$ret .= "";
else
$ret .= "$this->icon " . decode_mime_string($this->name);
--------------------------------------------------------
主要的原理是將以 base64 編碼過的檔名 用 decode_mime_string 解碼
那鍋 $this->name 就是附加檔的檔名