23.1. 配置和编译

通过 IMAP & POP 软件,远程客户端电子邮件程序可以访问 Linux 邮件服务器上的邮件存储,就像访问本地存储一样。例如,用户在 IMAP 服务器上接收和存储的电子邮件可以在其家庭、办公室等地的计算机上进行操作,而无需在这些计算机之间来回传输邮件或文件。

POP 代表邮局协议并且只允许您列出邮件、检索邮件和删除邮件。IMAPPOP 的增强版。它允许您轻松维护多个帐户,允许多人访问一个帐户,将邮件保留在服务器上,仅下载邮件头或邮件正文,不下载附件等等。IMAP 非常适合经常外出或有 серьезных 电子邮件需求的人。大多数发行版附带的默认 POPIMAP 服务器可以满足大多数需求。

IMAP client

这些安装说明假设

这些是所需的软件包,应该在此处可用

IMAP/POP 主页:http://www.washington.edu/imap/
IMAP/POP FTP 站点:140.142.3.227140.142.4.227
您必须确保下载:imap.tar.Z

Note: 这些是您必须记住的一些先决条件,sendmail 服务器应该已经安装在您的系统上,才能使用 IMAP & POP 软件。有关所需软件的更多信息,请参阅本书中的相关章节。

您需要解压缩 tarball 才能编译,因此最好在安装 Imap 之前和之后分别列出系统上的文件列表,然后使用 diff 命令比较它们,以找出它将文件放置在何处。只需运行 find/* > Imap1之前和 find/* > Imap2在安装软件之后,并使用 diffImap1 Imap2 > Imap-Installed来获取已更改内容的列表。

在编译之前,您需要解压缩 tarball (tar.Z)。
         [root@deep] /# cp imap.tar.Z /var/tmp
         [root@deep] /# cd /var/tmp
         [root@deep ]/tmp# tar xzpf imap.tar.Z
         

在编译之前进行优化,移动到新的 IMAP/POP 目录并编辑Makefile文件 visrc/osdep/unix/Makefile并更改这些行

  1.          sh -c '(test -f /usr/include/sys/statvfs.h -a $(OS) != sc5 -a $(OS) != sco) && $(LN) flocksun.c flockbsd.c || $(LN) flocksv4.c flockbsd.c'
             
    改为读取
             sh -c '(test -f /usr/include/sys/statvfs.h -a $(OS) != sc5 -a $(OS) != sco -a $(OS) != lnx) && $(LN) flocksun.c flockbsd.c || $(LN) flocksv4.c flockbsd.c'
             
    此修改将更改sys/stavfs文件。这个文件,使用 Linux 的新 glibc 2.1,与 Sun 上可用的文件不同。

  2.          BASECFLAGS="-g -fno-omit-frame-pointer -O6 -DNFSKLUDGE" \
             
    改为读取
             BASECFLAGS="-g -fno-omit-frame-pointer -O9 -funroll-loops -ffast-math -malign-double -mcpu=pentiumpro -march=pentiumpro -fomit-frame-pointer -fno-exceptions -DNFSKLUDGE" \
             
    这些是我们用于编译服务器上 IMAP/POP 软件的优化标志。

  3.          ACTIVEFILE=/usr/lib/news/active
             
    改为读取
             ACTIVEFILE=/var/lib/news/active
             
             SPOOLDIR=/usr/spool
             
    改为读取
             SPOOLDIR=/var/spool
             
             RSHPATH=/usr/ucb/rsh
             
    改为读取
             RSHPATH=/usr/bin/rsh
             
             LOCKPGM=/etc/mlock
             
    改为读取
             #LOCKPGM=/etc/mlock
             
    TheACTIVEFILE=行指定了 IMAP/POPactive目录的路径,SPOOLDIR=是我们放置 Linux IMAP/POPspool目录的位置,以及RSHPATH=指定了我们系统上rsh目录的路径。重要的是要注意,我们不在服务器上使用 rsh 服务,但即便如此,我们也要指定正确的目录以rsh.

  4.          CC=cc
             
    改为读取
             CC=egcs
             
    此行代表我们将用于编译 IMAP/POP 软件的 GCC 编译器的名称,在我们的例子中是 egcs)。

现在,我们必须编译并 install IMAP & POP 到邮件服务器上
         [root@deep ]/imap-4.7c# make lnp
         [root@deep ]/imap-4.7c# install -m 644 ./src/ipopd/ipopd.8c /usr/man/man8/ipopd.8c
         [root@deep ]/imap-4.7c# install -m 644 ./src/imapd/imapd.8c /usr/man/man8/imapd.8c
         [root@deep ]/imap-4.7c# install -s -m 755 ./ipopd/ipop2d /usr/sbin
         [root@deep ]/imap-4.7c# install -s -m 755 ./ipopd/ipop3d /usr/sbin
         [root@deep ]/imap-4.7c# install -s -m 755 ./imapd/imapd /usr/sbin
         [root@deep ]/imap-4.7c# install -m 644 ./c-client/c-client.a /usr/lib
         [root@deep ]/imap-4.7c# ln -fs /usr/lib/c-client.a /usr/lib/libimap.a
         [root@deep ]/imap-4.7c# mkdir -p /usr/include/imap
         [root@deep ]/imap-4.7c# install -m 644 ./c-client/*.h /usr/include/imap
         [root@deep ]/imap-4.7c# install -m 644 ./src/osdep/tops-20/shortsym.h /usr/include/imap
         [root@deep ]/imap-4.7c# chown root.mail /usr/sbin/ipop2d
         [root@deep ]/imap-4.7c# chown root.mail /usr/sbin/ipop3d
         [root@deep ]/imap-4.7c# chown root.mail /usr/sbin/imapd
         

以上命令将配置软件以确保您的系统具有成功编译软件包所需的必要功能和库,将所有源文件编译为可执行二进制文件,然后将二进制文件和任何支持文件 install 到适当的位置。

Important: 出于安全原因,如果您仅使用 imapd 服务,请从您的邮件服务器中删除 ipop2d 和 ipop3d 二进制文件。ipopd 也适用;如果您仅使用 ipopd 服务,请从您的邮件服务器中删除 imapd 二进制文件。如果您打算使用 imapd 和 ipopd 服务,请保留这两个二进制文件。

请稍后进行清理
         [root@deep] /# cd /var/tmp
         [root@deep ]/tmp# rm -rf imap-version/ imap.tar.Z
         
上面使用的 rm 命令将删除我们用于编译和安装 IMAP/POP 的所有源文件。它还将从/var/tmp目录中删除 IMAP/POP 压缩包。