【正文】
:allow,RELAYCLIENT=39。 ./configfast 設(shè)置管理員的郵箱地址,發(fā)往 root/postmaster/mailerdaemon地址的郵件將會(huì)由定義的管理員郵箱接收。此處使用的是 。 cd/home/pkg tar zxvf cd admin/ Patch p1 /home/pkg/ 21 package/install 驗(yàn)證 daemontools已經(jīng)正常運(yùn)行: sleep 5 ps ax|grep svscan ucspitcp 的安裝 功能: ucspitcp是有一組軟件包組成,它們用來簡(jiǎn)單的建立客戶機(jī)與服務(wù)器的 tcp后臺(tái)。 cd/home/pkg/ tar zxvf cd ./configure prefix=/var/ – enable modules=so make make install php 的安裝 功能: 是一種服務(wù)器端的,嵌入 HTML的腳本語(yǔ)言。在有網(wǎng)絡(luò)的情況下在安裝 gcc、 mysql、 flex 和 perl 等一些軟件,建議用 yum 安裝,這樣完全可以解決軟件包之間的依賴問題,節(jié)省很多時(shí)間。 這里將以 qmail作為 smtp服務(wù)器, vpopmail 實(shí)現(xiàn)虛擬域管理、用 mysql 數(shù)據(jù)庫(kù)來進(jìn)行用戶驗(yàn)證,用 qmailadmin 通過 Web 來實(shí)現(xiàn)管理虛擬域,用 ezmlm來提供強(qiáng)大的郵件列表支持,用 igenus 來提供一個(gè)友善的 webmail界面, Clanav則為此郵件系統(tǒng)提供殺毒模塊。 通過以下安裝,構(gòu)建一個(gè)完整、高效的 mail 郵件服務(wù)器。 Vqadmin是通過 WEB添加域。 19 Autorespond是自動(dòng)回復(fù)程序 ,可以很好的與 qmailadmin配合使用。 Courierimap是此郵件系統(tǒng)的 IMAP模塊。 iGenus是大麻兄的作品, PHP編寫的 Webmail。 daemontools 是 id 和 wid 的代替品 , 用 它 來 監(jiān) 聽qmailsend,qmailsmtpd,qmailpop3d。 ucspitcp是由一組工具組成。 Qmail 的前期準(zhǔn)備 操作系統(tǒng): CentOS 分區(qū)狀況 /5G Swap 1024MB /home 1024MB(因?yàn)猷]件都儲(chǔ)存在 /home/vpopmail下,可以根據(jù)情況分區(qū)) DNS 18 MX記錄和地址反解 確認(rèn)沒有郵件服務(wù)在運(yùn)行 : /etc/stat na|grep 25 stat na|grep 110 stat na|grep 143 service sendmail stop 刪除已有的郵件軟件: rpm – e nodeps postfix Qmail是本文的主角,世界上使用最廣的郵件系統(tǒng)之一。1 | /var/qmail/bin/splogger amp。 (注: 502 and 501換成系統(tǒng)上的 qmaild與 nofiles的 uid and gid的值。39。 具體是這樣做的: echo “ /etc/qmail/start” /etc/機(jī)執(zhí)行 /etc/qmail/start touch /etc/qmail/start 建立執(zhí)行文件 touch /etc/qmail/smtp 建立 smtp腳本文件 touch /etc/qmail/pop 建立 pop腳本文件 touch /etc/qmail/ 建立 tcpserver 的連接規(guī)則文件 echo csh cf 39。本文中用ucspitcp 包的 tcpserver 服務(wù)來代替它。想用 qmail 作為 mail 服務(wù)器,必須用 qmail 的sendmail 包裝程序替代現(xiàn)有的 sendmail 程序。根據(jù)你的 mail不同的使用情況,自己選擇來建立和設(shè)置。 Virtualdomains:讓 qmail 接受本地郵件以外,還接受該文件中指定的域或者郵件地址,就是常說的虛擬域支持。 Timeoutsmtpd:用來指定 qmailsmtpd 等待遠(yuǎn)程 smtp 客戶端連接的時(shí)間秒數(shù)。 Timeoutremote:用來指定 qmailsmtpd 等待遠(yuǎn)程 SMTP 主機(jī)發(fā)送數(shù)據(jù)的時(shí)間線。也就是說等待遠(yuǎn)程 smtp 服務(wù)器接受本地的一個(gè) smtp 請(qǐng)求響應(yīng)的 15 時(shí)間,默認(rèn)是 60秒。 那么建立一個(gè) smtp連接的時(shí)候?qū)?huì)看到如下信息: Trying ... Connected to Escape characteris ^]. 220 wele connect to out open relay mail server – ESMTP Smtproutes:用來指定能夠被用來將郵件投送給特定目的地的靜態(tài) smtp連接的。 Morercpthosts:用來指定 qmail 將要為其接受消息的額外的主機(jī)和域名。 Rcphosts:定義了 qmail 可以接收消息的主機(jī)和域名。 Queuelifetime:用來指定一個(gè)消息在他被刪除前,可以在郵件列表中保存的時(shí)間秒數(shù)。如果某種原因你的郵件服務(wù)器無(wú)法連通 dns 服務(wù)器,可以手工運(yùn)行 configfast 來指定郵件服務(wù)器主機(jī)名: /var/qmail/configure/config fast 14 Plusdomain:用來將一個(gè)域名指定成任何一個(gè)以一個(gè)加號(hào)( +)結(jié)尾的地址。 Me:用來指定本地郵件服務(wù)器的主機(jī)名,最重要的控制文件,如果沒有, qmail將不會(huì)運(yùn)行。建議不要設(shè)置。 Localiphost:用來為郵件消息指定本地地址的,內(nèi)容是郵件主機(jī)的 ip地址。如果 helohost 控制文件沒有給出, qmailremote使用 me文件的值。默認(rèn)是 me文件的值 13 Doublebounceto:用來為那 些經(jīng)歷了兩次反彈后的消息指定用戶名,默認(rèn)是 postmaster。默認(rèn)值是 0,表示不限制。 Databytes:定義由 qmailsmtpd 接受到的郵件消息所允許的最大字節(jié)數(shù),也 就是發(fā)送和接受郵件的大?。ū緳C(jī)上給本機(jī)用戶出發(fā)和接受除外)。如果設(shè)置了 QMAILDEFAULTDOMAIN 環(huán)境變量,就會(huì)重載 defaultdomain控制文件的值。它也是由 confspawn 設(shè)置的,默認(rèn)值是 120,最大可設(shè) 255。這個(gè)控制文件的最大值是由 qmail源代碼中的 confspawn 變異參數(shù)設(shè)置的,這個(gè)編譯參數(shù)默認(rèn)值是120,最大值是 255。默認(rèn)參數(shù)是 10。 Concurrencylocal:定義了 qmail 能夠同時(shí)運(yùn)行的本地投送進(jìn)程 12 數(shù)。 Bouncefrom默認(rèn)值是 MAILERDAEMON,它通常是一個(gè)虛擬用戶名,是一個(gè)真實(shí)用戶的別名。而且 ,不用重起 qmail就能生效。還有一個(gè)要重點(diǎn)注意,就是控制文件的權(quán)限問題,推薦root可讀寫,其他只讀。也有一些控制文件能包含多個(gè)值。 qmail控制文件是定義了 qmail 參數(shù)的 ASCII 文本文件。 它 位 于/var/qmail/control 目錄下。 qmail 控制文件 11 對(duì)于管理好 qmail,這一步非常重要的。常見的是 tcpwrapper 和 tcpserver。 qmail 的環(huán)境變量是在 qmail 程序運(yùn)行前就被設(shè)置好的。多數(shù)的控制文 件的值都能被一個(gè)相應(yīng)設(shè)定的環(huán)境變量重載。這些核心的程序允許 qmail 掃描新郵件,并將他們發(fā)送到適當(dāng)?shù)哪康牡亍? qmail 的進(jìn)程 :qmailsend、 splogger qmail、 qmaillspawn、qmaiilrspawn、 qmailclean。qmailsend 判斷郵件是發(fā)給誰(shuí)的,發(fā)給本地的,就交給 qmaillspawn程序,再由 qmaillocal 投送到本地郵件服務(wù)器。也就是說, qmailclean 實(shí)用來清除永久失敗的的郵件消息的。一旦消息被成功的放在郵件隊(duì)列中,就調(diào)用 qmailsend 程序來處理他。 qmailinject 程序是用來接收本地產(chǎn)生的郵件消 10 息并傳送給 qmailqueue 程序。 投遞郵件進(jìn)程流程 如圖 31 圖 31 qmail 系統(tǒng)中有 9 個(gè)核心程序,這里簡(jiǎn)單的介紹一下。兩種常見的遠(yuǎn)程用戶取回他們消息的機(jī)制是郵政協(xié)議 (post office protocal,pop3)和互交郵件訪問協(xié)議 (interactive mail access protocol,imap)。通過將相關(guān)的內(nèi)容存放在統(tǒng)一的目錄之下 ,目錄服務(wù)為用戶提供了基于客戶 /服務(wù)器工作方式的信息查詢手段。目前 ,MIME 的用途早已經(jīng)超越了收發(fā)電子郵件的范圍 ,成為在 Inter上傳輸多媒體信息的基本協(xié)議之一。 MIME 協(xié)議 MIME 是多用途 Inter 郵件擴(kuò)展 (Multipurpose Inter Mail Extensions)協(xié)議的 縮寫。 IMAP4在郵件服務(wù)器一端為用戶保留郵件。首先 ,用戶可 以僅讀取電子郵箱中的郵件信頭 (Message header)。 IMAP4 協(xié)議 IMAP 協(xié)議是 Inter 消息訪問協(xié)議 (Inter Message Access Protocol)的縮寫 ,現(xiàn)在常用的是版本 4,它為用戶提供了有選擇的從郵件服務(wù)器接收郵件的功能 ,基于服務(wù)器的信息處理功能和共享信箱 8 功能。 POP3 協(xié)議 POP協(xié)議是郵局協(xié)議 (Post Office Protocol)的縮寫 ,是一種允許用戶從郵件服務(wù)器收發(fā)郵件的協(xié)議。 SMTP 協(xié)議 SMTP 協(xié)議是簡(jiǎn)單的郵件傳輸協(xié)議 (Simple Mail Transfer Protocol)的縮寫。它增強(qiáng)了 Qmail虛擬域( Virtual Domain)的功能,提供了大量的命令,以方便建立和管理獨(dú)立于 UNIX 系統(tǒng)用戶的郵件系統(tǒng)用戶,提供軟、硬空間限額等豐富的管理功能;郵件服務(wù)器的虛擬用戶也可以通過 POP IMAP標(biāo)準(zhǔn)協(xié)議訪問自己的郵箱。如果能采用統(tǒng)一的 Web形式建立 完善的用戶數(shù)據(jù)庫(kù)并提供郵件服務(wù)和用戶管理,則會(huì)在方便用戶的同時(shí),大大地減輕系統(tǒng)管理員繁瑣的工作。這些系統(tǒng)就是采用 Qmail 作為基本服務(wù)器軟件,采用 NFS 網(wǎng)絡(luò)文件系統(tǒng)作為用戶郵件存儲(chǔ)空間,使用Maildir 作為郵件存儲(chǔ)格式,提供多級(jí)目錄以支持較大的用戶數(shù)。同時(shí), Qmail 支持虛擬域( Virtual Domain)和虛擬用戶( Virtual User),使 郵件系統(tǒng)的用戶獨(dú)立于 UNIX系統(tǒng)用戶。它采用標(biāo)準(zhǔn)的簡(jiǎn)單郵件傳輸協(xié)議( Simple Mail Transfer Protocol 簡(jiǎn)稱 SMTP)與 Inter上其他 MTA 交換信息。追求穩(wěn)定的大型企業(yè)可采用 FreeBSD 和 Solaris,普通中小企業(yè)可采用 Linux。 apache. 前 言 實(shí)踐證明,基于 Windows 和 Exchange 的郵件服務(wù)器并不是企業(yè)級(jí)電子郵件系統(tǒng)的最佳選擇。 ezmlm。s based on the Linux system configuration and efficient Abstract Before delving too deeply into further configuration and tailoring of qmail, it is important to understand the basic structure of qmail. Qmail is often referred to as merely a mail server software package. While this may be accurate in one sense, it is more accurate to think of qmail as a mail delivery architecture whose architect has thoughtfully provided a basic implementation of all the ponents of that is very modular— it consists of a series of simple programs municating via specific and limited interfaces. Each simple program has a specific and limited task to perform. This architecture allows each ponent program to be easily replaced or new programs to be