qmail是一個網際網路郵件傳送代理(簡寫為MTA),它運作在linux/Unix相容系統下,是一個直接代替UNIX下Sendmail軟體的郵件傳送程式。qmail使用SMTP協定與其它系統上的MTA交換郵件。
目錄
<dl></dl>
<dd></dd>
介紹
總體架構
簡單配置及使用
過程
<dd>啟動設定</dd>
作為Linux下面主流的郵件系統核心,大量著名的商業郵件系統都是在Qmail核心下開發,比如Hotmail

Qmail
等。Qmail具有安裝友善、安全性高、郵件結構合理、支援SMTP服務、隊列管理、郵件反彈、基于域名的郵件路由、SMTP傳輸、轉發和郵件清單、本地(郵件)傳送、POP3 服務等強大的功能。它已經逐漸替代傳統的Sendmail成為linux下郵件系統核心的主流選擇。qmail是面向安全而設計的,作者曾經懸賞500美元來找出qmail的安全漏洞,但是直到2006年,還是沒有人能領取這筆獎金。
qmail的主要競争對手是Exim以及Postfix。與它的競争對手不同的是,Qmail已經許多年沒有更新了,使用者已經習慣于通過第三方的插件及更新檔來使qmail增加新的功能。
qmail 的源代碼現已開放為公有領域。
qmail 安裝部署 1
一、 準備工作 1
二、 LAMP殘留(執行即可) 1
三、上傳所需安裝包 2
四、 檢查DNS配置 2
五、 設定或關閉防火牆 2
六、 解除安裝已有的郵件系統 3
七、 解壓縮netqmail-1.05.tar.gz 3
八、 安裝daemontools 3
九、 安裝ucspi-tcp 3
十、 建立所需的使用者 4
十一、 準備安裝qmail 4
十二、 qmail編譯安裝 5
十三、 設定管理者的郵箱位址 5
十四、 開啟SPF設定 5
十五、 添加qmail的幫助手冊 5
十六、 為qmail服務建立監控目錄和日志檔案 5
十七、 檢查服務 6
十八、 安裝vpopmail 7
十九、 檢查服務 9
二十、 用POP3和SMTP測試 10
二十一、安裝qmailadmin 14
過程一:Qmail的安裝。
1. 獲得Qmail程式。
Qmail是自由軟體,在Internet上可以獲得它的源代碼(C源代碼)及基于各種平台和作業系統的二進制檔案。二進制檔案可以不須編譯直接使用,但要注意選擇與您的平台和作業系統版本一緻的檔案,否則可能不能使用。源代碼可以在您的任何環境下工作(UNIX)但需要自己進行編譯安裝。這裡我們選擇源代碼。從Internet上下載下傳的源代碼通常是以tar程式打的包然後再用壓縮軟體進行壓縮。如:qmail-1.03.tar.gz 這裡使用的是gzip進行壓縮的(假設你的機器上已安裝了gzip)。使用 gzip -d qmail-1.03.tar.gz 解壓縮成qmail-1.03.tar 然後再用tar -xvf qmail-1.03.tar 解包成qmail-1.03目錄。那麼源代碼檔案均在此目錄中了。
2. 編譯安裝Qmail。
Qmail源代碼檔案中有幾個配置檔案可以修改以适合您的環境。
conf-qmail :此檔案包含Qmail的安裝目錄,預設值是 /var/qmail/
conf-users:此檔案包含Qmail需要使用的使用者,預設使用者是 root,alias,(這兩個使用者在unix下應該已經由系統建立好了,下面的使用者應該自己創)qmails,qmaid,qmaill, qmailr,qmailq,qma-ilp。
conf-groups:此檔案包含Qmail 需要使用的組,預設的組為qmail(qmails,qmaild,qmaill,qmailr,qmailq,qmailp要屬于此組)。
conf-cc:此檔案包含Qmail使用的編譯器,預設使用cc編譯器,如須使用其它C編譯器,應該将其替換為此編譯器如 gcc.
conf-ld:此檔案包含Qmail使用的編譯器,預設使用cc編譯器,如須使用其它C編譯器,應該将其替換為此編譯器如 gcc
在進行安裝前系統應該已經安裝了make指令。
定制好這些檔案後,在/var/qmail/下使用指令:make。make指令将編譯源代碼、連接配接.obj 檔案。如果此過程中斷或出錯,應參考上面配置檔案正确與否。使用者群組建立的正确與否。如果此過程沒有問題使用指令:make check setup。此指令将安裝所有檔案到/var/qmail/(在執行此指令前先用 makedir /var/qmail 建立該目錄)下。
另外需要安裝checkpasswd,它的獲得和安裝和Qmail一樣。此程式用于使用者使用POP3協定收取郵件時對使用者的密碼驗證。
過程二:Qmail的初級配置
Qmail安裝好了以後将在/var/qmail/下生成若幹檔案和目錄。
1.用vi 編輯器打開檔案 /etc/inetd.conf,并在檔案尾添加如下行:
smtp stream tcp nowait qmaild /var/qmail/bin/tcp-env
tcp-env /var/qmail/bin/qmail-smtpd (和上面一行同在一行)
pop3 stream tcp nowait root /var/qmail/bin/qmail-popup
qmail-popup yourname /bin/checkpassword
/var/qmail/bin/qmail-pop3d Maildir(和上面兩行同在一行)
其中yourname是您的完整的Internet主機名,Maildir 是采用的郵箱格式(這裡我們使用較流行的Maildir格式)
2.檢查/etc/services檔案中是否有如下兩行,如沒有則添加進去:
smtp 25/tcp mail
pop3 110/tcp # Post Office
3. DNS中有關Qmail的設定.
如果Qmail的郵件是與Internet上的其它郵件伺服器互動的話(否則隻能此伺服器的郵件使用者互相收發郵件了),還需要在DNS伺服器中設定有關 Qmail的條目(如果使用别人的DNS伺服器,應向DNS管理者申請添加條目)即添加一條關于郵件交換的條目(具體的設定請向DNS管理者咨詢)
4. 控制檔案的建立
Qmail的控制檔案放在/var/qmail/control/下,如果不與Internet上的郵件伺服器互傳郵件的話,需要配置很多的檔案。否則最簡單的隻需配置一個檔案:me
它的内容是此郵件伺服器的完整Internet主機名即:yourname
過程三:郵件使用者的建立
郵件使用者就是系統使用者,是以您應該向系統添加使用者,為了安全和管理的需要,最好建立一個E-mail使用者組,将E-mail使用者歸屬于此組,建立使用者目錄時最好在同一個檔案系統下建立在同一個目錄下(當然此檔案系統不夠大時可以建立在其它檔案系統的某個目錄下)
然後,在每個使用者的初始目錄下用指令:/var/qmail/bin/maildirmake建立郵箱目錄并賦予适當的權限,您可以使用Shell腳本來完成每個使用者郵箱的建立,下面是此腳本的一個簡單的例子:
if test $1
then
echo "Creating $1's directory and file..."
useradd -d /usr/email-users/$1 -g emusers -s /bin/passwd $1
cd /usr/email-users/
mkdir $1
chown $1 $1
cd $1
/var/qmail/bin/maildirmake Maildir
echo ./Maildir/ > .qmail
chown $1 Maildir
chown $1 Maildir/*
chown $1 .qmail
echo "Please input $1's email password"
passwd $1
echo "$1's account has been created!!!"
else
echo "Please input the user'name!"
fi
系統管理者可以使用emuadd email_user_name (此腳本的檔案名,并将此檔案存放在/bin下)來傳建email_user_name的郵箱
過程四:Qmail系統的使用
當上述過程結束後重新啟動計算機。
在郵件用戶端程式中設定如下:(假如E-mail伺服器的主機名為your,name,DNS中設定的郵件交換管理的域為mail.domain,注意:通常mail.domain與.name相同,以E-mail使用者user為例)
電子郵件位址:[email protected]
SMTP伺服器位址:yourname
POP3伺服器位址:yourname
POP3賬号:user
POP3賬号密碼:(由管理者給你,可以自己修改)
Qmail 運作有兩種方式。tcpserver,xinet。 當域名解析有問題的時候,tcpserver運作會有問題。
qmail1.0.8,ucspi-tcp-0.88
(1) tcpserver方式
# pop3 設定
/usr/local/bin/tcpserver -P -H -R 0 pop-3 /var/qmail/bin/qmail-popup /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2>&1 | /var/qmail/bin/splogger &
# smtpd 設定
/usr/local/bin/tcpserver -H -R -t 1 -v -P -x/etc/qmail/tcp.smtp.cdb -u 511 -g 506 smtp /var/qmail/bin/qmail-smtpd /home/vpopmail/bin/vchkpw /bin/true | /var/qmail/bin/splogger &
(2) xinetd方式
/etc/xinetd.d/pop3-3
service pop-3
{
disable = no
socket_type = stream
wait = no
user = root
server = /var/qmail/bin/qmail-popup
nice = 10
server_args = home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir &
}
/etc/xinetd.d/smtp
service smtp
user = vpopmail
server = /var/qmail/bin/qmail-smtpd
server_args = /home/vpopmail/bin/vchkpw /bin/true