本文文件旨在提供在 Linux 系統中安裝 Cyrus IMAP 服務器的一些幫助. 1. 介紹: 感謝 Bob Anderson (
[email protected]) 和 Jorge Paramo (
[email protected]), 他們在我使用 linux 的歷程中給了我許多幫助. 什麼是 IMAP 以及為什麼要使用它? IMAP( 互聯網郵件訪問協議 ) 提供了一種訪問遠程服務器上的電子郵件或 BBS 郵件的方法. IMAP 普遍被認為是 POP ( 郵局協議 ) 郵件的替代者. IMAP 允許用戶從不同的機子上訪問他們的電子郵件而不用下載那些郵件. 這種郵件的訪問方式更加有效, 而且對終端用戶來說有更多的好處. 可以在下面的網址下找到更詳細的資料: [1]http://www.imap.org/whatisIMAP.Html IMAP 和 POP 的比較可參見: [2]http://www.imap.org/imap.vs.pop.brief.html 為什麼要用 Cyrus 服務器? Cyrus 被設計成在一台不允許一般用戶登錄的服務器上運行. Cyrus 也被認為是 Unix 上的兩個最普遍的 IMAP 服務器之一. 另一個是華盛頓大學的 IMAP 服務器. [3]FTP://ftp.cac.washington.edu/imap/imap.tar.Z 2. 我的系統之細節 我已經成功地在分別運行 Linux Kernel 2.1.79 和 2.0.33 的 486DX66 和 Pentium 兩台機子上安裝了 Cyrus 系統. 這兩台機器是基於 Slackware 3.4 的. 3. Tcl 的安裝 在安裝 Cyrus 之前先確認你已經在自己的機子上安裝了 Tcl, 否則你將無法使用 Cyrus Admin Tool (cyradm). 你可以在下面的網址找到最新 tcl 的資源: [4]ftp://ftp.sunlabs.com/pub/tcl/ 在安裝之後, 確認在目錄 /usr/local/lib/ 下存在 liBTcl.a 文件. Tcl 8.0 使用的是 libtcl8.0.a, 你應當用下面的命令為它建立一個軟連接: # ln -s libtcl8.0.a libtcl.a 4. makedepend 安裝 在你的系統中檢查是否有 makedepend 命令. 如果沒有也不用擔心, Cyrus 資源中就有. ( 在我安裝的 Slackware 3.4 中就沒有 makedepend 命令. ) 為了安裝 makedepend , 先解壓 Cyrus 的分發版, 然後進入 makedepend 目錄, 輸入下面的命令: ./configure make cp ./makedepend /usr/local/bin/makedepend 5. Cyrus 的安裝 請小心地按照 Cyrus 分發版中的注意事項進行安裝. 你可以在下面的網址中找到這些注意事項的一個拷貝: [5]http://andrew2.andrew.cmu.edu/cyrus/imapd/install.html 關於某些安裝步驟的一些提示: 如果你用的是 Slackware 3.4 ( 使用 影子口令 ), 你應當這樣配置 : ./configure --with-login=unix_pwcheck 並直接這樣 make 就可以: make depend make all CFLAGS=-O 第一步: 當加入 cyrus 用戶時, 我將用戶信息加鎖, 以最小化可能的安全漏洞. 第三步: 我不單單是拷貝一個 /etc/syslog.conf , 而且編輯它們. 第九步: 在 linux 下, 確認象下面那樣激活 pwcheck , 否則服務器便不會正確地工作: umask 0;/usr/cyrus/bin/pwcheck & umask 022 然後把下面的代碼加到激活腳本中: if [ -f /usr/cyrus/bin/pwcheck ]; then echo -n "Starting pwcheck for imap" umask 0;/usr/cyrus/bin/pwcheck & umask 022 fi 我將這些代碼加入到我的 /etc/rc.d/rc.local 中, 它們運行正常. 第十二步: 當編輯 /etc/inetd.conf 的時候, 記得將 TCP 包 包含進去,如下: imap stream tcp nowait cyrus /usr/sbin/tcpd /usr/cyrus/bin/imapd 還有當你編輯完成後, 不要忘了給 inetd 發送-HUP信號: # ps ax grep inetd 61 ? S 0:00 /usr/sbin/inetd # kill -HUP 61 6. Sendmail 的設定 如果你沒有 sendmail 的源碼, 現在就下載吧. 除了運行 IMAP 外, 你還可以用它來做許多有趣的事, 比如設置反垃圾郵件的特性等等. 下面是我的 mc 文件. 除非在 /etc/sendmail.cN 文件中有用戶名的入口, 否則它將把郵件轉移給 IMAP. 它允許像 root 那樣的系統用戶把他們的郵件保存在緩沖池裡; 然而, 一般的用戶賬號缺省地將使用 IMAP. 不要簡單的拷貝下面的代碼, 因為 sendmail 會因為用的是空格而不是制表符而出錯: divert(-1) # # (C) Copyright 1995 by Carnegie Mellon University # # All Rights Reserved # # Permission to use, copy, modify, and distribute this software and its # documentation for any purpose and without fee is hereby granted, # provided that the above copyright notice appear in all copies and that # both that copyright notice and this permission notice appear in # supporting documentation, and that the name of CMU not be # used in advertising or publicity pertaining to distribution of the # software without specific, written prior permission. # # CMU DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING # ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL # CMU BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR # ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, # WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, # ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS # SOFTWARE. # # Contributed to Berkeley by John Gardiner Myers . # # This sample mc file is for a site that uses the Cyrus IMAP server # exclusively for local mail. # divert(0)dnl VERSIONID(`@(#)cyrusproto.mc 8.3 (Carnegie Mellon) @(#)cyrusproto.mc 8.3) OSTYPE(linux) define(`confBIND_OPTS,`-DNSRCH -DEFNAMES) FEATURE(nouUCp) FEATURE(nocanonify) FEATURE(always_add_domain) MAILER(smtp) MAILER(local) MAILER(cyrus) define(`confLOCAL_MAILER,`cyrus) LOCAL_RULE_0 R$=N $: $#local $: $1 R$=N < @ $=w . > $: $#local $: $1 Rbb + $+ < @ $=w . > $#cyrusbb $: $1 LOCAL_CONFIG FN /etc/sendmail.cN # end of mc file 在生成 /etc/sendmail.cf 文件後, 創建一個叫 /etc/sendmail.cN 的文件, 將不打算用 IMAP 發送功能的用戶帳號寫入其中: root majordom stan mothra 在安裝完 Sendmail 8.8.8 之後我還安裝了 mail.local 作為給其它用戶賬號使用的本地發信程序. 下面是生成 mail.local 的訣竅. 先進入 sendmail 安裝點下的 mail.local 的目錄, 然後執行以下操作: cp Makefile Makefile.orig cp Makefile.dist Makefile make cp mail.local /bin/mail.local chmod 4555 /bin/mail.local 執行完之後, 重啟 sendmail. 還有不要忘了關掉 Cyrus 安裝指南. 7. 設置信箱 確認要按照 IMAP 服務器的測試進行, 如果一切順利, 就繼續設置其它一些信箱. 8. 不承諾 不作任何擔保, 也沒有金錢回報, 請自己承擔使用的風險. 9. 資源 必要的安裝包. Cyrus 的主頁: [6]http://andrew2.andrew.cmu.edu/cyrus/imapd/ 最新的 Cyrus 版本可以從下面的地點下載: [7]ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/ Tcl 的主頁: [8]http://sunscript.sun.com/ 最新的 Tcl 資源可以從下面的地點下載: [9]ftp://ftp.sunlabs.com/pub/tcl/ Sendmail 的主頁: [10]http://www.sendmail.org/ 最新的 Sendmail 版本可以從下面的地點下載: [11]ftp://ftp.sendmail.org/ucb/src/sendmail/ 參考資料: 1. http://www.imap.org/whatisIMAP.html 2. http://www.imap.org/imap.vs.pop.brief.html 3. ftp://ftp.cac.washington.edu/imap/imap.tar.Z 4. ftp://ftp.sunlabs.com/pub/tcl/ 5. http://andrew2.andrew.cmu.edu/cyrus/imapd/install.html 6. http://andrew2.andrew.cmu.edu/cyrus/imapd/ 7. ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/ 8. http://sunscript.sun.com/ 9. ftp://ftp.sunlabs.com/pub/tcl/ 10. http://www.sendmail.org/ 11. ftp://ftp.sendmail.org/ucb/src/sendmail/