第十二章 郵件伺服器

12.1 概論

這一章我們將介紹使用 FreeBSD 來作為 Mail Server。當我們在寄信時,所使用的是 SMTP (Simple Mail Transfer Protocol) 通訊協定,一般常用的 SMTP 軟體為 FreeBSD 內附的 Sendmail、Qmail、或 Postfix。而收信時,可以使用 POP3 (Post Office Protocol) 或是 IMAP (Internet Message Access Protocol) 協定。FreeBSD 並未內建任何 POP3 及 IMAP 軟體,因此我們必須自行安裝。然而做為一台 Mail Server,我們要設定的是最少要做到可以正常使用 POP3 及 SMTP 來讓使用者收發信。另外,我們也將介紹使用 Web 介面的郵件收發軟體,Web 介面的郵件收發軟體可以讓使用者不必使用 Outlook 等軟體即可經由任何作業系統的瀏覽器輕鬆收發信件。

傳統上,SMTP 在接受使用者寄信時,並不須經過身份認証,任何人都可以使用你的主機來製造垃圾信。因此 FreeBSD 內建的 Sendmail 是不接受 SMTP 寄信的。而一般的 ISP 業者大多是以控制連線來源的方式,禁止非允許網域的使用者 RELAY。但如果我們以控制連線來源的方式,便無法在其他非允許的IP位址使用SMTP,這對於想要任何地方都可以發信的人十分不分便。因此,本章裡我們將介紹如何讓使用者透過 FreeBSD 使用 SMTP 身份認證的功能來寄信,讓要使用諸如 Outlook 以 SMTP 寄信的使用者必須先通過本機的身份認證。

所以我們這裡要做的就是設定 sendmail 成為可以使用 SMTP 來寄信,但又可以兼顧避免成為垃圾中繼站。再來是安裝 POP3 及 IMAP 軟體,設使用者可以經由 FreeBSD 伺服器來收信。

12.2 具身份認證的 sendmail

本文參考自中央研究院計算機中心張毓麟先生所發表的「具身分認證的郵件傳送系統」,該文件的網址是 http://beta.wsl.sinica.edu.tw/~ylchang/Email/sendmail-auth。張先生對於在 FreeBSD 系統上建立安全的郵件伺服器有多篇文章,您可以自 http://beta.wsl.sinica.edu.tw/~ylchang/Email/index.html 取得更多內容。

由於本章有許多指令,為了避免打字錯誤造成安裝失敗,筆者將這些安裝過程寫成一個快速安裝的程式,您可以自本書光碟二中取出安裝。安裝方式如下:

# mount /cdrom
# cp -R /cdrom/ports/distfiles/mailserver /tmp/
# cd /tmp/mailserver
# sh mailserver.sh

接著依照畫面指示即可快速安裝本章具身份認證的 sendmail 了。安裝完成之後,您可以使用下列指令以啟動 sendmail:

# /usr/local/etc/rc.d/saslauthd.sh
# /usr/sbin/sendmail -bd -q30m

如果您希望自行一步步操作,請依下列各小節的說明來安裝,但請特別注意一些標點符號的差異,例如 ` (位於鍵盤左上角) 及 ' (位於鍵盤右邊) 等符號。

12.2.1 安裝 Cyrus SASL

SASL (Simple Authentication and Security Layer) 可以讓一些通訊協定 (例如 SMTP、IMAP 等) 具有身份認證的功能。Sendmail 自從 8.10 就支援 SASL 的功能。目前 cyrus-sasl 版本是 cyrus-sasl-2.1.18.tar.gz,我們可以 ftp 到各大 FTP 站台的 distfiles 目錄下去取得最新版的 cyrus-sasl或從本書光碟中取得。取回後以下列指令安裝。

# tar zxf cyrus-sasl-2.1.18.tar.gz
# cd cyrus-sasl-2.1.18
# ./configure --enable-login --enable-plain
# make
# make install
# cd /usr/lib
# ln -s /usr/local/lib/sasl2 .
# ln -s /usr/local/lib/sasl2 sasl
# ln -s /usr/local/lib/libsasl* .
# echo "pwcheck_method: saslauthd " > /usr/lib/sasl2/Sendmail.conf

接著我們要在一開機時就執行 saslauthd 這支認證用的程式,請新增檔名為 /usr/local/etc/rc.d/saslauthd.sh 的執行檔,內容如下:

#!/bin/sh
/usr/local/sbin/saslauthd -a pam

然後將該檔案屬性變為可執行,並建立一個 saslauthd 所需使用的工作目錄:

# chmod 755 /usr/local/etc/rc.d/saslauthd.sh
# mkdir -p /var/state/saslauthd

12.2.2 安裝 Sendmail

在安裝 Sendmail 之前,如果系統中正在執行舊版的 Sendmail,請先使用以下指令將它停掉:

# kill -9 `cat /var/run/sendmail.pid|head -1`

接著請到 www.sendmail.org 去下載最新版的 sendmail,您也可以在光碟二的 /ports/distfiles 目錄中找到 Sendmail 8.12.11。Sendmail 自 8.12.0 版起,需要先建立一個使用者smmsp及所屬群組供 Sendmail 使用。而 FreeBSD 自從 4.5-RELEASE 起己經內建了該使用者,如果你使用的是 4.5-RELEASE 以前的版本,請先編輯 /etc/group 加入下面一行:

smmsp:*:25:

再來增加使用者,執行 vipw 並增加下面一行:

smmsp:*:25:25::0:0:Sendmail user:/var/spool/clientmqueue:/sbin/nologin

將抓回來的 sendmail.8.12.11.tar.gz 放到 /tmp 底下,並以下列指令解壓縮:

# tar zxvf sendmail.8.12.11.tar.gz

接著 ee /tmp/sendmail-8.12.11/devtools/Site/site.config.m4 建立檔案並加入下列內容:

PREPENDDEF(`confENVDEF', `-DMAP_REGEX')
PREPENDDEF(`confOPTIMIZE', `-O2')
APPENDDEF(`confENVDEF', `-DTCPWRAPPERS -DSASL=2')
APPENDDEF(`conf_sendmail_LIBS', `-lwrap -lsasl2')
APPENDDEF(`confLIBDIRS', `-L/usr/local/lib')
APPENDDEF(`confINCDIRS', `-I/usr/local/include')
APPENDDEF(`confENVDEF', `-DMILTER')

由於上述檔案內容中,有很多特殊的符號,為了避免打錯字,建議您直接使用本書所附第二片光碟中的 /examples/site.config.m4 。完成後就可以開始安裝 Sendmail 了:

# cd /tmp/sendmail-8.12.11
# sh Build
# sh Build install

為了要讓本地的使用者不必經由身份認證使用 SMTP,還須再做下列設定:

# cd /tmp/sendmail-8.12.11/obj*
# cd mail.local
# make force-install
# chown root /usr/libexec/mail.local
# chmod u+s /usr/libexec/mail.local

接下來編輯 sendmail 設定範本檔案以便產生出具有身分認證功能的 sendmail.cf 設定檔,請以下列指令執行:

# cd /tmp/sendmail-8.12.11/cf/cf
# cp generic-bsd4.4.mc MYCF.mc
# cd ../feature
# cat access_db.m4 >> ../cf/MYCF.mc
# cat delay_checks.m4 >> ../cf/MYCF.mc
# cat virtusertable.m4 >> ../cf/MYCF.mc
# cd ../cf
# cat >> MYCF.mc
TRUST_AUTH_MECH(`LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `LOGIN PLAIN')dnl
^D(同時按Ctrl+D)

上述要增加到 MYCF.mc 的二行字串,您一樣可以在本書所附第二片光碟中的 /examples/ 目錄中找到 MYCF.mc.append 。為了避免打字錯誤,您可以使用下列指令來將上述二行附加在 MYCF.mc 中:

# mount /cdrom
# cat /cdrom/example/MYCF.mc.append >> MYCF.mc

接著我們要建立 sendmail.cf

# sh Build MYCF.cf
# cp MYCF.cf /etc/mail/sendmail.cf

接下來請編輯 /etc/mail/access 這個檔案,我們可以在 access 指定哪些 IP 或 domain 來源的機器是否可以經由我們的伺服器寄信。如果您希望自己內部網域的機器可以不必使用身份認証,你可以在這個檔案中加入內部網域的 IP。

127.0.0.1	     RELAY
192.168.0.1	RELAY
# 內部網路不需要認証
192.168.0	    RELAY

接著請產生二個 sendmail 所需要的檔案:

# touch virtusertable
# touch aliases

然後請編輯 /etc/mail 下的檔案,新增一個名為 local-host-names 的檔案, 裡面填入 localhost 以及機器的完整名字 (如 mail.abc.com),當收到信的收件者不是給 mail.abc.com 時便會拒絕。接著,再新增一個檔名為 relay-domains 的檔案填入本地的 domainname,例如 mydomain.com,這樣一來由本地的 domain 發信時便不需再一次做使用者認證。然後將這些檔案做成 sendmail 能接受的 DB 格式:

# makemap hash access.db < access
# makemap hash virtusertable.db < virtusertable
# newaliases

安裝完後要把以下檔案權限改成這樣:

-r-xr-sr-x     root    smmsp    ...       /usr/sbin/sendmail
drwxrwx---     smmsp   smmsp    ...       /var/spool/clientmqueue
drwx------     root    wheel    ...       /var/spool/mqueue
-r--r--r--     root    wheel    ...       /etc/mail/sendmail.cf
-r--r--r--     root    wheel    ...       /etc/mail/submit.cf

請使用下列指令來修改上述檔案的權限:

# chown smmsp:smmsp /var/spool/clientmqueue
# chmod 770 /var/spool/clientmqueue
# chown root:wheel /var/spool/mqueue
# chmod 700 /var/spool/mqueue
# chown root:wheel /etc/mail/sendmail.cf
# chmod 444 /etc/mail/sendmail.cf
# chown root:wheel /etc/mail/submit.cf
# chmod 444 /etc/mail/submit.cf

這樣就完成了。您可以執行 sendmail -d0.1 -bv root | grep SASL 因該會出現 SASL 的字樣,表示己可認証。或者在啟動 Sendmail 之後,執行 telnet localhost 25 ,再打ehlo localhost,我們應該看到一堆 250- 開頭的訊息,其中有一行 250-AUTH LOGIN PLAIN 就代表 Sendmail 己經具有身份認證的功能,此時請輸入 quit 結束。萬一沒有出現,請閱讀 /var/log/maillog 裡面的訊息可以知道錯在哪裡。

最後,我們可以使用下列指令來啟動認證所需的程式及 Sendmail:

# /usr/local/etc/rc.d/saslauthd.sh
# /usr/sbin/sendmail -bd -q30m

如果我們希望在一開機便啟動 Sendmail,請在 /etc/rc.conf 中加入下面這一行:

sendmail_enable="YES"

12.2.3 Client 端的設定

微軟的 outlook 由 4.0 版開始支援發信時身分認證功能,只要在 outlook 的設定裡面將『外寄郵件伺服器需要查驗身分』的選項打勾就可以了。

第一步驟,選取『工具』功能表的『帳號』選項:

圖 12-1

第二步驟,選取帳號選單中的『內容』按鈕:

圖 12-2

步驟三,將『外寄郵件伺服器需要查驗身分』功能項打勾:

圖 12-3

按確定鈕回到 outlook 中,即可使用身分認證功能發信。

12.3 POP3 及 IMAP 設定

傳統上使用 Outlook 等收信軟體時,我們會使用 POP3 來下載伺服器上的信件。使用者有新的信件時,該信件會存放於 /var/mail/username 中,這個檔案我們稱之為 inbox。當我們使用 POP3 收信軟體下載信件時,在下載完畢後,除非我們有設定在伺服器上保留原本的信件,否則預設會在下載後自動將該信件自伺服器中移除,以節省空間。

然而,如果您平常使用多台電腦,或是想在不同的地方依然可以看到之前的信件,則 POP3 就不太符合需求。除了 POP3 外,還有一個郵件通訊協定名為 IMAP。IMAP 和 POP3 最主要的差異在於 IMAP 一開始只下載信件標題,直到點選該信件後,它才會將信件下載至您所使用的電腦中。而在下載之後,IMAP 並不會將伺服器上的郵件刪除,所有瀏覽過的信件依然保存於 /var/mail/username 中。隨著信件越來越多,inbox 的資料也會越來越大。此時我們可以使用 IMAP 建立新信夾的功能,在使用者家目錄中建立許多新的資料夾,並將 inbox 的信件移至新建立的資料夾中,以減少 inbox 的大小,並加快收信的速度。而且,當我們寄出新信件時,若使用 POP3 協定,則寄件備份只會存放於您寄信時所使用的電腦中,但 IMAP 則會將寄件備份存於於伺服器中。因此,如果您常使用多台不同的電腦收信,使用 IMAP 會蠻方便的,但 IMAP 在使用上速度會比 POP3 慢。

本章中,我們將介紹二種不同的 POP3 及 IMAP 收信軟體,您可以依自己的需求安裝合適的軟體。

12.3.1 簡單的 POP3 伺服器

POP3 的設定很簡單,我們只要選一個喜歡的 pop3 軟體,以 ports 安裝完後再做一些設定就好了。在這裡我選用 popa3d:

# cd /usr/ports/mail/popa3d
# # make install clean

接著編輯 /etc/inetd.conf,找到 pop3 的部份,將開頭的 # 拿掉後,並加以修改如下:

#
# example entry for the optional pop3 server
#
pop3    stream  tcp     nowait  root    /usr/local/libexec/popa3d       popa3d

接著重新跑 inetd 即可:

# kill -HUP `cat /var/run/inetd.pid`

12.3.2 加密的 POP3 及 IMAP

在 FreeBSD ports 中,收錄了許多 IMAP 及 POP3 的軟體,我們選擇了 IMAP-UW 這套軟體來安裝。IMAP-UW 不僅支援 IMAP 及 POP3,我們也可以設定要求使用加密過的 POP3 及 IMAP-UW 以加強密碼及信件傳送的安全性。首先,請使用下列指令安裝 IMAP-UW:

# cd /usr/ports/mail/imap-uw
# make WITH_SSL_AND_PLAINTEXT=yes install

接下來,我們要產生 IMAP 及 POP3 所需使用的 SSL 憑證:

# cd /usr/ports/mail/imap-uw
# make cert

接著螢幕會出現一些問題,請依序回答:

輸入國家代碼,例如 TW。
Country Name (2 letter code) [NO]:TW
輸入所在省份,例如 Taiwan。
State or Province Name (full name) [Some-State]:Taiwan
輸入所在城市,例如 Taipei。
Locality Name (eg, city) []:Taipei
輸入您的組織名稱,你可以輸入公司或學校名稱,或直接按 Enter 即可。
Organization Name (eg, company) [FooBar Inc.]:My Company
輸入單位名稱,可以直接按 Enter 跳過。
Organizational Unit Name (eg, section) []:
輸入您的機器完整名稱,也就是您在 Outlook 等收信軟體中所設定的伺服器名稱。
Common Name (FQDN of your server) []:mydomain.com

接下來我們必須設定一下 /etc/inetd.conf,並加入 POP3 及 IMAP 的相關設定:

pop3	stream	tcp	nowait	root	/usr/local/libexec/ipop3d	ipop3d
imap4	stream	tcp	nowait	root	/usr/local/libexec/imapd	imapd
pop3s	stream	tcp	nowait	root	/usr/local/libexec/ipop3d	ipop3d
imaps	stream	tcp	nowait	root	/usr/local/libexec/imapd	imapd

若您在開機時並未執行 inetd,請在 /etc/rc.conf 中加入下列設定:

inetd_enable="YES"

若您已啟動 inetd,則設定完 inetd.conf 之後,我們必須重新啟動 inetd:

# kill -HUP `cat /var/run/inetd.pid`

現在我們就可以設定使用 Outlook 來收發。如果您想使用加密的 IMAP 或 POP3 連線,您可以在設定完新的郵件帳號後,點選內容,並選取 [進階] 的部份,將 [這個伺服器需要安全連線] 打勾,即可設 IMAP 或 POP3 收信時使用加密的連線。

圖 12-4

12.4 虛擬郵件主機

如果我們想要在同一台機器上收多台主機的信件,或者想要在一台主機上設定可以 "收" "發" 信件的虛擬帳號 (如果只要收,可以簡單的設定 aliases 即可),我們可以經由虛擬主機的設定來 達成。假設有二個 Domain Name,一個是 abc.com,另一個是 old.cde.com。這份文件包含了二種設定方式:一個是讓二個 domain name 收到的信對映到一台機器上的使用者,也就是說不能有不存在的虛擬使用者;另一個設定是讓你可以設定不同的虛擬使用者對映到不同機器上的任何使用者。不管我們要做哪一種設定,都必需要先設定 DNS。
請注意,這份文件中的設定並不會讓你可以擁有一個真正的虛擬帳號,因為這裡是將虛擬帳號對映到一個存在的郵件位址。使用這份文件的設定和設定 /etc/aliases 最大的不同在於設定 aliases 只能讓虛擬的帳號收信,而無法寄信。

12.4.1 DNS 設定

為了要讓寄出去的信知道要往哪一台主機上送,必須要先設定 DNS。假設我們現在已經有一台設定好 DNS 的主機,hostname 是 abc.com。我們要讓 abc.com 處理 old.cde.com 的信件的話,最簡單的方式就是將 mail.cde.com 指向 abc.com (CNAME records),也就是二個 doamin 有同樣的 IP。不過這樣一來,old.cde.com 就不能獨立存在了,也就是說不會有一台機器的 hostname 名為 old.cde.com,並提供 FTP、www(也可以有虛擬主機)、telnet等服務。

因此,我們要使用的是改變 DNS 的 MX record。設定只有處理該主機的郵件時,才將 old.cde.com 轉向 abc.com。請在你的 DNS 中加入下列設定:

old.cde.com        IN  MX  10    abc.com.

完成後要重新讀設定檔並等一段時間設定才會在網路上生效。接著我們就可以來做 sendmail 的設定了。

12.4.2 對映到同一台機器的真實使用者

第一種設定的使用時機,例如你的公司主機原來是 mail.cde.com,現在換成了 abc.com,你希望讓原本的使用者 jack@mail.cde.com 和新的 jack@abc.com 都能由 jack@abc.com 來收信。這種設定很簡單,只要編輯 /etc/mail/relay-domains/etc/mail/local-host-names 這二個檔案,加入要增加收信的主機名稱即可。以本例而言,除了那二個檔案原本的內容外,要再增加一行:

mail.cde.com

這樣了不管是原本 mail.cde.com 或是真正主機名稱 abc.com 的信件,都可以由 abc.com 的相同的使用者收信。

12.4.3 可以擁有虛擬使用者

第二種設定是讓我們可以設定一個虛擬的帳號,並且可以利用它來送信。這個設定是經由編輯 /etc/mail/virtusertable 來達成。相同的,我們在 abc.com 這台主機中設定它的 virtusertable。我們以下列二個 virtusertable 的例子來說明,請注意,二個欄位間的空白是用 tab 鍵,而非使用空白鍵:

範例一:

joe@mail.cde.com		jschmoe
jane@mail.cde.com		jdoe@othercompany.com
@mail.cde.com		jschmoe

上面的例子中,凡是寄給 joe@mail.cde.com 的信都會送給本地使用者 jschmoe。而以 joe@mail.cde.com 寄出的信收件人所看到的寄件人一樣是 joe@mail.cde.com,如果在寄信時要身份認證的話,必須使用 jschmoe 的帳號及其密碼。接下來,寄給 jane@mail.cde.com 的信會送給 jdoe@othercompany.com,剩下來所有給 mail.cde.com 的信都會送給本地 jschmoe 這個使用者。

範例二:

joe@mail.cde.com		jschmoe
bogus@mail.cde.com		error:nouser No such user here
list@mail.cde.com		yourdomain-list
@mail.cde.com		%1@othercompany.com

這一個例子中,第一行和範例一一樣,凡是寄給 joe@mail.cde.com 的信都會送給本地使用者 jschmoe。而凡是寄給 bogus@mail.cde.com 都會回應沒有這個使用者。第三行如果是寄給 list@mail.cde.com 的信,都會轉給本地的 yourdomain-list 這個虛擬使用者,你可以在 /etc/aliases 中加入關於 yourdomain-list 這個使用者的信要怎麼處理,怎麼設定別名。最後一行,凡是其他非上述三行使用者的信,都交由在 othercompany.com 這台機器上相對映的使用者來處理。

你可以依照上面的範例來編輯你的 virtusertable,完成編輯後,必須要使用以下指令來將這些檔案做成 sendmail 能接受的 DB 格式:

# makemap hash virtusertable.db < virtusertable
# newaliases

都完成後,我們就可以到別台機器使用虛擬帳號來試試收發信。假設我們要使用的虛擬帳號是上述範例一中的第二行 jane@mail.cde.com,以 outlook 中的設定為例,所設定的 E-mail 仍然是 jane@mail.cde.com,如圖 12-5 所示:

圖 12-5

所設定的 pop3 及 smtp 主機也是 mail.cde.com。但是使用者及密碼是 othercompany.com 上的使用者 jdoe 及其密碼,如圖 12-6 所示:

圖12-6

在上圖中,如果 othercompany.com 在寄信時要身份認証,則上圖中 "外寄郵件伺服器" 的選項 "我的伺服器需要驗證"必須打勾。
如此一來您就可以使用 jane@mail.cde.com 來收發信,而且在別人收到信時會顯示寄件人是 jane@mail.cde.com

12.5 Open WebMail

Open WebMail 是一套由國人開發的多國語 Web Base 的郵件軟體。 現在最新的 ports 中已經將 opebwebmail 加入了,位置在 /usr/ports/mail/openwebmail,加入的日期是 2002 年 2 月。如果你是使用 4.5-STABLE 以後的版本,就可以直接用 ports 來安裝了。不過 ports 預設的網頁目錄位於 /usr/local/htdocs 中,可能不符合我們的需求,因此我們還是使用自己編譯。

12.5.1 系統需求

你必須先安裝具有 CGI 功能的 Apache 伺服器,如果你是照本書的說明安裝,那麼你的伺服器就具有這項功能了,只要你有編輯 httpd.conf 將 CGI 的功能啟動。在開始安裝 Open Webmail 之前,我們必須先安裝下列套件。

為了要有檢查附加檔案的功能,還要安裝 MIME-Base64,我們可以使用下列指令安裝:

# cd /usr/ports/converters/p5-MIME-Base64
# make install clean

為了具有拼字檢查功能,必須安裝 ispell,請以 ports 安裝:

# cd /usr/ports/textproc/ispell
# make install clean

為了要讓 Open Webmail 可以有語言轉換的能力,我們必須安裝 perl 的 MD5 模組:

# cd /usr/ports/security/p5-MD5
# make install clean

為了要支援 MD5 加密,我們必須安裝Text-Iconvv:

# cd /usr/ports/converters/p5-Text-Iconv
# make install clean

另外,還要先安裝 libnet 這個模組:

# cd /usr/ports/net/p5-Net
# make install clean

您的 Apache 必須支援 CGI,請編輯 httpd.conf,找到關於你網頁根目錄設定的地方,並在 Options 選項中加入 ExecCGI:

<Directory "/home/www">
#
# This may also be "None", "All", or any combination of "Indexes",
# "Includes", "FollowSymLinks", "ExecCGI", or "MultiViews".
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
    Options Indexes FollowSymLinks MultiViews ExecCGI

接著請重新啟動 Apache 就做好事前的準備了。

12.5.2 安裝 Open Web Mail

您可以使用本書所附的 2.30 版或是到下列網址取得最新版的 Open Web Mail。

http://turtle.ee.ncku.edu.tw/openwebmail/download/

假設您網頁根目錄在 /home/www 中,而在 apache 中所設定的 cgi-bin 目錄是在 /home/www/cgi-bin 中。請將取得的檔案放到你的網頁根目錄去,並 cd 到你的網頁根目錄。執行下列指令以將取得的檔案解壓縮:

# tar -zxvBpf openwebmail-2.30.tgz

解壓縮後會在 cgi-bin 中產生一個目錄為 openwebmail, 存放 openwebmail 的主要程式;另外會產生一個 data 的目錄,在 data 目錄下也有一個 openwebmail 的目錄,該目錄存放 openwebmail 非 cgi 的資料(如圖片、聲音等)。我將 /home/www/data/openwebmail 的目錄搬到 /home/www/openwebmail。並將 cgi-bin 目錄下的 openwebmail 搬移到 /home/www/cgi-bin 目錄中。現在 openwebmail 的 cgi 程式位於 /home/www/cgi-bin/openwebmail 中,非 cgi 檔案位於 /home/www/openwebmail 中, 我們要記住的就是這二個目錄的位置以方便下列的設定。

最後要修改 /home/www/cgi-bin/openwebmail/etc/openwebmail.conf,更改你的參數設定,尤其是路徑。 基本上要修改的地方有:

# ow_cgidir : openwebmail cgi 程式的目錄
ow_cgidir /home/www/cgi-bin/openwebmail
# ow_cgiurl : 以 openwebmail 的 cgi 程式目錄所在的 url
ow_cgiurl /cgi-bin/openwebmail
# ow_htmldir : openwebmail 非 cgi 的目錄
ow_htmldir /home/www/openwebmail
# ow_htmlurl : 非 cgi 程式所在的 url
ow_htmlurl /openwebmail

我們接著要初始化 Open Webmail,請執行下列指令:

# /home/www/cgi-bin/openwebmail/openwebmail-tool.pl --init

您會被要求是否要送出系統資訊到 Open Webmail 的總部,如果您不想送出任何資料,只需按 N 即可。最後我們就可以使用 http://yourhost/cgi-bin/openwebmail/openwebmail.pl 來連到登入的首頁,請使用系統中的使用者帳號及密碼登入,登入後畫面如圖 12-7 所示。

圖 12-7