Linux系统之IMAP: 实用导引
英文原作 David Jao中文译文 \"o k\"
提要:互联网邮件访问协议, 版本4.1(IMAP4rev1), 允许用户通过互联网络,访问和维护远程机器中邮件匣的梯层状
构造。IMAP的这种\"client-server\"设计思想,使它也能从可移植性
和网络透明性中受益,正如图形界面程序从X11视窗系统中得到
的那些同样。在本文中,将要讲述如何设定在LINUX系统上的
IMAP的客户端和服务器端程序,以用于管理邮件。并将进一步
阐述IMAP的优劣之处,讨论何时使用IMAP才有实际意义。
1. IMAP真有必要吗?
现在你是怎么在看邮件呢?一般而言,大都会用一个诸如
pine或Netscape的软件。每一个email帐号,都只有一个收
件匣。几个月积累下来的邮件就那样放在一个收件匣中无疑
是不明智的,出于管理和分类的方便它们会被分到几个匣中。
在未使用IMAP时,这些邮件匣是被存放在本地硬盘(或者远程
主机上你自己的目录下)。这样会带来如下一些问题:
使用字符界面邮件软件时,为了看邮件,你必须login到相应
邮件匣的帐号中。你持有帐号时这本来不是什么问题,但有了多个
帐号时用这个方式就可能会是一种痛苦体验,比如想从一个帐号
中的信件匣中移动一堆邮件到另外一个帐号中的某个信件匣中时。
使用图形界面的邮件软件时,通过低带宽的网络连接去管理邮件
常常很困难甚至根本不可能。这个假设的可能性最大,因为许多人
喜欢有图形界面的邮件软件,网络连接速度也异常可怜。
当你根据特定邮件程序定制了邮件匣后,再想切换用其它软件将
非常困难。很多用户越来越意识到,如果最后依然可以根据当前
的情形来取舍更改邮件程序的设定将是多么的有意义。
IMAP一劳永逸地解决了这些问题,其高明之处就是所有的邮件匣
是存放在一台中央机器中,然后通过被广泛支持的协议来进行访
问。使用了IMAP,你可以:
通过任何机器,在任何地方,来与你的邮件匣打交道,只要IMAP的
用户程序是安装着的。
通过一个用户端程序,管理多个帐号的多个邮件匣。
希望时就可以在各种邮件程序(Netscape, pine, Eudora)间自由
切换,并能自动利用所有邮件匣。
X11视窗协议这种构造带来了帮助。MS Windows,图形程序只能被
固定地显示在运行机器自己的监视器上。形成对比的是,在X系统
下,程序可以在一台机器运行,然后通过延伸的协议将画面显示在
另外一台机器上。在今天这样一个高度互联的网络世界中,这种
网络透明是一个非常宝贵的优点。IMAP提供了同样的柔韧性:你的
所有邮件匣(换言之,你关心的那些所有数据),被存放在中央服
务器中,因而它们不再被一台机器的一个程序所隅, 而可以透过网
络,为所有相兼容的程序所利用。
2. IMAP 服务器的安装
现在急着想用IMAP了,是不是呀?
第一步是安装一个IMAP服务器。如果你的ISP已经有一个现成的在运行,
那么就只是怎么去利用它的问题了。此时的优点就是不用顾虑你自己的
机器在哪儿,你可以随时随地去访问你的有件。缺点当然就是此前你必须
拨号以连通你的ISP。很多ISP不提供IMAP服务,所以可能你需要自己来
安装一个的啦。
长话短说,这儿就是一个不完美却简单易行的指导,用来安装 华盛顿大学
的IMAP服务器。
首先是得到和展开最新版的软件包(此文写作时为版本4.4):
[root@localhost ~]# lynx ftp://ftp.cac.washington.edu/imap/imap-4.4.tar.Z
[root@localhost ~]# tar xzvf imap-4.4.tar.Z
[root@localhost ~]# cd imap-4.4
用以下命令之一来进行编译:
\"make lnx\", 如果是通常的系统;
\"make sl5\", 用libc5和shadow passwords的系统;
\"make slx\". 基于glibc,并采用shadow passwords的系统。
[root@localhost imap-4.4]# make lnx
安装编译好的程序:
[root@localhost imap-4.4]# install -s -m 755 -o root -g mail imapd/imapd /usr/sbin
添加以下内容到 /etc/inetd.conf (如果已经有了,只将注释符“#”去掉即可):
imap stream tcp nowait root /usr/sbin/tcpd /usr/sbin/imapd
然后需要修改hosts.allow和hosts.deny以限制访问IMAP的domain。 这一步是很有
重要的,因为华盛顿大学的IMAP服务器程序曾经有一些严重的安全漏洞 。
在/etc/hosts.deny中添加如下一行:
imapd: ALL
在/etc/hosts.allow 中添加允许被来访问的机器和domain:
imapd: your.local.host.com
imapd: .yourisp.com
imapd: .yourschool.edu
最后将inetd重新启动一下,你的IMAP服务器就要工作了。
[root@localhost ~]# killall -HUP inetd
2.1. 特定版本的安装指南
如果你用的Linux刚好有软件包管理器,希望时也可以直接安装编译好的
服务器程序。
对于RedHat 5.2:
lynx ftp://ftp.redhat.com/pub/redhat/redhat-5.2/i386/RedHat/RPMS/imap-4.4-2.i386.rpm
rpm -Uvh imap-4.4-2.i386.rpm
对于Debian 2.0:
lynx ftp://ftp.debian.org/debian/dists/stable/main/binary-i386/mail/imap_4.2-1.deb
dpkg -i imap_4.2-1.deb
软件包装好后,前面提到的 /etc/inetd.conf, /etc/hosts.deny, 和/etc/hosts.allow
的修改等步骤也要同样进行。
3. IMAP 用户端程序的设定
IMAP服务器程序设定完成后,接下来就是用户端程序的设定。一般步骤是:
在你的服务器系统中找一个合适的目录以容纳邮件。需要读和写的权限。
如果这个目录不存在现在要产生出来。我个人是在用 $HOME/Mail.
告诉IMAP用户端程序服务器名,登录用户名,及上面提到的邮件匣所在目录。
现在就可以产生或删除服务器上的邮件匣,移动匣中的邮件,就象它们在
本地硬盘上,你可以用和以前操作本地硬盘上邮件匣一样的技术,感觉上没
有差别。
下面是三个我真正在用的邮件程序的例子:
3.1. Pine 4.05
Pine可以在 http://www.washington.edu/pine/. 得到. 它在UNIX世界中非常风行。
4.0x 加入了联机IMAP邮件匣访问功能。要设定Pine时,揿S进入Setup,L进入
邮件匣列表(collection list), A用来增加一个邮件匣(collection)。
要输入IMAP服务器名,登录用户名,及上面提到的邮件匣所在目录。
很简单是不是?Pine支持多个IMAP邮件匣。你可以增加任意多个,并能够在同
一个地方进行管理。
Screenshot of pine configuration
3.2. Netscape Communicator 4.07
Netscape Communicator 是集成式网页浏览器和邮件新闻组阅览器,被相当广泛
地在应用。版本4.07适合用于少量邮件的处理, 但如果一个邮件匣中超过1000个
邮件时,它就会崩溃(要不要试试看)。Netscape Communicator 可以从
http://home.netscape.com/ 得到。
设定时,选择\"Edit\" ->\"Preferences \" ->\"Mail & News\",点击\"Mail Server\"
选项,输入用户名和IMAP服务器名。显然,要将服务器的类型设为\"IMAP4\" 。
点击\"More Options\" ,填入邮件匣所在的目录名。最后要确认\"Move Deleted
Messages to Trash\" 不能被选中使用。因为IMAP自己能够标志那些被删除的信息。
Netscape 4.0x 不支持多个IMAP邮件匣。不能自动复制送信件到远程服务器上相应
的邮件匣中。Netscape 4.5支持这些功能,但我发现其IMAP功能尚不能稳定工作。
Screenshot of Netscape configuration
3.3. TkRat 1.2
TkRat 是现在我喜欢的图形界面的邮件处理软件。它也是我所知道的唯一一个 源代码公开 IMAP 用户端软件(它的许可是那种BSD样式的)。 它可以从 http://www.dtek.chalmers.se/~maf/ratatosk/得到。
在TkRat中,从Admin菜单中选择\"New/Edit Folder\",然后从Import菜单中选择
\"IMAP Folders\", 输入IMAP服务器名,登录用户名,和一个能匹配到邮件匣的通配符。
注意TkRat希望是通配符而不是目录名。
Screenshot of TkRat configuration
4. 重要使用说明
下面是关于IMAP的一些重要的,但不怎么显而易见的事情。
4.1. 目录结构
目前,UW IMAP 服务器程序的一个制限是同一个邮件匣中,子目录和信件不能混杂。
就是邮件匣中要么是子目录,要么是邮件,但不能二者都有。如果一个邮件匣中全是
目录,那么它的名字应该以\"/\"收尾。
举例如下:
Courses/ 中只包含子目录。
Courses/Calculus 是Courses/的子目录,它只包含邮件。
Courses/Languages/是Courses/的子目录,它包含其它子目录。
4.2. The Inbox
邮件匣名INBOX, Inbox, 或者其它只是大小写不同的名字是保留字,你不能用来
做自己邮件匣的名字。
5. 安全配虑
运行IMAP增加了一个守护进程,因而系统增加了潜在的安全漏洞。如果没有必要
的话,你可能最好不用去安装它。
一个问题点是用于登录和验证用的密码的一般文本化。象很多其它服务那样,IMAP
的往来通讯是在网上以普通文本方式传递的。很多人并不以为传递普通文本方式的
密码是一个大问题。他们会不犹豫地使用telnet, ftp, POP3,等等。但如果你不喜
欢这样不加防护地传递密码,你可以有这样一些选择:
用 Netscape Messaging Server, 它支持SSL下的IMAP。遗憾的是还没有Linux版本,
并且需要$1295美元。
编译带Kerberos验证支持的 Cyrus IMAP 服务器 。
通过 Secure Shell 来进行安全管道下的IMAP的来往通讯.
在你机器上安装 imp (a web-to-IMAP gateway) 通过SSL web服务器来访问它。
不幸的是,所有这些技术都超出了本文的范围。一个事实是,现在互联网上传递的
数据,大多都是未加密的平常文本的方式;如果真的那么容易隐藏它们,人们老早
就会那么做了。
6. 结语
越来越少的人能够用一个单一的邮件程序,总是处理好每天的大宗的邮件。更多的
人处理这种邮件移动问题,需要Telnet,远程X的显示,和分布文件系统。只有IMAP
真正提供了一种综合方法,在应用程序级别上致力解决了这个问题。通过不减少机能
的网络透明性,IMAP大大改善了我们读取邮件的方式。我断定不久后用户的需要将
使对IMAP的支持成为邮件程序的必要功能之一。
简而言之,如果你对当前看邮件的方式很满意,就没有必要去惊动IMAP。如果你很
愿意增加管理邮件的灵活性,最终你会决定采纳IMAP的。
发布人:netbull 来自:Linux公报