You are on page 1of 6

1. 認識 qmail........................................................................................................................................................

1
2. 系統環境設定..................................................................................................................................................1
3. 下載 qmail 相關套件.......................................................................................................................................2
4. 編譯及安裝 qmail............................................................................................................................................2
5. vpopmail 安裝及虛擬主機、帳號設定..........................................................................................................4
5. qmail / vpopmail 設定及問題與解答..............................................................................................................5
6. Url Links 網路連結..........................................................................................................................................5

1. 認識 qmail

 此參考文件是一份快速學習 qmail 郵件管理系統之基礎參考資料。 本文最主要的目的在於 RedHat


系統上的 qmail 安裝及虛擬郵件主機之應用,建議學員具備良好的 Linux 基本系統架設基礎後再進
一步學習此文件上之資料。 有關更詳細的 qmail 介紹請參考 Internet Links 網路連結的參考網站。

DNS 網域名稱服務(Domain Name Service)是一項為機器命名的規則以及將這些名稱轉換為 IP 數字的


服務(daemon)。 簡單來說 DNS 就是將 IP 與電腦/網域名稱做一個連結。 本文件需要用戶先將 DNS 之
mx (Mail eXchange) 紀錄先設定完成才能進行收信之動作。

Sendmail 是許多 Unix 系統的預設郵件服務也是史上最老的郵件服務之一。 現今的 sendmail 8.11 版本


已經發展唯一套較易維護且安全的管理機制。 但相較於 qmail 的先進管理方式及大量郵件處理機制而
言還是略遜一籌。 由於 qmail 採用獨立檔案來存取每一筆郵件使得大型郵件系統的收信速度大大改善。
而在系統安全上 qmail 可設定一般 pop3 用戶使用非系統用戶之帳號及密碼檔,加強了系統的安全性。
本講義將會帶領您進行 qmail 的安裝步驟與 vpopmail 虛擬主機帳號管理並深入瞭解許多實際的範例及
問題與解答(FAQ)。

2. 系統環境設定

本文將以 RedHat 8.0 預設的系統環境為主。 由於 RedHat 已經有預設的 Sendmail 服務所有為了避免衝


突等問題的發生,因此必需要將 sendmail 移除再進行 qmail 安裝。
1. 首先檢查 sendmail 是否正在執行中

[denny@server]# telnet localhost 25


Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 server ESMTP Sendmail 8.9.3/8.9.3; Tue, 30 Jan 2001 06:39:12 +0800
quit
221 server closing connection
Connection closed by foreign host.

1
2. 停用 sendmail: /etc/rc.d/init.d/sendmail stop
3. 再次的用 ps –aux |grep sendmail 來檢查 如果還有執行中的程序請用 killall sendmail 移除。
4. 移除 RPM 套件 sendmail :
rpm –e sendmail

3. 下載 qmail 相關套件

主程式 http://cr.yp.to/software/qmail-1.03.tar.gz
qmail
TCPServer TCP 協定服務, inetd 的修正版 http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
Daemon Tools 服務監控工具 http://cr.yp.to/daemontools/daemontools-0.70.tar.gz
vpopmail 虛擬 POP3 郵件主機服務 http://www.inter7.com/vpopmail/vpopmail-5.2.1.tar.gz

4. 編譯及安裝 qmail

首先建立 qmail 所需要的帳號及群組資料


mkdir /var/qmail
mkdir /var/qmail/alias
groupadd nofiles
useradd -g nofiles -d /var/qmail/alias alias
useradd -g nofiles -d /var/qmail qmaild
useradd -g nofiles -d /var/qmail qmaill
useradd -g nofiles -d /var/qmail qmailp
groupadd qmail
useradd -g qmail -d /var/qmail qmailq
useradd -g qmail -d /var/qmail qmailr
useradd -g qmail -d /var/qmail qmails

編譯、安裝 qmail 1.0.3


tar xzvf qmail-1.03.tar.gz
cd qmail-1.03
make setup check
./config
 建立基本帳號別名檔
cd /var/qmail/alias
echo johndoe > .qmail-root
echo johndoe > .qmail-postmaster

2
echo johndoe > .qmail-mailer-daemon
 設定現有用戶及未來新用戶(/etc/skel) 之 qmail Maildir 及 .qmail 檔案
 將系統目前使用者改為由 Maildir 來收信,執行 maildirmake 指令:
/var/qmail/bin/maildirmake $HOME/Maildir
 建立 .qmail 檔案
echo "./Maildir/" > ~/.qmail
 建立新用戶之預設目錄
/var/qmail/bin/maildirmake /etc/skel/Maildir
echo "./Maildir/" > /etc/skel/.qmail
 修改 /etc/profile 內的預設郵件暫存區
MAIL="/var/spool/mail/$USER"
改為
MAIL="~/Maildir"

 再次檢查 sendmail 並建立新 qmail 的 sendmail 連接檔 symbolic link


killall sendmail
mv /usr/lib/sendmail /usr/lib/sendmail.old
mv /usr/sbin/sendmail /usr/sbin/sendmail.old
ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

編譯、安裝 TCP Server / Client


tar xzvf ucspi-tcp-0.88.tar.gz
cd ucspi-tcp-0.88
make
make setup check

編譯、安裝 Daemon Tools


tar xzvf daemontools-0.70.tar.gz
cd daemontools-0.70
make
make setup check

建立記錄檔目錄及權限設定
mkdir /var/log/qmail
mkdir /var/log/qmail/qmail-smtpd
mkdir /var/log/qmail/qmail-pop3d
chmod –R 2700 /var/log/qmail
chown -R qmaill /var/log/qmail

3
啟動 qmail 服務
# 從 boot 開機檔中選擇 home 來做為 qmail 的 RC (Run Command)
cp /var/qmail/boot/home /var/qmail/rc
# 以 csh shell 背景方式來啟動 qmail
csh -cf '/var/qmail/rc &'

Qmail rc 啟動檔內容
#!/bin/sh
# Using splogger to send the log through syslog.
# Using qmail-local to deliver messages to ~/Mailbox by default.
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ./Mailbox splogger qmail

加入 vpopmail qmail-pop3d and vchkpw  後的 RC


#!/bin/sh
Exec env - PATH="/var/qmail/bin:/usr/local/bin:$PATH" \
tcpserver -H -R 0 pop-3 \
/var/qmail/bin/qmail-popup mail.abc.com \
/home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir &

5. vpopmail 安裝及虛擬主機、帳號設定

# 建立群組 vchkpw 及使用者 vpopmail


# 完成後 vpopmail 將會建立所有 vpopmail 管理指令及相關檔案在 /home/vpopmail 目錄
groupadd -g 89 vchkpw
useradd -g vchkpw -u 89 vpopmail

# 編譯及安裝 vpopmail
# 參數說明:
# 啟用外部用戶收發信件功能 --enable-roaming-users=y
# 啟用 mysql 資料庫功能 --enable-mysql=y
# ./configure --enable-roaming-users=y
# make
# make install-strip

# 增加新郵件虛擬主機
vadddomain abc.com password123
# 移除郵件虛擬主機

4
vdeldomain abc.com
# 新增加郵件虛擬主機用戶
vadduser peter@abc.com
# 移除郵件虛擬主機用戶
vdeluser peter@abc.com
# 修改用戶密碼
vpasswd peter@abc.com password123
# 查看用戶密碼及資料
vuserinfo peter@abc.com

# 當用戶使用 outlook pop3 帳號連線時請切記要把登入帳號輸入全名,例如: peter@abc.com

5. qmail / vpopmail 設定及問題與解答

Q: 請問如何發信給所有使用者呢?
Answer:
請使用 vpopbull 程式來發信, 例如: vpopbull –f 信件名稱 abc.com vhost.com.tw

Q: 請問如何將 vpopmail 移除
Answer:
1. 將使用者 vpopmail 及群組 vchkpw 移除
2. 將 /var/qmail/control/(virt*, rcpt*, more*) 移除
3. 將 /var/qmail/control/locals 覆蓋到 /var/qmail/control/rcpthosts
4. 把所有虛擬帳號移除 rm –rf /var/qmail/users*
5. 移除 /home/vpopmail/etc/tcp.smtp*

Q: 請問如何將某個網域(abc.com)的錯誤郵件指定給管理員?

Answer:
請將 /home/vpopmail/domain/abc.com/.qmail-default 檔案的 bounce-no-mailbox 改為 admin@abc.com 即可。

6. Url Links 網路連結

http://www.ibiblio.org/pub/Linux/docs/HOWTO/ Linux HOWTO 的英文站台


http://www.qmail.org qmail 英文站台
http://www.inter7.com/vpopmail inter7 vpopmail
http://www.linux.org.tw/CLDP/DNS-HOWTO-2.html 中文 Howto 資料

5
http://rpmfind.net RPM 的檔案搜詢站

You might also like