340 likes | 446 Views
第 24 章. 架設 Mail 伺服器. 本章大綱. 24-1 E-mail 系統運作簡介 24-2 啟動 Sendmail 伺服器 24-3 轉遞別台主機發送的信件 24-4 檢視寄信狀況 24-5 安裝可從 Windows 讀信的POP3/IMAP伺服器. 前言. 傳統的書信寄送方式 , 不僅需要付郵費而且可能還要花幾天的時間才會寄達。現在有了 Internet 這條傳遞資訊的高速公路 , 我們可以利用電子郵件 (E-mail) 來傳送信件 , 如此既快速又省錢。
E N D
第 24 章 架設Mail 伺服器
本章大綱 • 24-1 E-mail 系統運作簡介 • 24-2 啟動 Sendmail 伺服器 • 24-3 轉遞別台主機發送的信件 • 24-4 檢視寄信狀況 • 24-5 安裝可從 Windows 讀信的POP3/IMAP伺服器
前言 • 傳統的書信寄送方式, 不僅需要付郵費而且可能還要花幾天的時間才會寄達。現在有了 Internet 這條傳遞資訊的高速公路, 我們可以利用電子郵件 (E-mail) 來傳送信件, 如此既快速又省錢。 • 通常我們是使用 ISP 的郵件主機所提供的服務, 來處理電子郵件的接收與寄送。如果我們想要自己架設郵件主機, 使用 Linux 系統很容易就可以辦到喔!
24 - 1 E-mail 系統運作簡介 • 收發 E-mail 可說是現代人日常生活的一部份。以使用者的立場來說, 我們只要學會怎麼操作 Outlook Express 之類的軟體就可以了。但既然我們準備要架設一台郵件主機, 當然應該要對郵件系統有點基本的認識, 請您仔細看下去。
E-mail 系統的服務程式 • 在 E-mail 系統中, 包括 MUA (Mail User Agent) 與 MTA (Mail Transport Agent) 兩個部份。MUA 是指使用者可用來讀寫信件的程式, 例如 mutt 或 Outlook。 • 而 MTA 是指系統中負責處理信件收發工作的程式, 在 Linux 中比較廣範使用的是 sendmail 與 postfix 這 2 種伺服程式, 本章將介紹較多人使用的 sendmail。
E-mail 系統的服務程式 • 大多數的使用者只需要學會如何操作如 mutt 之類的 MUA 程式, 即可順利地收發信件。如果想要自行架設郵件主機的使用者, 則必須對 MTA 的安裝與設定做進一步的瞭解。
傳送 E-mail 的方式 • 利用網路來傳送 E-mail 可分為 2 種方式, 一種是在單一網路中收發 E-mail, 例如公司主管要通知員工開會, 則員工都需要登入到同一台郵件主機才能收到信。 • 另一種方式則是必須將 E-mail 傳送到另一台郵件主機, 例如主管要發一封 E-mail 到遠在美國的廠商, 則兩者發信與收信分別是在不同的郵件主機中進行。以下就是這 2 種 E-mail 傳送方式的圖解說明。
在內部網路中傳送 E-mail • 當同一郵件主機中的使用者 cassia 要寄信給 ken 時, 郵件伺服程式並不會將信件傳出郵件主機。用這種方式時, 郵件主機並不需要有一個已登記的伺服器名稱, 因此 cassia 寄給 ken 可以隨意使用下列幾種 E-mail 位址:
E-mail 位址的格式 • 每個 E-mail 位址的格式, 皆是由郵件帳號、主機名稱 (host name) 與網域名稱 (domain name) 組合而成。例如:
傳送 E-mail 到其他郵件主機 • 當 E-mail 要傳送到另一台郵件主機時, 一定要指定收信者的完整 E-mail 位址。例如 cassia 要寄一封信給lucy@ms1.whatever.net, 則郵件伺服程式發現此信是要寄到 ms1.whatever.net 網域, 就會詢問名稱伺服器 (name server) 關於此網域的資訊, 然後透過 SMTP 協定將信件傳送到遠端的郵件主機:
傳送 E-mail 到其他郵件主機 • 這種情況下, 在架設郵件主機時, 不可以自己隨便取一個名稱 (假設取名為nonsense.flag.com.tw), 因為如果上游沒有記錄此郵件主機的位址, 則當別人要寄信過來的時候, 會因為找不到這台郵件主機而無法順利寄出。請見下圖:
檢查名稱伺服器是否設定正確 • 想要讓自行架設的郵件主機能正常運作, 除了要有正式的網址之外, 還必須在名稱伺服器中登記此主機是郵件伺服器, 如此其他的郵件主機才能寄信給我們自行架設的郵件伺服器, 否則信件可是會被退回的! • 因此, 您必須在名稱伺服器中登記主機為郵件伺服器, 至於登錄的方法, 請洽詢您的 ISP 或 MIS 人員。
檢查名稱伺服器是否設定正確 • 您可使用下列方式查詢您網路所連接的 ISP, 或是您的 MIS 人員是否已於名稱伺服器中登記您所架設的郵件伺服器:
24 - 2 啟動 Sendmail 伺服器 • 瞭解郵件傳送的方式之後, 現在我們要來安裝與設定郵件伺服程式。在 Linux 中一般最常使用的郵件伺服程式是 sendmail 伺服器, 本 Linux 發行版已內附 sendmail。您可檢查在 /usr/sbin 目錄中是否有一個 sendmail 可執行檔, 如果有, 表示已經安裝完成。
24 - 2 啟動 Sendmail 伺服器 • 若是還沒有安裝, 則可從書附光碟 ( DVD 或 CD1 ) 的 /Fedora/RPMS 目錄中找到以 sendmail 開頭的檔案, 然後執行以下指令來安裝即可: • Sendmail 的服務程式是在背景執行, 負責處理所有的郵件, 您可執行 ps 指令查看執行中的程序:
24 - 2 啟動 Sendmail 伺服器 • 萬一 sendmail 尚未執行, 則請用以下指令來啟動: • 若要在每次開機後自動啟用 sendmail, 則可執行 ntsysv 指令, 然後選擇 sendmail這一項服務。退出後重新開機, 就會有 sendmail 服務了。
24 - 3 轉遞別台主機發送的信件 • 自行架設的郵件主機, 如果您是直接遠端登入主機來收發郵件, 都不會有問題。但如果您想要透過郵件軟體來連上郵件主機發信, 那就可能會遇上問題。例如在家使用 HiNet 帳號撥接連線, 然後要用 Outlook Express 連到公司的郵件主機發信, 此時就會出現 "Relaying denied" 的訊息, 那是因為 sendmail 預設只轉遞(relay,或稱"中繼" ) 來自於郵件主機本機的郵件:
24 - 3 轉遞別台主機發送的信件 • 為了讓郵件主機更便於使用, 我們需要修改 2 個地方, 請先在 /etc/mail/sendmail.cf 檔找到下面的位置修改 :
24 - 3 轉遞別台主機發送的信件 • 接著請參考下面的例子來修改 /etc/mail/access 檔的內容, 開啟郵件主機可轉遞的對象:
24 - 3 轉遞別台主機發送的信件 • 然後執行以下命令將新的設定寫入資料庫 (爾後只要更改 /etc/mail/access 檔之後, 都需要重新執行這個命令): • 最後執行以下命令重新啟動 sendmail 即可:
24 - 3 轉遞別台主機發送的信件 • 如果您不想一個一個網域做限制, 則也可如下設定, 允許一大堆網域使用郵件主機轉遞信件:
24 - 3 轉遞別台主機發送的信件 • 但這種設定的做法, 有可能會讓別人利用此郵件主機來寄送垃圾郵件。例如上面的例子是開放轉遞 tw、com、org 與 edu 的郵件, 則所有來自於這些網域的郵件都可以利用此台主機來發信, 那麼您的郵件主機就有潛力成為全球垃圾郵件的轉運中心了, 相信這不是您所樂見的。因此建議您在 access 檔中只設定必須的網域, 可別像上面的例子, 自找麻煩!
24 - 4 檢視寄信狀況 • 當我們寄出郵件時, 要怎麼知道真的已被郵件主機寄出去了呢?本節將會告訴你查看郵件佇列的方法。 • 有時候可能會因為網路的問題而使得郵件送不出去, 我們可以用 mailq 指令來查看郵件佇列 (mail queue) 的內容:
24 - 4 檢視寄信狀況 • 如果是類似下面這樣的訊息, 則表示有信件尚未被送出:
24 - 4 檢視寄信狀況 • 有封信件停留在郵件佇列中等待寄送, 如果一直都寄不出去, 則會通知發信人無法寄出。這些留在郵件佇列中的信件都儲存在 /var/spool/mqueue 目錄中, 其存取權限預設為 "rw-------", 擁有者是 root。 • 而我們在郵件主機上收發郵件的動作, 會記錄在 /var/log/maillog 檔中, 您可查看此檔,檢視寄送的情況。
24 - 5 安裝可從 Windows 讀信 的 POP3/ IMAP 伺服器 • 目前廣大的 PC 使用者大多習慣於 Windows 作業系統的郵件軟體, 例如 Outlook (Express) 與 Thunderbird 等。為了讓這些使用者能夠存取郵件伺服器中的信件, 我們還要再加上 POP3 (Post Office Protocol) 伺服器或 IMAP (Internet Message Access Protocol) 伺服器的功能。如此使用者可以將電子郵件從主機取回自己的電腦中閱讀與保存, 並使用熟悉的軟體來編輯與收發信件。這對於大部份的使用者來說, 確實相當有需要。
安裝 POP3/IMAP 伺服器 • 若您在安裝本 Linux 發行版時, 不是依照第 4 章所建議的全部安裝, 請您執行 rpm -qdovecot指令, 檢查是否有安裝 POP3/IMAP 伺服器的 dovecot 套件。如果沒有安裝, 請放入書附光碟 (DVD 或 CD2) , 依照以下指令操作:
設定與啟動 POP3/IMAP 伺服器 • POP3 伺服器可讓使用者將郵件從主機上取回自己的電腦上閱讀及保存, 而 IMAP 伺服器則允許使用者在主機上執行閱讀及儲存的動作。 • 確定安裝好dovecot 套件後, 請執行以下指令啟動 POP3/IMAP 伺服器:
設定與啟動 POP3/IMAP 伺服器 • 若想要每次開機時自動啟動 POP3/IMAP 伺服器, 請執行 ntsysv指令, 然後選擇 dovecot這一項服務即可。如此便能提供使用者遠端接收郵件的服務了。