安裝環境: 軟件:紅旗Linux桌面版2.0、 網絡設置: 主機基本信息 主機名(hostname+domain):localhost.localdomain 配置模式:DHCP 網絡設備:eth0 核心模塊:3c59x 要安裝qmail,首先,需要一個Linux環境(也可以為Unix環境),本部分內容都在紅旗Linux桌面版2.0環境下進行完整的測試;其次,需要一個DNS系統,配置qmail的主機必須具有一個DNS可解析的正式域名;第三,系統必須安裝編譯器gcc。
要完成安裝一個高效的qmail,需要下載以下這些軟件包:
qmail ftp://koobera.math.uic.edu/www/qmail.html
release-18.tar.gz http://em.ca/~bruceg/qmail+patches/
ucspi-tcp http://cr.yp.to/ucspi-tcp.html
daemontools http://cr.yp.to/daemontools.html
checkpassword http://pobox.com/~djb/checkpwd.html
解壓qmail包:
[root@localhost /tmp]# tar vzxf qmail-1.03.tar.gz
解開qmail包以後,在正式安裝以前應該首先閱讀qmail目錄下所有的INSTALL的文件和qmail的FAQ (www.qmail.org/qmail-manual-html/misc/FAQ.html)。
對qmail打補丁
release-18使一個很好的補丁包,裡面有若干針對Qmail的補丁。我們主要使用的是:qmail-1.03-big-dns.patches 這個補丁主要是處理有些DNS響應不完全遵從RFC標準,返回大於512字節的DNS應答包時可能出現的問題。補丁實施如下:
首先將這個補丁包解壓縮: [root@localhost /tmp]tar vzxf release-18.tar.gz 然後進入qmail解壓縮文件所在目錄 [root@localhost /tmp]cd qmail-1.03 開始打補丁 [root@localhost /tmp/qmail-1.03]# patch -p1 < /tmp/qmail-103-big-dns.patch
創建qmail主目錄及添加必須的系統用戶
由於qmail不是以root身份運行,而且qmail是同時由多個程序處理不同的工作,如接收郵件,發送郵件,本地投遞等等,所以需要多個用戶身份:
[root@localhost /tmp]# mkdir /var/qmail [root@localhost /tmp]# groupadd nofiles [root@localhost /tmp]# useradd -g nofiles -d /home/nofiles nofiles [root@localhost /tmp]# passwd nofiles [root@localhost /tmp]# useradd -g nofiles -d /home/qmaild qmaild [root@localhost /tmp]# passwd qmaild [root@localhost /tmp]# useradd -g nofiles -d /home/qmaill qmaill [root@localhost /tmp]# passwd qmaill [root@localhost /tmp]# useradd -g nofiles -d /home/qmailp qmailp [root@localhost /tmp]# passwd qmailp [root@localhost /tmp]# groupadd qmail [root@localhost /tmp]# useradd -g qmail -d /home/qmailq qmailq [root@localhost /tmp]# passwd qmailq [root@localhost /tmp]# useradd -g qmail -d /home/qmailr qmailr [root@localhost /tmp]# passwd qmailr [root@localhost /tmp]# useradd -g qmail -d /home/qmails qmails [root@localhost /tmp]# passwd qmails
編譯
[root@localhost /tmp/qmail-1.03]# make setup check
這個命令將會完成所有的編譯工作,生成所有的二進製程序,並將其拷貝到相應的目錄,缺省qmail是安裝在/var/qmail目錄下。
三、 qmail配置
qmail編譯成功以後就應該開始對其進行配置,最簡單的實現配置的方法是使用命令config:
[root@localhost /tmp/qmail-1.03]# ./config
config程序將試圖對本地地址進行反向解析,以確定本機域名;若反向解析失敗,則配置也就失敗。可以參考INSTALL.ctl文件內容。也可以在運行config程序時指定本機域名信息:
[root@localhost /tmp/qmail-1.03]# ./config-fast your.full.host.name
下一步 需要對某些不能接收郵件的系統帳戶添加別名:
[root@mail /usr/local/src/qmail-1.03]# cd /var/qmail/alias [root@mail /var/qmail/alias]# echo adam > .qmail-root [root@mail /var/qmail/alias]# echo bob > .qmail-postmaster [root@mail /var/qmail/alias]# echo bob > .qmail-mailer-daemon
這裡的bob或adam是系統管理員的普通用戶帳號。qmail在接收到一個發給用戶user1的信件,qmail-local則首先尋找名為user1的用戶,若沒有找到,qmail-local將去查詢是否有名字為user1的別名用戶,若有則發信給user1對應的真正用戶。其中別名是通過在/var/qmail/alias中定義的。例如希望為用戶tom創建一個名為info的匿名,則需要在/var/qmail/alias:
[root@mail /usr/local/src/qmail-1.03]# echo tom > /var/qmail/alias/.qmail-info
但是一個別名用戶不能和一個真實用戶重名。若重名,則別名就不會發生作用。
四、設置daemontools
首先安裝daemontools: [root@localhost /tmp]# tar xvfz daemontools-0.70.tar.gz [root@localhost /tmp]# cd daemontools-0.7 [root@localhost /tmp/daemontools-0.70]# make setup check 即可實現daemontools的安裝。
下面設置當系統啟動時自動啟動qmail。這裡要使用daemontool裡面的svcan工具,這些第三方的工具的使用和含義參見附錄A。按照前面的步驟,現在daemontools應該已經安裝在/usr/local/bin目錄下。
首先,需要創建daemontools服務工作目錄,該工具的作者推薦/service,這裡我們就使用缺省目錄:
[root@localhost /tmp]# mkdir /service [root@localhost /tmp]# mkdir /var/qmail/supervise [root@localhost /tmp]# mkdir /var/qmail/supervise/qmail-send [root@localhost /tmp]# chmod +t /var/qmail/supervise/qmail-send [root@localhost /tmp]# mkdir /var/qmail/supervise/qmail-send/log [root@localhost /tmp]# mkdir /var/qmail/supervise/qmail-smtpd [root@localhost /tmp]# chmod +t /var/qmail/supervise/qmail-smtpd [root@localhost /tmp]# mkdir /var/qmail/supervise/qmail-smtpd/log [root@localhost /tmp]# mkdir /var/log/qmail [root@localhost /tmp]# mkdir /var/log/qmail/qmail-send [root@localhost /tmp]# mkdir /var/log/qmail/qmail-smtpd [root@localhost /tmp]# chown qmaill /var/log/qmail [root@localhost /tmp]# chown qmaill /var/log/qmail/*
由於svscan的工作方式,我們這裡不在/service內創建真正的目錄,而是創建符號連接/var/qmail/supervise下的真正目錄。
下面創建系統啟動時自動啟動svscan的script文件,保存為/etc/rc.d/init.d/qmail。該script內容如下。
**************************************************************************** #!/bin/sh -e # /etc/init.d/svscan : start or stop svscan. # borrowed from http://Web.InfoAve.Net/~dsill/lwq.html # start-qmail # modified by Adam McKenna case "$1" in start) echo -n "Starting djb services: svscan " env - PATH="/usr/local/bin:$PATH" svscan /service & echo $! > /var/run/svscan.pid echo "." ;; stop) echo -n "Stopping djb services: svscan " kill `cat /var/run/svscan.pid` echo -n "services " /usr/local/bin/svc -dx /service/* echo -n " logging " /usr/local/bin/svc -dx /service/*/log echo "." ;; restart|reload|force-reload) $0 stop $0 start ;; *) echo 'Usage: /etc/init.d/svscan {start|stop|restart}' exit 1 esac exit 0
*******************************************************************************
*注意:要用vi編輯器編輯該script,去掉其中可能會出現的亂碼。 然後為該script添加可執行屬性: [root@localhost /tmp]# chmod +x /etc/rc.d/init.d/qmail
在紅旗Linux下,為了在啟動時自動運行該script,需要分別在/etc/rc.d/rc3.d和/etc/rc.d/rc5.d下創建符號鏈接如下:
[root@localhost /tmp]# ln –s /etc/rc.d/init.d/qmail /etc/rc.d/rc3.d/S98qmail [root@localhost /tmp]# ln –s /etc/rc.d/init.d/qmail /etc/rc.d/rc5.d/S98qmail
這時候,當系統啟動時,qmail就會被自動運行。
下來,需要創建/var/qmail/supervise目錄下的內容:
[root@mail rc5.d]# cd /var/qmail/supervise/qmail-send
在該目錄下創建名為run的script內容如下:
#!/bin/bash exec /var/qmail/rc
在目錄/var/qmail/supervise/qmail-send/log下創建run文件,內容如下:
#!/bin/bash exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t s2500000 \ /var/log/qmail/qmail-send
在目錄/var/qmail/supervise/qmail-mtpd下創建run文件,內容如下:
#!/bin/sh exec /usr/local/bin/softlimit -m 2000000 \ /usr/local/bin/tcpserver -v -p -x /etc/tcp.smtp.cdb \ -u $QMAILDUID -g $NOFILESGID 0 smtp /var/qmail/bin/qmail-smtpd 2>&1
*注意!請將$QMAILDUID換為您的系統中qmaild的用戶UID, $NOFILESGID換為您的系統中qmaild的用戶GID。
在目錄/var/qmail/supervise/qmail-smtpd/log/下創建run文件,內容如下:
#!/bin/bash /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t s2500000 \ /var/log/qmail/qmial-smtpd
將這幾個script的屬性均修改為可執行。
五、 防止Mail Relay
這裡就要使用ucspi-tcp軟件包,請先安裝該軟件包: [root@localhost /tmp]tar vxzf ucspi-tcp-XXX.tar.gz [root@localhost /tmp]cd ucspo-tcp-XXX [root@localhost /tmp]make setup check
在這裡我們要使用該軟件包的tcpserver程序。該程序的功能類似於inetd—監聽進入的連接請求,為要啟動的服務設置各種環境變量,然後啟動指定的服務。 tcpserver的配置文件是/etc/tcp.smtp,該文件定義了是否對某個網絡設置RELAYCLIENT環境變量。例如,本地網絡是地址為192.168.10.0/24的C類地址,則tcp.smtp的內容應該設置如下: 127.0.0.1:allow,RELAYCLIENT="" 192.168.10.:allow,RELAYCLIENT="" :allow 這幾個規則的含義是指若連接來自127.0.0.1和192.168.10則允許,並且為其設置環境變量RELAYCLIENT,否則允許其他連接,但是不設置RELAYCLIENT環境變量。這樣當從其他地方到本地的25號連接將會被允許,但是由於沒有被設置環境變量,所以其連接將會被qmail-smptd所拒絕。 但是tcopserver並不直接使用/etc/tcp.smtp文件,而是需要先將該文件轉化為cbd文件:
[root@localhost /tmp]$ # /usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.temp < /etc/tcp.smtp
若本地有多個網絡,則需要這些網絡都出現在/etc/tcp.smtp文件中。 這樣就實現了允許本地客戶relay郵件,而防止relay被濫用。
六、 Maildir vs. mbox 和 .qmail文件
mbox是Unix系統下標準的郵箱格式,在這種格式下,多個郵件存儲在同一個文件中,每個郵件消息都以」From」開頭的行開始。
而qmail提供了一種新的選擇?/FONT>Maildir格式,這種郵箱格式將每個郵件消息存儲在用戶的$HOME/Maildir/目錄下的單個文件中,其具有可靠,安全的特點,起唯一的缺點就是每個郵件存儲在單個文件中,從而很多的小文件浪費了磁盤空間。
在啟動qmail時需要指示qmail使用哪一種郵箱格式,這樣當qmail收到一個郵件以後就會存儲在相應的目錄中。這裡推薦使用Maildir格式。
為了讓用戶使用Maildir格式的信箱,就需要在該用戶登陸後,在其主目錄下創建郵件目錄:
[LOGINNAME@localhost /]$ /var/qmail/bin/maildirmake ./Maildir
這裡應該注意的是,~/Maildir目錄權限必須屬於所在用戶,如果該目錄是管理員以root身份創建,則需要使用命令:
chown -R $userid.$usergid /home/$LOGIN/Maildir
修改該目錄屬於該用戶,這裡$userid和$usergid則分別是用戶的用戶ID號和用戶組ID號。Maildir目錄下將會有三個子目錄new、cur和tmp,其中new目錄存放新接收到的信件,cur保存的已經看過了的郵件,tmp存放的是正在投遞的郵件,等投遞結束以後郵件就會被拷貝到new目錄下。
而每個用戶的主目錄下都應該有一個」.qmail」文件,該文件控制該用戶的郵件應該如何被處理。當遇到一個Maildir指示,則qmail將消息按照Maidldir的格式傳遞到指定的目錄,如:
./Maildir/
要注意的是,每個用戶的必須有.qmail文件,並且必須指定mailbox或者Maildir格式中的一種。這樣qmail才能順利的投遞信件,所以為了讓用戶使用Maildir格式的信箱,必須在用戶的主目錄下運行下面的命令(例如對於用戶qmaill) :
[qmaill@localhost qmaill/]$echo ./Maildir/ >/home/qmaill/.qmail
當遇到一個轉發指示則將該郵件轉發給指定的信箱,如:
七、啟動qmail
再啟動qmail之前,應先刪除sendmail 。
停止sendmail服務: [root@localhost /tmp]# killall -TERM sendmail (Linux) 接著用qmail的sendmail liberaby代替原來的sendmail。 [root@localhost /tmp]# mv /usr/lib/sendmail /usr/lib/sendmail.old [root@localhost /tmp]# mv /usr/sbin/sendmail /usr/sbin/sendmail.old [root@localhost /tmp]# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail [root@localhost /tmp]# ln -s /var/qmail/sbin/sendmail /usr/sbin/sendmail 將sendmail從啟動程序中刪除: 把/etc/rc.d/init.d 目錄下的sendmail文件刪除即可。 [root@localhost /tmp]# rm /etc/rc.d/init.d/sendmail
如果決定使用Maildir格式以後,就需要編輯/var/qmail/rc文件,內容如下:
#!/bin/sh
exec env - PATH="/var/qmail/bin:$PATH" qmail-start ./Maildir/ splogger qmail
需要設置rc文件為可執行:
[root@localhost /tmp]# chmod +x /var/qmail/rc
之後就需要在/service下創建到/var/qmail/supervise下各個目錄的的符號鏈接
[root@localhost /tmp]# ln -s /var/qmail/supervise/* /service/
然後在命令行鍵入如下命令:
[root@localhost /tmp]# /etc/rc.d/init.d/qmail start
在一分鐘以內,svscan將啟動qmail,可以通過:
[root@localhost /tmp]# ps axu |grep qmail
可以查看到qmail進程已經啟動。
八、 測試qmail
1、啟動qmail以後,查看qmail的log文件/var/log/maillog,在log文件內應該有:
qmail: status: local 0/10 remote 0/20
的內容。
2、然後運行」ps ax」應該至少可以看到這幾個和qmail相關的進程:
以qmails用戶身份運行的qmail-send進程、 以root身份運行的qmail-lspawn進程、 以qmailr身份運行的qmail-rspawn進程 以qmailq身份運行的qmail-clean進程。 如果系統中沒有這些進程,則需要回頭查看上面的哪一個步驟出現了錯誤。
3、local-local測試,試著給自己發送一封郵件: [qmaill@localhost qmaill/]$ echo to: qmaill| /var/qmail/bin/qmail-inject
在/home/qmaill/Maildir/new中馬上出現一封信,在記錄文件/var/log/maillog中應該出現下面的內容:
qmail: new msg 53 qmail: info msg 53: bytes 246 from qp 20345 uid 666 qmail: starting delivery 1: msg 53 to local me@domain qmail: status: local 1/10 remote 0/20 qmail: delivery 1: success: did_1+0+0/ qmail: status: local 0/10 remote 0/20 qmail: end msg 53
的記錄信息。
4、local-eorrot測試,發送一封郵件給一個不存在的用戶 [qmaill@localhost qmaill/]$ echo to: nonexistent | /var/qmail/bin/qmail-inject
在記錄文件/var/log/maillog中應該出現下面的內容:
qmail: new msg 53 qmail: info msg 53: bytes 246 from qp 20351 uid 666 qmail: starting delivery 2: msg 53 to local nonexistent@localhost.localdomain qmail: status: local 1/10 remote 0/20 qmail: delivery 2: failure: No_such_address.__#5.1.1_/ qmail: status: local 0/10 remote 0/20 qmail: bounce msg 53 qp 20357 qmail: end msg 53 qmail: new msg 54 qmail: info msg 54: bytes 743 from <> qp 20357 uid 666 qmail: starting delivery 3: msg 54 to local qmaill@localhost.localdomain qmail: status: local 1/10 remote 0/20 qmail: delivery 3: success: did_1+0+0/ qmail: status: local 0/10 remote 0/20 qmail: end msg 54
同時,在你的信箱裡應該有一個被返回的信件。
5、local-remote測試:發送一封空信件到遠程郵件帳戶:
[qmaill@localhost qmaill/]$ echo to: naturalboy@eyou.com | /var/qmail/bin/qmail-inject
在記錄文件/var/log/maillog中應該出現下面的內容:
qmail: new msg 53 qmail: info msg 53: bytes 246 from qp 20372 uid 666 qmail: starting delivery 4: msg 53 to remote naturalboy@eyou.com qmail: status: local 0/10 remote 1/20 qmail: delivery 4: success: 1.2.3.4_accepted_message./... qmail: status: local 0/10 remote 0/20 qmail: end msg 53
九、設置pop郵件
在本例中,我使用vpopmail來驗證用戶的登陸信息,並實現對郵件賬戶的管理。為了簡單起見,我沒有使用mysql存儲數據庫用戶資料,而是把他們放在了傳統的passwd文件裡。
1、安裝vpopmail
[root@localhost /tmp]# tar vxzf vpopmail-4.9.4.tar.gz 2、添加必需的組和用戶:
[root@localhost /tmp]# groupadd vchkpw [root@localhost /tmp]# useradd -g vchkpw vpopmail
若希望將vpopmail用戶的主目錄存放在其他目錄,則需要使用下面的命令:
[root@localhost /tmp]# useradd -g vchkpw -d /path/to/where/you/want vpopmail 3、創建~vpopmail/etc/tcp.smtp文件
若你具有192.168.0的一個c類地址,則在該文件中應該包含內容:
127.0.0.:allow,RELAYCLIENT="" 192.168.0.:allow,RELAYCLIENT="" :allow
若具有多個C地址,則需要在文件中分別包含對應各個C的地址的條目。
4、配置編譯vpopmail vpopmail的詳細配置選項
--enable-roaming-users=n|y 當pop3認證通過以後,是否打開對該用戶的郵件轉發(mail relay),缺省是關閉的。若設置該方法為yes,則當某個用戶通過了pop3認證,則將其ip地址 加入到允許通過該郵件服務器的進行郵件relay的列表中。一個名為clearopensmtp的 cronjob程序可以用來實現在一段時間以後從允許轉發郵件地址列表中將該ip地址去除。這 個選項要求以-x /etc/tcp.smtp.cdb選項來使用tcpserver運行smtp服務器。
--enable-hardquota=#|n 設置或打開磁盤限額,NOQUOTA為沒有限制為沒有郵件賬號設置磁 盤限額,缺省為50M,這裡=後面的數字單位為字節,也就是為了限制磁盤限額為10M就需 要使用配置參數:--enable-hardquota=10000000。若磁盤限額超出,則將拒絕接收該用戶 的新郵件,並返回一封拒絕信息信件,其中的信息可以定制。
--enable-default-domain=name 設定缺省域名推薦將所有的域都設置為虛擬域,並且挑選 一個作為缺省域。對於缺省域的用戶,其通過接收郵件時,只需要在用戶名中設置其郵件 用戶名即可,而對於其他非缺省用戶,則需要將用戶名設置為 %的 格式才能通過pop3收取信件。
--enable-ip-alias-domains=y|n 允許通過反向解析來察看虛擬域.缺省情況下,每個域使 用基於虛擬域的名字,也就是用戶必需在pop用戶名中提供相應的域信息,也就是 %。當然可以是用enable-default-domain配置選項來覆蓋該要求。 Vpopmail同樣支持基於IP地址的虛擬域,若該選項打開則用戶不需要在pop用戶名中提供%,則vpopmai自動對用戶連接的服務器的IP地址進行反向解析,若解析得到一個域名,則vpopmail使用該名字作為域,例如:IP w.x.y.z 對應於域名test.com,用戶設置pop服務器的IP地址為w.x.y.z,然後連pop服務器,vpopmail1得到連接請求,並察看連接的服務器端的IP,然後進行反向DNS查詢,得到test.com的域名,用戶使用joe作為pop用戶名,vpopmail使用test.com。
--enable-relay-clear-minutes=360 允許漫遊用戶通過郵件服務器的轉發郵件的時間段。若--enable-roamin-users=y,則該選項設置clearopensmtp應該保持該IP在允許列表中的 時間,缺省是3小時。
有關Mysql的選項
--enable-mysql=n|y 使用mysql,缺省是no允許通過將賬號存放在mysql數據庫中來認證 用戶。注意:在配置和編譯以前需要修改文件vmysql.h,正確的設置mysql服務器的 name/ip, mysql用戶和mysql用戶密碼。該用戶必需要擁有創建數據庫和在其中創建表 格的權限。
--enable-sqlincdir= sql頭文件的目錄,缺省為/usr/local/mysql.
--enable-sqllibdir=/usr/lib/mysql庫文件libmysqlclient.a的目錄,缺省為/usr/lib/mysql
--enable-sqllibs=mysqlclient mysql庫名,缺省為libmysqlclient.a.
--enable-large-site=n|y 缺省值為no,使用該選項是為了適應大量用戶的情況。缺省的 vpopmail將所有的域信息存放在同一個table-vpopmail中,這對於一般情況下具有很好的 效率。但是對於大量用戶的系統,則需要將該選項設置為yes。這時候,vpoomail將為每個 域創建一個table。最主要的區別是域名不存放在數據庫中,因為表格包含了域名。對於大 於500,000+的用戶,這可以節省大量的磁盤空間。但是對於有大量虛擬域的系統可能會影 響mysql的性能。
有關Vpasswd/cdb的選項
--enable-ucspi-dir=dir 編譯好ucspi包的目錄位置使用該目錄來設定ucspi-tcp軟件包的 路徑,缺省為../ucspi-tcp-0.84。vpopmail需要使用該目錄中的頭文件和兩個.a文件。
有關Logging的選項
--enable-logging=e|y|n 打開(y)或關閉(n)使用syslog進行log,或e僅僅log錯誤信息。 設置log級別,缺省僅僅記錄pop認證錯誤信息。
--enable-log-name=vpopmail 設置log名
有關User/group的選項
--enable-vpopuser=vpopmail若使用其他的用戶來安裝該軟件包,則在該選項中指定組名。
--enable-vpopgroup=vchkpw若使用其他的組來安裝該軟件包,則在該選項中指定組名。
--enable-admin-email=email-address 系統管理員的電子郵件地址。 有關Directory and file location地選項
--enable-tcpserver-file=/etc/tcp.smtp tcpserver -x使用的郵件轉發配置文件的存放目 錄,缺省為/etc
--enable-qmaildir=dir qmail的安裝目錄指定,缺省為/var/qmail。
--enable-tcprules-prog=/usr/local/bin/tcprules tcprules程序的安裝位置,缺省為/usr/local/bin
--enable-apop-file=/etc/apop-secrets apop密鑰存放目錄
其它選項 --enable-apop=y|n 允許或禁止apop認證,缺省是yes
--enable-passwd=y|n 允許或禁止/etc/passwd(或shadow)認證。覆蓋自動配置,缺省的配 置程序將自動檢測系統是使用passwd或shadow密碼,通過設置該選項為no,可以禁止所有的/etc/passwd賬號認證。
我使用的配置命令及選項如下:
[root@localhost vpopmail-4.9.4]# ./configure --enable-roaming-users=y --enable-hardquota =1000000 --enable-default-domain=naturalboy.com --enable-mysql=n --enable-ucspi-dir =../ucspi-tcp-0.88 --enable-passwd=y
其含義是: 允許通過pop3認證的遠程用戶使用smtp來轉發郵件; 每個用戶的目錄空間是10M; 默認域名是:naturalboy.com ; 不使用mysql數據庫; 使用passwd密碼認證。
[root@localhost vpopmail-4.9.4]# make [root@localhost vpopmail-4.9.4]# make install-strip
設置crontab,運行:
[root@localhost vpopmail-4.9.4]# crontab -e
添加如下內容(注意星號間的空格): 40 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null
5、添加虛擬域
[root@localhost vpopmail-4.9.4]# cd /home/vpopmail/bin [root@localhost vpopmail-4.9.4]# ./vadddomain naturalboy.com [root@localhost vpopmail-4.9.4]# ./vadddomain test.com 該命令將會修改一下幾個qmail的配置文件:
/var/qmail/control/locals /var/qmail/control/rcpthosts /var/qmail/control/morercpthosts (if rcpthosts > than 50 lines) /var/qmail/control/virtualdomains /var/qmail/users/assign /var/qmail/users/cdb
同時,將創建以下目錄或文件:
~vpopmail/domains/naturalboy.com ~vpopmail/domains/test.com ~vpopmail/domains/naturalboy.com/postmaster/Maildir... ~vpopmail/domains/test.com/posttmaster/Maildir ... ~vpopmail/domains/naturalboy.com/vpasswd ~vpopmail/domains/test.com/vpasswd ~vpopmail/domains/naturalboy.com/vpasswd.cdb ~vpopmail/domains/test.com/vpasswd.cdb
6、添加新的郵件POP用戶
[root@localhost vpopmail-4.9.4]# /home/vpopmail/bin/vadduser newuser@naturalboy.com [root@localhost vpopmail-4.9.4]# /home/vpopmail/bin/vadduser newuser1@test.com
在這種情況下,用戶郵件域需要被指定相應的域,這兩個用戶分別被添加到 ~vpopmail/domains/naturalboy.com ~vpopmail/domains/test.com
7、刪除郵件pop用戶
[root@localhost vpopmail-4.9.4]# /home/vpopmail/bin/vdeluser newuser@test.com
8、修改一個POP用戶密碼:
[root@localhost vpopmail-4.9.4]# /home/vpopmail/bin/vpasswd newuser@test.com
9、結合vchkpw與qmail-pop3d
當使用vpopmail時,則需要將在/var/qmail/supervice目錄下建立qmail-pop3d目錄,並在此目錄下建立的運行腳本run:
#!/bin/sh exec /usr/local/bin/tcpserver -v -R 0 pop-3 /var/qmail/bin/qmail-popup \ naturalboy.com /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2>&1 |
/var/qmail/bin/splogger pop3d
至此,重新啟動Linux後,可以使用outlook,foxmail等軟件從遠程通過該郵件服務器收發Email了。
十、試驗用例
1、新建用戶:
[root@localhost vpopmail-4.9.4]# /home/vpopmail/bin/vadduser aaa@naturalboy.com [root@localhost vpopmail-4.9.4]# /home/vpopmail/bin/vadduser newuser1@test.com
2、在一台運行win98的機器上,對outlook express設置如下:
新建郵件賬號: 電子郵件地址:aaa@naturalboy.com smtp服務器:192.xx.xxx.111 pop3服務器:192.xx.xxx.111 用戶名:aaa
電子郵件地址:user1@test.com smtp服務器:192.xx.xxx.111 pop3服務器:192.xx.xxx.111 用戶名:user1@test.com(因為默認域是naturalboy.com,所以這裡要加上域的標識。)
然後,可以通過這些用戶在outlook下往以下發送郵件: user1@test.com aaa@naturalboy.com starney@oyou.com 而且可以使用outlook接受到aaa@naturalboy.com以及user1@test.com中的郵件。
\\\___/// @ @ @ ( )
|
哈哈哈,你真得很誠心啊,
好啊好啊
以後一起探討
加「 」的做法是life with qmail裡面提到的,我改過不加的
當時系統立刻出飽,所以這裡建議大家用引號,也是在不知道確切情況下的小心為上
;;標示一個選擇的結尾,最後一個也是一個選擇,?
我也是看了life with qmail以後覺得有理才做的
按照tcpserver的方式啟動的確有很多的好處,不過功能太強大了,一點點不對,都可能造成系統的錯亂,我也是受苦頗多才這樣警示大家的啊
還有,就是對於數據庫,我覺得一般的應用根本永不上這個,不過對於自己開發php,cgi,perl等等的東西有數據庫方便的多了,也安全,對於郵件的存儲,一些大型系統都是用ldap作的,數據庫的在針對於郵件系統的情況下,運作方式在某些方面還比不上它。
我也覺得壞貼誤人,其實我學這個,裝這個,也至比你多了一個星期而已,看到了人家的東西就想拿來做,走了很多彎路。。。
學習無長幼,大家一起交流吧。
|