天天看點

Qmail的介紹和配置

qmail是一個網際網路郵件傳送代理(簡寫為MTA),它運作在linux/Unix相容系統下,是一個直接代替UNIX下Sendmail軟體的郵件傳送程式。qmail使用SMTP協定與其它系統上的MTA交換郵件。

目錄

<dl></dl>

<dd></dd>

介紹

總體架構

簡單配置及使用

過程

<dd>啟動設定</dd>

  作為Linux下面主流的郵件系統核心,大量著名的商業郵件系統都是在Qmail核心下開發,比如Hotmail

Qmail的介紹和配置

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/ &gt; .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&gt;&amp;1 | /var/qmail/bin/splogger &amp;

  # 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 &amp;

  (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 &amp;

  }

  /etc/xinetd.d/smtp

  service smtp

  user = vpopmail

  server = /var/qmail/bin/qmail-smtpd

  server_args = /home/vpopmail/bin/vchkpw /bin/true