當你在建立Sendmail或任何其他標準SMTP伺服器時,重要的是要記住這是在你的Linux主機和其他郵件伺服器之間進行資訊傳輸的唯一手段。為了讓你的用戶能找回他們的訊息,你需要建立一個POP3或IMAP服務。 Qpopper是一個通用的POP3實作選擇,你可以安裝它並快速簡單的建立服務。只需要下面簡單的幾步。
用Sendmail安裝Qpopper
在這篇文章中描述了Qpopper了安裝的步驟,我將假設你已經安裝了Sendmail。不過,Qpopper將和任何其他標準的SMTP伺服器相容。
首先,從Qpopper的Web網站下載qpopper4.0.3.tar.gz這個最新的資源包。你在這個網站上還會發現大量的文件和軟體文件。在下載這個版本之後,你需要用tar xpfz這個指令將之解壓縮。建立新的目錄qpopper4.0.3並執行./configure,然後就可以開始安裝了。
如果你以前用過,或許你有超過預設安裝之外的需求,確信閱讀了文件以找到所有可編輯的選項。例如,你可能更喜歡將Qpopper作為一個獨立的後台郵件程序,而不是從inetd或xinetd中運行。要做到這些,你需要執行./configure並用選項--enable-standalone。
當Qpopper作為一個獨立的後台程式時,為了在導入時能啟動正確的服務,你需要建立一個腳本。除非你是從諸如RPM或DEB這樣的特定版本檔案安裝,否則Qpopper在缺省情況下安裝在/usr/local/lib下。如果從原始資源開始安裝,你也需要在/etc/inetd.conf檔案中加入下列的行:
pop3 stream tcp nowait root /usr/local/lib/popper qpopper -s
作為選擇,如果你在使用xinetd.conf,這是最新Red Hat 7.x的缺省安裝,確信在/etc/xinetd.d/目錄下創建了名為pop3的文件,其內容如下:
service pop3
{
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/local/lib/popper
server_args = qpopper -s
port = 110
}
當增加一項新的服務時,先檢查你的防火牆過濾規則和/etc/hosts.allow檔案。你的防火牆應該允許在110端口直接接受TCP請求,這是POP3服務的端口,並且你的hosts.allow檔案應該有ALL這一行。同樣的,如果是Red Hat,請檢查/etc/xinetd.d/並確保沒有已存在的POP3伺服器。透過一個標準安裝選項,使得預配置變成可能,所以如果你在以後才添加Qpopper,確信已經從xinetd後台程式中刪除了所有諸如/etc/xinetd.d/ipop3這樣的指引。
作者: postnew 發佈日期: 2007-10-18
建立Qpopper
一旦Qpopper安裝完成,你需要開啟服務。如果你使用的是inetd或xinetd,只需透過執行kill –HUP 就可以簡單的重啟inetd或xinetd後台程式。你可以透過執行ps aux | grep inet來決定進程ID(PID)。
如果已經將Qpopper安裝在單獨模式下,你需要透過在/etc/init.d/pop3檔案中放置參數-S來執行你已經建立的腳本。例如,-S標記告訴Qpopper運行在伺服器模式下,這可以有助於提高伺服器的輸入/輸出效能。如果不是在伺服器模式下,Qpopper將根據優先存取原則拷貝郵件檔案並且在做了相應調整之後將其拷回,例如電子郵件刪除。在伺服器模式下,Qpopper掃描佇列而不是拷貝,並在使用者的任務中直接處理,這對需要支援大量使用者的POP3伺服器尤其重要。
當運行一個POP3伺服器時,表格1所有你可以用的命令選項。例如,可以從110埠遠端登陸你的伺服器,手工操作,刪除大型的資訊。對這些選項有全面的了解將有助於快速解決使用者的電子郵件故障。
USER 在這個指令之後輸入你的使用者ID,例如USER webmaster。
PASS 為這個帳號輸入密碼,形式為PASS 密碼。
QUIT 這個指令結束目前任務並刪除標記的郵件。
LIST 用這個指令可以列出資訊和大小。
RETR 恢復某個資訊號碼的特定郵件。
DELE 這個指令刪除某個資訊號碼的特定郵件。
TOP 顯示特定郵件的前N行(TOP <# lines>).
Qpopper透過/etc/passwd和/etc/shadow依賴正在應用的標準系統驗證機制。所以,為了讓使用者可以使用POP3服務,在本機系統上新增是必要的。既然你可能已經運行了一個諸如Sendmail這樣的郵件代理,這件事情實際上已經做好了。
發現並解決Qpopper的故障
你安裝的任何服務在第一次運行的時候,可能總是會出現一些問題。一個很好的辦法就是伺服器對登陸其110埠的POP3請求能夠應答。你可以試試從本地和遠端站點進行登陸。你將看到這些實驗中命令列的例子。
如果有大量的用戶連接到你的伺服器以獲取電子郵件的話,你可能需要透過改變等待最大值來增加inetd的超時值,可以這樣做:
pop3 stream tcp nowait.400 root /usr/local/lib/popper qpopper -s
當大量的任務在同時進行時,這可以避免Qpopper進入死循環。當開始登陸時,你的日誌檔案開始記錄服務,這時你可以改變我在上面提到的超時值。
另一個問題就是在較大的網站經常出現郵件鎖定。當一個客戶向伺服器開啟一個POP3任務時,郵件鎖定這個檔案就已經建立了。它阻止其他修改郵箱的聯接。有時候,一個使用者非正常的斷開聯接,Qpopper不能把在任務之初建立的臨時檔案佇列刪除。這經常在/var/spool目錄下以.user.pop的形式出現。伺服器通常會偵測過時的郵件鎖定並刪除他們;然而,在很少的情況下,為了允許再次存取POP3伺服器,管理員可能需要手動刪除這些檔案。
總結
如果想為使用者提供完全的電子郵件功能,在你的Sendmail伺服器中加入POP3服務是重要的一步。透過Qpopper,這項任務就變得相當的簡單。迅速下載,安裝,並重新啟動和運行。它也可以和其它標準SMTP伺服器一起運作。