• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • Qmail的優點及安裝調試

    發表于:2007-07-02來源:作者:點擊數: 標簽:
    實踐證明,基于 Windows NT 的Exchange Server并不是企業級電子郵件系統的最佳選擇。由于對穩定性等 性能 要求非常高,因此大型電子郵件系統一般都使用 UNIX 作為 服務器 的操作系統,例如,Hotmail使用FreeBSD和Solaris,國內163等站點也是采用BSD系列。追

        實踐證明,基于Windows NT 的Exchange Server并不是企業級電子郵件系統的最佳選擇。由于對穩定性等性能要求非常高,因此大型電子郵件系統一般都使用UNIX作為服務器的操作系統,例如,Hotmail使用FreeBSD和Solaris,國內163等站點也是采用BSD系列。追求穩定的大型企業可采用FreeBSD和Solaris,普通中小企業可采用Linux。


      傳統的UNIX系統下的電子郵件系統由于設計所能承受的用戶數有限,其系統結構存在一定的缺陷,難以承受大用戶量的訪問。比如,應用非常廣泛的Sendmail系統就存在如下幾個局限性:


      * 由于其用戶信息存放于/etc/passwd文件中,在大用戶量的情況下認證效率將會大大降低;


      * 郵件存放通常在/var/mail目錄下面,每個人的郵件是一個文件,用戶數多則郵件文件就多。而在UNIX系統中,同一級目錄中的文件超過一定數量后,文件系統運轉效率將會大大降低。當使用NFS共享存儲空間的時候,還會產生一個嚴重的問題——由于NFS缺乏文件鎖定機制,在使用傳統的用戶郵件存儲格式Mailbox時,由于所有的郵件都保存在同一個文件中,因此進行郵件操作就必須加鎖,以保證沒有訪問沖突,這就使得它不適合NFS存儲方式;


      * 由于每一個用戶的多封郵件都位于同一個文件中,所以如果在用戶取信過程中出現網絡異常,則很容易引起郵箱的死鎖。


      上述問題大大限制了Sendmail郵件系統在用戶數量較大情況下的應用。另外,如果完全以系統用戶做為郵件系統的用戶也存在嚴重的安全隱患。因此,如果要適應大容量的需要,必須從郵件系統體系結構上,特別是郵件存貯方式和用戶認證方式上進行改進,使之在大用戶量的情況下仍舊能夠保持良好的性能。


      Qmail是可以完全替代Sendmail-binmail體系的新一代UNIX郵件系統,它也是一個基于UNIX操作系統的Internet郵件傳輸機構( Internet Mail Transfer Agent 簡稱MTA)。它采用標準的簡單郵件傳輸協議(Simple Mail Transfer Protocol 簡稱SMTP)與Internet上其他MTA交換信息。為了解決用戶郵件存儲問題,Qmail提出了Maildir存儲方式,每個郵件作為單獨的一個文件保存在用戶個人的郵件目錄下,這就避免了加鎖。同時,Qmail支持虛擬域(Virtual Domain)和虛擬用戶(Virtual User),使郵件系統的用戶獨立于UNIX系統用戶。與Sendmail相比,Qmail有以下優點:


      *安全---- Qmail將E-mail處理過程分為多個分過程,盡量避免以Root用戶身份運行。同時Qmail也禁止對特權用戶(Root、Deamon等)直接發信。


      *可靠---- Qmail的直接投遞保證了E-mail在投遞過程中不會丟失。Qmail同時支持新的更可靠的信箱格式——Maildir,保證系統在突然崩潰情況下不至破壞整個信箱。


      * 高效----運行在奔騰的BSD上,Qmail每天可以輕松地投遞20萬封電子郵件。


      *簡單---- Qmail 要比其他的Internet Mail系統小得多。 它通過統一的向前機制完成Forwarding、Alias和Maillist等功能, Qmail使用簡單高效隊列來處理投遞。Qmail-SMTPD可以由Inetd啟動,節省了一定資源。


      當前在國內最流行的免費電子郵件系統如163、371等,都是使用網易公司開發的系統。這些系統就是采用Qmail作為基本服務器軟件,采用NFS網絡文件系統作為用戶郵件存儲空間,使用Maildir作為郵件存儲格式,提供多級目錄以支持較大的用戶數。


      與Internet上的免費電子郵件系統相比,大中型企業電子郵件系統用戶主要為企業內部用戶,雖然數量沒有上十萬、百萬那么多,用戶群也相對固定,但對系統的安全性、穩定性的要求更高,用戶管理工作也更細致、繁瑣。如果能采用統一的Web 形式建立完善的用戶數據庫并提供郵件服務和用戶管理,則會在方便用戶的同時,大大地減輕系統管理員繁瑣的工作。


      Qmail是GNU下的一個著名的自由軟件,世界各地的高手們為進一步完善和擴充它的功能,開發了大量的基于Qmail的工具和補丁軟件,VmailMgr(Virtual Mail ManaGeR)就是其中之一。它增強了Qmail虛擬域(Virtual Domain)的功能,提供了大量的命令,以方便建立和管理獨立于UNIX系統用戶的郵件系統用戶,提供軟、硬空間限額等豐富的管理功能;郵件服務器的虛擬用戶也可以通過POP3、IMAP標準協議訪問自己的郵箱。特別值得一提的是,VmailMgr還提供一組CGI程序和PHP函數,有了這組程序,用戶們可以通過Web頁面進行郵箱申請、密碼更換,郵件管理員也可以通過Web頁面輕松完成用戶管理和郵件系統的配置工作。


      一個優秀的大型企業電子郵件系統應該具備以下功能:


      1. 為企業內部用戶提供大規模高速安全可靠的郵件服務,用戶數量可達數千至數萬人。


      2. 郵件系統支持各種E-mail的標準協議,提供POP3和IMAP郵件訪問方式。


      3. 提供WebMail的功能,用戶只需要一個瀏覽器,便能完成所有郵件的操作。


      4.為每個用戶提供20MB或更大的大容量郵件存儲空間。


      5.為用戶提供Mailing List、郵件轉寄、別名等功能。


      6. 建立用戶數據庫系統,保存用戶注冊時的個人信息,方便用戶管理。


      7. 為日常維護人員提供完全基于瀏覽器的日常管

    大家都看到了Qmail的諸多優點,下面我就介紹一下它的安裝及使用方法。

    Qmail安裝及設定


    個人qmail安裝及設定過程,希望對大家有用


    1. 如何獲得Qmail?

    可以通過訪問或mirror站點下載qmail-1.03.tar.gz,以及獲得

    更多qmail的資料.


    2 安裝Qmail

    獲得qmail-1.03.tar.gz后,用tar命令解包

    #tar xzvf qmail-1.03.tar.gz


    進入qmail目錄后,仔細閱讀一下README和INSTALL文件.然后開始編譯qmail.


    2.1 建/var/qmail目錄:

    #mkdir /var/qmail


    2.2 按照INSTALL.ids中方法建立qmail用戶和組:


    # 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


    2.3 make setup check

    2.4 閱讀INSTALL.ctl和FAQ,配置qmail,最簡單的方法是

    #./config

    或者

    #./config-fast your.full.home.name


    2.5 建立系統別名

    # (cd ~alias; touch .qmail-postmaster .qmail-mailer-daemon .qmail-root)

    # chmod 644 ~alias/.qmail*


    2.6 復制/var/qmail/boot/proc到/var/qmail/rc

    # cp /var/qmail/boot/proc /var/qmail/rc


    2.7 開始測試Qmail投遞程序


    啟動qmail:

    # csh -cf ’/var/qmail/rc &’


    先查看一下/var/log/maillog,搜索

    qmail: status: local 0/10 remote 0/20

    qmail-send通常是輸出"status"或者"cannot start"如果不能正常啟動.


    用ps監視一下qmail守護進程,應該有五個相關進程:

    qmail-send,以qmails用戶運行

    qmail-lspawn,以root用戶運行

    qmail-rspawn,以qmailr用戶運行

    qmail-clean,以qmailq用戶運行

    splogger,以qmaill用戶運行


    本地Mail測試:


    % echo to: me | /var/qmail/bin/qmail-inject

    注意:要用你的用戶名代替me

    Mail應該立即出現在你的信箱之中./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

    qmail: status: local 1/10 remote 0/20

    qmail: delivery 1: suclearcase/" target="_blank" >ccess: did_1+0+0/

    qmail: status: local 0/10 remote 0/20

    qmail: end msg 53


    53是inode號,20345是進程號,你的數字應該有所不同.


    本地錯誤測試:


    給一個不存在的本地用戶發信:

    % echo to: nonexistent | /var/qmail/bin/qmail-inject

    qmail: new msg 53

    qmail: info msg 53: bytes 246 from qp 20351 uid 666

    qmail: starting delivery 2: msg 53 to local

    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

    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

    你將立即收到彈回的信件.


    遠程投遞測試: 向你在其他機器上的賬戶發信:

    % echo to: | /var/qmail/bin/qmail-inject

    qmail: new msg 53

    qmail: info msg 53: bytes 246 from qp 20372 uid 666

    qmail: starting delivery 4: msg 53 to remote

    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

    投遞過程將在starting delivery和success中有個間斷,SMTP傳送是相對較慢的

    然后去檢查一下是否正確收到email.


    后面還有三個測試,分別測試本地postmaster,兩次彈回mail和通過mail執行

    命令.具體方法可以在TEST.deliver中找到.

    2.8 從Sendmail象Qmail轉移.


    2.8.1 首先找到sendmail的啟動程序,一般是在/etc/rc.d目錄中

    看上去象這樣的命令:

    sendmail -bd -q15m

    將其注釋掉.


    2.8.2 殺掉Sendmail進程.

    如果sendmail有子進程,可以反復用-STOP和-CONT信號殺,直到沒有

    子進程后用-TERM后加-CONT殺就可以了.


    2.8.3 檢查mail隊列中是否還有信,如果認為有必要將他們發送出去,可以在

    以后一段時間不定期的運行sendmail.bak -q直到隊列清空.


    2.8.4 去掉sendmail等文件的setuid bit

    # chmod 0 /usr/lib/sendmail

    # chmod 0 /usr/sbin/sendmail

    # chmod 0 /usr/lib/sendmail.mx


    2.8.5

    # mv /usr/lib/sendmail /usr/lib/sendmail.bak

    # mv /usr/sbin/sendmail /usr/sbin/sendmail.bak


    2.8.6 將

    csh -cf ’/var/qmail/rc &’

    添加到啟動文件中去.


    2.8.7 安裝qmail的sendmail外殼:

    # ln -s /var/qmail/bin/sendmail /usr/lib/sendmail

    # ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail


    2.8.8 在/etc/inetd.conf中設置qmail-smtpd:(是一行)

    smtp stream tcp nowait qmaild /var/qmail/bin/tcp-env

    tcp-env /var/qmail/bin/qmail-smtpd


    2.8.9 重啟動inetd,用-HUP信號殺inetd及可.


    2.9.1 使用qmail的maildir(這個問題麻煩我好幾天)


    每個用戶目錄內:/var/qmail/bin/maildirmake /home/$LOGINNAME/Maildir


    2.9.2 這一步不做好象也可以

    add a line to "/home/u user name/.bash_profile"

    MAIL=/home/$LOGINNAME/Maildir/

    export MAIL

    2.9.3 pop3

    去去下載checkpassword,(這個東西qmail不自帶)并編譯

    inet.conf 中的pop-3

    pop-3 stream tcp nowait qmaild /var/qmail/bin/qmail-popup mydomain

    .com /bin/checkpassword /var/qmail/bin/qmail-pop3d (在一行)


    2.9.4 rc文件

    cp /var/qmail/boot/home /var/qmail/rc

    修改rc文件變成如下

    exec env - PATH="/var/qmail/bin:$PATH" \

    qmail-start ./Maildir/ splogger qmail

     

    3 qmail的一些特殊配制


    3.1 如何設置Smart Host:

    # echo ":your.smart.host" > /var/qmail/control/smtproutes


    3.2 為其它主機轉信


    在/var/qmail/control/rcpthosts添加

    21cn.com

    163.com

     

    3.3設置主機多個域名


    將名稱加入/var/qmail/control/local,/var/qmail/control/rcpthosts

    /var/qmail/control/me


    3.4 別名


    本機不存的的進行轉發

    如:用戶本地不存在) 轉發給(user1為

    本地用戶)

    方法:

    echo "user1">/var/qmail/alias/.qmail-webmaster

    echo "

    完全的email地址


    3.5 群發mailist


    假如發信給時同多人可編輯

    /var/qmail/alias/.qmail-list內添加

    user1

    user2

    user3

    3.6 本地用戶擴展


    user1,q1,q2,qq為本地用戶user1-s1,user1-s2,user1-xxx不是本地用戶

    設定發信給:user1-s1轉為q1,user1-s2轉為q2,

    user1-21轉為轉為

    user1-xxx(xxx表示其它名稱)轉為qq,

    echo "q1">/home/user1/.qmail-s1

    echo "

    echo "q2">/home/user1/.qmail-s2

    echo "qq">/home/user1/.qmail-default

    編輯/home/user1/.qmail-list內容為

    q1

    q2

    qq

     

    3.7 如何設置

    如:

    ttt.com 設定 轉給本地用戶tttweb

    設定 轉給外地用戶

    設定 其它@ttt.com 轉給本地用戶tttother

    方法:

    (1)將ttt.com加入/var/qmail/control/local和/var/qmail/control/rcpthosts

    (2) 然后在/var/qmail/control/virtualdomains中加入

    your.virtual.domains:tttcom

    (3) 加一個用戶tttcom

    adduser tttcom

    這樣所有發往都將以

    的形式發給testcom,

    (4) echo "tttweb">/home/testcom/.qmail-webmaster

    echo "

    echo "tttother">/home/testcom/.qmail-default

    (5)從新啟動qmail

    3.8 抄送

    如:發信給 ,同時抄送給user2,dd@21cn.com

    方法:編輯/home/user1/.qamil 內容如下

    ./Maildir/

    |forward user2


    3.9 轉信

    轉向

    方法:編輯/home/user1/.qamil 內容如下

    3.10 如何設置 qmail 為對外smtp服務器?(去掉轉信和發信的限止)

    去掉/var/qmail/control/rcpthosts文件

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>