当前位置:Linux教程 - Linux - Linux系统之IMAP: 实用导引

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公报