当前位置:Linux教程 - Email - email - imp问题集

email - imp问题集

imp问题集
2004-04-23 15:18 pm
来自:Linux文档
现载:Www.8s8s.coM
地址:无名

分享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/inetd.conf 中有关 imap 的那行
imap stream tcp nowait .................
改成
imap stream tcp nowait.300 .................

重新启动 inetd



Q: 请问apache怎麽开启php3呢 谢谢
我在linux6.0下面.

(颜国雄): 先找 mod_php* 的 rpm
可在 ftp://www.tp.edu.tw/pub/mod_php3 中找到:
mod_php3-3.0.12-1cc.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. GRANT 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 .= "mailbox) . "&index=$this->index&bodypart=$this->partno&actionID=" . VIEW_ATTACH . "" target="_blank">$this->icon $this->name";
else
$ret .= "$this->icon $this->name";
--------------------------------------------------------

改为

--------------------------------------------------------
if ($this->action[’view’])
$ret .= "mailbox) . "&index=$this->index&bodypart=$this->partno&actionID=" . VIEW_ATTACH . "" target="_blank">$this->icon " . decode_mime_string($this->name) . "";
else
$ret .= "$this->icon " . decode_mime_string($this->name);
--------------------------------------------------------

主要的原理是将以 base64 编码过的档名 用 decode_mime_string 解码
那锅 $this->name 就是附加档的档名