Sun Java System Messaging Server 6.3 管理指南

第 5 章 配置 POP、IMAP 和 HTTP 服務

Messaging Server 支援郵局通訊協定第三版 (POP3)、網際網路郵件存取通訊協定 4 (IMAP4) 以及超文件傳輸協定 (HTTP),以便用戶端存取電子信箱。IMAP 和 POP 均為網際網路標準的電子信箱協定。Messenger Express 是一個 Web 型的電子郵件程式,可讓一般使用者在已連線網際網路的電腦系統上使用瀏覽器透過 HTTP 來存取電子信箱。

本章說明如何使用指令行公用程式來配置伺服器以支援一或多個這些服務。

如需有關配置簡易郵件傳輸協定 (SMTP) 服務的資訊,請參閱第 10 章, 關於 MTA 服務和配置

本章包含以下各節:

5.1 一般配置

配置 Messaging Server POP、IMAP 和 HTTP 服務的一般功能,包含啟用或停用服務、指定連接埠號以及選擇性地修改傳送至連線用戶端的服務大標題。本小節提供背景資訊;如需進行這些設定的步驟,請參閱5.5 配置 POP 服務5.6 配置 IMAP 服務5.7 配置 HTTP 服務。本節包含以下小節:

5.1.1 啟用和停用服務

您可以控制 Messaging Server 的任何特定實例是否可以使用 POP、IMAP 或 HTTP 服務。這與啟動和停止服務 (請參閱4.4 啟動和停止服務) 不同;若要使服務正常作業,必須啟用並且啟動 POP、IMAP 或 HTTP。

啟用服務是比啟動或停止服務更「全域化」的程序。例如,啟用設定可在系統重新啟動後仍保持,但您在重新啟動後必須重新啟動先前「已停止的」服務。

您無需啟用不打算使用的服務。例如,如果將 Messaging Server 實例僅用作郵件傳送代理程式 (MTA),則應停用 POP、IMAP 和 HTTP。如果將它僅用於 POP 服務,則應停用 IMAP 和 HTTP。如果僅將它用於 Web 式的電子郵件,則應停用 POP 和 IMAP。

您可以在伺服器層級啟用或停用服務。此程序在本章進行說明。4.4.2.1 指定可啟動的服務也會說明此程序。您還可以透過設定 LDAP 屬性 mailAllowedServiceAccess,在使用者層級啟用或停用服務。

5.1.2 指定連接埠號

對於每項服務,您可以指定伺服器要用於服務連線的連接埠號:

您可能需要指定預設 (如果有) 以外的連接埠號,例如單一主機上的兩個或多個 IMAP 伺服器實例,或者您使用同一主機作為 IMAP 伺服器和 Messaging Multiplexor 伺服器。(如需有關 Multiplexor 的資訊,請參閱第 7 章, 配置與管理 Multiplexor 服務。)

指定連接埠時,請注意以下內容:

5.1.3 加密通訊的連接埠

Messaging Server 透過使用安全套接層 (SSL) 協定,支援與 IMAP、POP 和 HTTP 用戶端的加密通訊。如需有關在 Messaging Server 中支援 SSL 的一般資訊,請參閱23.5 配置加密和基於憑證的認證

5.1.3.1 經由 SSL 的 IMAP

您可以接受經由 SSL 的 IMAP 預設 (建議的) 連接埠號 (993),或為經由 SSL 的 IMAP 指定其他連接埠。

Messaging Server 提供使用經由 SSL 的 IMAP 和 IMAP 單獨連接埠的選項,因為大多數目前 IMAP 用戶端要求它們使用單獨連接埠。IMAP 和經由 SSL 的 IMAP 二者的相同連接埠通訊是新興的標準;只要 Messaging Server 安裝了 SSL 憑證 (請參閱23.5.1 取得憑證),就可以支援經由 SSL 的相同連接埠 IMAP。

5.1.3.2 經由 SSL 的 POP

POP 的預設個別 SSL 連接埠為 995。其也可使用指令「STLS」經由一般 POP 連接埠啟動 SSL (請參閱5.5 配置 POP 服務)。

5.1.3.3 經由 SSL 的 HTTP

您可以接受經由 SSL 的 HTTP 預設埠號 (443),或為 HTTP 指定單獨連接埠。

5.1.4 服務大標題

用戶端首次連線到某種服務 (例如 IMAP) 時,該服務所顯示的文字字串。此服務大標題 (通常不顯示給用戶端的使用者) 可以識別出伺服器為 Sun Java System Messaging Server,並給出伺服器的版本編號。大標題常用於用戶端除錯或問題隔離。

如果您要將不同的郵件傳送至連線用戶端,則可以置換 POP 或 IMAP 服務的預設大標題。

使用 configutil 公用程式 (service.imap.bannerservice.pop.banner) 來設定服務大標題。如需有關 configutil 的詳細語法資訊,請參閱「Sun Java System Messaging Server 6.3 Administration Reference」

5.2 登入需求

您可以控制讓使用者登入 POP、IMAP 或 HTTP 服務以擷取郵件的方法。您可以允許使用密碼的登入 (針對所有服務) 和使用憑證的登入 (針對 IMAP 或 HTTP 服務)。本小節提供背景資訊;如需進行這些設定的步驟,請參閱5.5 配置 POP 服務5.6 配置 IMAP 服務5.7 配置 HTTP 服務。此外,您還可以指定 POP 登入的有效登入分隔符號。本節包含以下小節:

Procedure設定 POP 用戶端的登入分隔符號

某些郵件用戶端不接受 @ 做為登入分隔符號 (亦即,諸如 uid@domain 位址中的 @)。這些用戶端的範例包括 Netscape Messenger 4.76、Netscape Messenger 6.0 以及 Windows 2000 上的 Microsoft Outlook Express。解決方法如下:

  1. 使用以下指令使 + 成為有效的分隔符號:

    configutil -o service.loginseparator -v "@+"

  2. 告知 POP 用戶端使用者應以 + (而不是 @) 做為登入分隔符號。

5.2.1 允許不使用網域名稱登入

典型的登入要求使用者輸入後接分隔符號和網域名稱的使用者 ID,然後輸入密碼。但是,安裝期間指定的預設網域中的使用者可以不輸入網域名稱或分隔符號就進行登入。

若要允許其他網域的使用者僅透過使用者 ID 登入 (亦即無需使用網域名稱和分隔符號),請將 sasl.default.ldap.searchfordomain 設定為 0。請注意,使用者 ID 在整個目錄樹狀結構中必須是唯一的。如果不唯一,則無法在不使用網域名稱的情況下進行登入。

您可能想要修改使用者登入時必須輸入的屬性。例如,如果您想允許使用者使用電話號碼 (telephoneNumber) 或員工編號 (employeeID) 登入,則請變更由 configutil 參數 sasl.default.ldap.searchfilter 所定義的 LDAP 搜尋。此參數為針對各網域 inetDomainSearchFilter 屬性的全域預設設定,並遵循相同的語法。

請參閱「Sun Java System Messaging Server 6.3 Administration Reference」,以取得有關這些參數的進一步資訊。

5.2.2 使用密碼登入

在典型的郵件傳送安裝中,使用者透過在他們的 POP、IMAP 或 HTTP 郵件用戶端中輸入密碼來存取電子信箱。用戶端會將密碼傳送至伺服器,伺服器將使用此密碼來認證使用者。如果使用者通過認證,伺服器將根據存取控制規則來決定是否允許使用者存取儲存在該伺服器上的特定電子信箱。

如果您允許密碼登入,則使用者可以透過輸入密碼來存取 POP、IMAP 或 HTTP。(基於密碼或 SSL 的登入是 POP 服務的唯一認證方法。)密碼儲存在 LDAP 目錄中。目錄策略決定生效的密碼策略,如最小長度。

如果您不允許 IMAP 或 HTTP 服務的密碼登入,則也不允許基於密碼的認證。然後,系統將要求使用者使用憑證登入,如下節所述。

若要提高 IMAP 和 HTTP 服務的密碼傳輸的安全性,您可以要求在將密碼傳送至伺服器之前,先將其加密。您可以透過為登入選取最小密碼長度要求來完成此作業。

如果將用戶端配置為要求使用長度大於伺服器支援的最大長度的密鑰進行加密,或者將您的伺服器配置為要求使用長度大於用戶端支援的最大長度的密鑰進行加密,則基於密碼的登入將無法實現。如需有關設定伺服器以支援多種密碼和金鑰長度的資訊,請參閱23.5.2 啟用 SSL 和選取密碼算法

5.2.3 使用憑證登入

除了基於密碼的認證之外,Sun Java System 伺服器還支援透過檢查使用者的數位憑證來認證使用者。當用戶端與伺服器建立 SSL 階段作業時,其將提交使用者的憑證,而非密碼。如果憑證被證實,則認為使用者通過認證。

如需有關設定 Messaging Server 以接受基於憑證的使用者登入至 IMAP 或 HTTP 服務之說明,請參閱23.5.3 設定基於憑證的登入

如果已執行設定使用憑證登入所需的作業,則系統會同時支援密碼登入與憑證登入。這樣,如果用戶端建立了 SSL 階段作業並提供憑證,系統將使用憑證登入。如果用戶端未使用 SSL 或未提交用戶端憑證,則將傳送密碼。

5.3 效能參數

您可以為 Messaging Server 的 POP、IMAP 和 HTTP 服務設定某些基本效能參數。根據您的硬體容量和使用者基準,您可以調整這些參數,以取得服務的最高效率。本小節提供背景資訊;如需進行這些設定的步驟,請參閱5.5 配置 POP 服務5.6 配置 IMAP 服務5.7 配置 HTTP 服務。本節包含以下小節:

5.3.1 程序數目

Messaging Server 可在數個執行程序之間分配工作,在某些情況下這可以提高效率。此功能在多處理器伺服器機器中尤其有用,即調整伺服器程序的數目可允許在硬體處理器之間更有效地分發多項工作。

但是在多個程序之間配置工作以及從一個程序切換到其他程序均有效能開銷。具有多個程序的好處是可減小每個新增程序的開銷。大多數配置的簡單首要規則是伺服器機器上的每個硬體處理器有一個程序,最多可以有 4 個程序。您的最佳配置可能與此不同;此首要規則僅應作為您分析的起始點。

備註:在某些平台上,您可能還要增加程序的數目,以避免針對該平台的特定每個程序限制 (如檔案描述元的最大數目),該限制可能會影響效能。

對於 POP、IMAP 或 HTTP 服務,程序的預設數目均為 1。

5.3.2 每個程序的連線數目

您的 POP、IMAP 或 HTTP 服務可以維護的同步用戶端連線越多,對用戶端來說越好。如果由於沒有可用的連線而使用戶端被拒絕服務,則它們必須等待直至其他用戶端中斷連線。

另一方面,每個開啟的連線均會消耗記憶體資源,並在您伺服器機器的 I/O 子系統上發出請求,因此,您可以讓伺服器支援同步階段作業數目的實際限制。(您可以透過增加伺服器記憶體或 I/O 容量來增加此限制。)

IMAP、HTTP 和 POP 在這一點上有不同的需求:


備註 –

如需有關 HTTP 階段作業安全性的更多資訊,請參閱23.2 關於 HTTP 安全性


如此,在特定時刻,對於特定的使用者請求,Messaging Server 可以支援比 POP 連線更多的開啟的 IMAP 或 HTTP 連線。

IMAP 的預設值是 4000;HTTP 的預設值是每個程序 6000 個連線;POP 的預設值是 600。這些值可大體表示一般配置的伺服器機器可以處理的等效請求。您的最佳配置可能與此不同;這些預設僅提供作為一般使用準則之用。

通常,使用中的 POP 連線對伺服器資源和頻寬的要求比使用中的 IMAP 連線之要求高很多,因為 IMAP 連線在大多數時間內是閒置的,而 POP 連線始終在下載郵件。POP 具有較少的階段作業則是正確的。相反,POP 連線僅持續下載電子郵件所需的時間長度,因此使用中的 POP 使用者的連線狀態僅持續一小段時間,而 IMAP 連線在連續的郵件檢查期間一直保持連線狀態。

5.3.3 每個程序的執行緒數目

除支援多個程序外,Messaging Server 還可透過在多個執行緒之間細分工作來進一步提昇效能。伺服器使用執行緒可大大提高執行效率,因為執行中的指令不會阻礙其他指令的執行。在執行期間,系統會依需要建立和銷毀執行緒,直至達到您設定的最大數目。

同步執行的執行緒越多,就意味著系統能夠處理的用戶端請求就越多,而且沒有延遲,因此系統可以快速地為更多用戶端提供服務。但是,在執行緒之間存在派送的效能開銷,因此伺服器可以利用的執行緒數目有實際限制。

對於 POP、IMAP 和 HTTP,最大預設值是每個程序 250 個執行緒。此數目是均等的,儘管 IMAP 和 HTTP 的預設連線數目大於 POP 的預設連線數目。假設使用與 POP 連線 (較少但忙碌) 相同的最大數目的執行緒可以高效地處理更多的 IMAP 和 HTTP 連線。您的最佳配置可能與此不同,但這些預設已足夠高,您可能不需要進行增加;預設應為大多數安裝提供合理的效能。

5.3.4 斷開閒置連線

為了從沒有回應的用戶端回收連線使用的系統資源,IMAP4、POP3 和 HTTP 協定均允許伺服器單方面斷開閒置了特定時間的連線。

各個協定規格均要求伺服器將閒置連線保持開啟一段最短時間。POP、IMAP 和 HTTP 的預設時間分別是 10 分鐘、30 分鐘和 3 分鐘。您可以增加閒置時間,使其大於預設值,但不能使它們低於預設值。

如果 POP 或 IMAP 連線已斷開,使用者必須重新認證才能建立新連線。相反,如果 HTTP 連線已斷開,使用者將無需重新認證,因為 HTTP 階段作業仍保持開啟狀態。如需有關 HTTP 階段作業安全性的更多資訊,請參閱23.2 關於 HTTP 安全性

閒置的 POP 連線通常是因為某些問題 (如當機) 使用戶端無法回應所導致。另一方面,閒置 IMAP 連線是正常現象。為避免 IMAP 使用者被單方面中斷連線,IMAP 用戶端通常會在固定間隔時間 (低於 30 分鐘) 內向 IMAP 伺服器傳送指令。

5.3.5 登出 HTTP 用戶端

HTTP 階段作業可以跨多個連線保持。當連線斷開時,HTTP 用戶端不會登出。但是,如果 HTTP 階段作業閒置了一段指定時間後,伺服器將自動斷開 HTTP 階段作業,且用戶端會登出 (預設時間段是 2 小時)。當階段作業斷開時,用戶端的階段作業 ID 不再有效,用戶端必須重新認證才能建立其他階段作業。如需有關 HTTP 安全性和階段作業 ID 安全性的更多資訊,請參閱23.2 關於 HTTP 安全性

5.4 用戶端存取控制

Messaging Server 包含存取控制功能,可讓您決定哪些用戶端可以存取其 POP、IMAP 或 HTTP 郵件傳送服務 (以及 SMTP 郵件傳送服務)。您可以建立靈活的存取篩選器,這些篩選器可以根據各種準則允許或拒絕對用戶端的存取。

用戶端存取控制是 Messaging Server 的重要安全性功能。如需有關建立用戶端存取控制篩選器及其使用範例的資訊,請參閱23.7 配置對 POP、IMAP 和 HTTP 服務的用戶端存取權23.9 配置對 SMTP 服務的用戶端存取權

5.5 配置 POP 服務

您可以透過使用 configutil 指令來執行 Messaging Server POP 服務的基本配置。本節提供某些較常用的 POP 服務選項。完整清單可在「Sun Java System Messaging Server 6.3 Administration Reference」中的「configutil Parameters」中找到。


備註 –

對於 POP 服務,系統將自動啟用基於密碼的登入。


如需更多資訊,另請參閱:

啟用或停用 POP 服務:

configutil -o service.pop.enable -v [ yes | no ]

指定連接埠號:

configutil -o service.pop.port -v number

若要設定每個程序的網路連線數上限 (請參閱5.3.2 每個程序的連線數目以取得詳細資訊):

configutil -o service.pop.maxsessions -v number

若要設定連線的最長閒置時間 (請參閱5.3.4 斷開閒置連線以取得詳細資訊):

configutil -o service.pop.idletimeout -v number

若要設定每個程序的執行緒數上限 (請參閱5.3.3 每個程序的執行緒數目以取得更多資訊):

configutil -o service.pop.maxthreads -v number

若要設定程序的數目上限 (請參閱5.3.1 程序數目以取得其他資訊):

configutil -o service.pop.numprocesses -v number

啟用經由 SSL 的 POP:


configutil -o service.pop.enablesslport -v 1
configutil -o service.pop.sslport -v 995

如果正確配置了 SSL,則還會支援 TLS。

指定協定的歡迎大標題:

configutil -o service.pop.banner -v banner

5.6 配置 IMAP 服務

您可以透過使用 configutil 指令來執行 Messaging Server IMAP 服務的基本配置。本節列出了某些較常用的 IMAP 服務選項。完整清單可在「Sun Java System Messaging Server 6.3 Administration Reference」中的第 3 章「Messaging Server Configuration」中找到。如需更多資訊,另請參閱:

指令行:您可以在指令行設定 IMAP 屬性的值,方法如下

啟用或停用 IMAP 服務:

configutil -o service.imap.enable -v [ yes | no ]

指定連接埠號:

configutil -o service.imap.port -v number

為經由 SSL 的 IMAP 啟用單獨連接埠:

configutil -o service.imap.enablesslport -v [ yes | no ]

為經由 SSL 的 IMAP 指定連接埠號:

configutil -o service.imap.sslport -v number

啟用或停用 IMAP 服務的密碼登入:

configutil -o service.imap.plaintextmincipher -v value

如果 value 大於 0,則會停用純文字密碼,除非已啟動安全層 (SSL 或 TLS)。此參數會強制使用者對他們的用戶端啟用 SSL 或 TLS 以進行登入,從而防止他們的密碼在網路上暴露。預設值為 0。

若要設定每個程序的網路連線數上限 (請參閱5.3.2 每個程序的連線數目以取得其他資訊):

configutil -o service.imap.maxsessions -v number

若要設定連線的最長閒置時間 (請參閱5.3.4 斷開閒置連線以取得其他資訊):

configutil -o service.imap.idletimeout -v number

若要設定每個程序的執行緒數上限 (請參閱5.3.3 每個程序的執行緒數目):

configutil -o service.imap.maxthreads -v number

若要設定程序的最大數目 (請參閱5.3.1 程序數目):

configutil -o service.imap.numprocesses -v number

指定協定的歡迎大標題:

configutil -o service.imap.banner -v banner

5.6.1 配置 IMAP IDLE

在 RFC 2177 中定義的 IMAP 規格 IMAP IDLE 延伸,可讓 IMAP 伺服器在使用者電子信箱中有新郵件抵達及發生其他更新時,通知郵件用戶端。IMAP IDLE 功能有下列優點:

5.6.1.1 必要條件

IMAP IDLE 功能依賴於事件通知服務 (ENS) 傳遞通知。若要使用 IMAP IDLE,必須配置下列 ENS 元件:

如需有關為 Messaging Server 配置 ENS 的資訊,請參閱「Sun Java System Communications Services Event Notification Service Guide」。

如需有關配置 iBiff 通知外掛程式的資訊,請參閱B.1 在 Messaging Server 上載入 ENS 發佈程式

Procedure配置 IMAP IDLE

  1. 配置 enpd 伺服器僅接受來自執行郵件儲存的主機之連線。

    若要限制與郵件儲存主機的連線,請設定 ENS_ACCESS 環境變數。環境變數會設定允許存取 enpd 的權限清單。語法如下:


    setenv ENS_ACCESS 'allowdeny ipaddress|mask;
    allowdeny ipaddress|mask; ...' 

    其中

    allowdeny

    可以是 + (指定允許) 或 — (指定拒絕)

    ipaddress

    指定帶點的十進位 IP 位址

    mask

    指定帶點的十進位 IP 位址遮罩

    範例:

    下例僅允許存取本地主機:


    setenv ENS_ACCESS '+127.0.0.1|255.255.255.255'

    下例允許存取本地主機和所有 IP 位址 192.168.0.* (192.168.0.17 除外):


    setenv ENS_ACCESS '+192.168.0.1|255.255.255.0;+127.0.0.1|255.255.255.255; \
    -192.168.0.17;255.255.255.255'
  2. 執行 configutil 公用程式以指定 ENS 伺服器執行所在的主機名稱。


    cd msg-svr-base
    ./configutil -o local.store.notifyplugin.enshost -v "ipaddress"

    其中 ipaddress 指定 ENS 主機電腦之帶點的十進位 IP 位址。

    範例︰


    cd msg-svr-base
    ./configutil -o local.store.notifyplugin.enshost -v "127.0.0.1"
  3. 指定要用於通知的事件金鑰。

    如果將 ENS 事件金鑰 (ensEventKey) 設定為預設值,則不會執行 IMAP IDLE。

    您必須將 ensEventKey 值配置為以 %M 結束。字串 %M 是由發生事件的電子信箱名稱所取代的替換碼。

    執行以下 configutil 指令:


    ./configutil -o local.store.notifyplugin.enseventkey -v "eventkey"

    其中 eventkey 是 ENS 使用的唯一識別碼。其預設值為 enp://127.0.0.1/store。事件金鑰的主機名稱部分無法用以判斷 ENS 執行所在的主機;此僅為識別碼的一部分。

    範例︰


    ./configutil -o local.store.notifyplugin.enseventkey -v "enp://127.0.0.1/store/%M"
  4. 載入 libibiff 通知外掛程式檔案,以啟用 Messaging Server 的 ENS 發佈程式。

    執行以下 configutil 指令:


    ./configutil -o local.store.notifyplugin -v "msg-svr-base/lib/libibiff"
  5. 讓通知從所有使用者電子信箱傳送,而不只是收件匣。

    依預設,通知僅會由收件匣中發生的事件產生。但是,IMAP IDLE RFC (2177) 會指定 IDLE 必須在任何電子信箱發生事件時通知用戶端。

    為了符合 RFC,IMAP IDLE 功能需要為所有電子信箱啟用通知。若未啟用,IMAP 伺服器將無法通告 IDLE 功能。

    若要為所有電子信箱配置通知,請將 configutil 指令 noneinbox 設定為值 1:


    ./configutil -o local.store.notifyplugin.noneinbox.enable -v 1

    其中 -v 1 會從所有電子信箱啟用通知。

  6. 停止然後重新啟動 Messaging Server。


    cd msg-svr-base/sbin
    
    ./stop-msg
    
    ./start-msg
  7. 請驗證 IMAP 服務現在是否包含 IDLE 功能。使用 telnet 連線至 IMAP 主機和連接埠。


    telnet IMAP_hostname port
    

    範例︰


    telnet myhost imap
    trying 192.18.01.44 ... 
    connected to myhost.siroe.com
    
    * OK [CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ NAMESPACE UIDPLUS
    CHILDREN BINARY UNSELECT SORT LANGUAGE STARTTLS IDLE XSENDER X-NETSCAPE
    XSERVERINFO X-SUN-SORT X-SUN-IMAP X-ANNOTATEMORE AUTH=PLAIN]
    myhost.siroe.com IMAP4 service (Sun Java(tm) System 
    Messaging Server 6.3-0.05 (built Feb 7 2006))

5.7 配置 HTTP 服務

Messaging Server 支援名為 Messenger Express 和 Communications Express 的 HTTP 郵件用戶端。不同於 POP 和 IMAP 用戶端直接將郵件傳送至 Messaging Server MTA 以進行路由或遞送,HTTP 用戶端會將郵件傳送至名為 Webmail 伺服器 (又稱為 mshttpd 或 Messaging Server http 常駐程式) 的專用 Web 伺服器。根據郵件收件人的位址,Webmail 伺服器會將郵件導入外寄 MTA 以進行路由,或導入使用 IMAP 的其中一個後端郵件儲存。如圖 5–1 所示。請注意,Communications Express 伺服器僅會將請求路由至 Webmail 伺服器,或從 Webmail 伺服器路由請求。

圖 5–1 HTTP 服務元件

此影像說明 Messaging Server 的 HTTP 服務元件。

在舊版中,Webmail 伺服器會直接存取郵件儲存。現在則會透過 IMAP 伺服器存取郵件儲存。此提供數項優點:

在舊版中,MEM 會接收 HTTP 用戶端請求再轉寄至位於後端訊息儲存區的適當 Webmail 伺服器。因此,每台後端伺服器上皆須安裝 mshttpd 副本。現在,Webmail 伺服器可用做接收 HTTP 用戶端電子郵件請求的前端伺服器。此伺服器會將這些請求翻譯為 SMTP 或 IMAP 呼叫,再將這些呼叫轉寄至 MTA 或位於後端郵件儲存上的適當 IMAP 伺服器。如果 Messaging Server 僅供 Web 型電子郵件使用,請確定已啟用 IMAP。

5.7.1 配置 HTTP 服務

許多 HTTP 配置參數與用於 POP 和 IMAP 服務的參數類似。這包含連線設定和程序設定的參數。本節給出了某些較常用的 HTTP 服務選項。完整清單可在「Sun Java System Messaging Server 6.3 Administration Reference」中的「configutil Parameters」中找到。如需更多資訊,另請參閱:

針對使用者存取的每台 IMAP 伺服器,Webmail 伺服器必須知道 IMAP 連接埠、是否使用 SSL,以及使用者登入所用的管理員憑證。執行此項作業的 configutil 參數如下:

local.service.proxy.imapport[.hostname ] — 連線所在的 IMAP 連接埠 (預設值為 143)。

local.service.proxy.imapssl — 啟用 SSL (預設值為 no)。

local.service.proxy.admin[.hostname ] — 管理員 ID。

local.service.proxy.adminpass[.hostname ] — 管理員密碼。

這些密碼可全域設定 (套用到每台 IMAP 後端伺服器),或針對個別 IMAP 後端伺服器設定 (將後端完全合格的網域名稱附加至選項名稱)。

為了使用經由 SSL 的 IMAP,mshttpd 也必須配置為 SSL HTTP 伺服器,且 mshttpd 憑證資料庫必須信任 IMAP 後端的 CA。您必須啟用 service.http.sslusessl。如果執行 IMAP 的後端郵件儲存使用自行簽署憑證 (例如,如 generate-certDB 所建立),則此憑證必須增加至前端 mshttpd 常駐程式伺服器。

請注意,如果未設定 local.service.proxy.admin/pass,將會拒絕登入並出現錯誤「無法使用郵件伺服器。管理員,請查看伺服器記錄以獲得詳細資訊。」且 http 記錄將列出遺失的配置選項。

HTTP 屬性的其他值可以在如下的指令行設定:

若要啟用或停用 HTTP 服務:

configutil -o service.http.enable -v [ yes | no ]

依預設,HTTP 服務會將外寄的 Web 郵件傳送至本地 MTA 以進行路由或遞送。您可能要配置 HTTP 服務以將郵件傳送至遠端 MTA,例如,如果您的網站是託管服務,並且大多數收件者不在本地主機所在的網域中。若要將 Web 郵件傳送至遠端 MTA,您需要指定遠端主機名稱和遠端主機的 SMTP 連接埠號。指定連接埠號:

configutil -o service.http.port -v number

為經由 SSL 的 HTTP 啟用單獨連接埠:

configutil -o service.http.enablesslport -v [ yes | no ]

為經由 SSL 的 HTTP 指定連接埠號:

configutil -o service.http.sslport -v number

若要啟用或停用使用密碼登入:

configutil -o service.http.plaintextmincipher -v value

如果 value 大於 0,則會停用純文字密碼,除非已啟動安全層 (SSL 或 TLS)。此參數會強制使用者對他們的用戶端啟用 SSL 或 TLS 以進行登入,從而防止他們的密碼在網路上暴露。預設值為 0。

若要設定每個程序的網路連線數上限 (如需更多資訊,請參閱5.3.2 每個程序的連線數目):

configutil -o service.http.maxsessions -v number

若要設定連線的最長閒置時間 (如需更多資訊,請參閱5.3.4 斷開閒置連線):

configutil -o service.http.idletimeout -v number

若要設定用戶端階段作業的最長閒置時間 (如需更多資訊,請參閱5.3.5 登出 HTTP 用戶端):

configutil -o service.http.sessiontimeout -v number

若要設定每個程序的執行緒數上限:

configutil -o service.http.maxthreads -v number

若要設定程序的最大數目:

configutil -o service.http.numprocesses -v number

當 HTTP 用戶端建構帶有附件的郵件時,此附件會上載至伺服器並儲存在檔案中。將郵件傳送至 MTA 以進行路由或遞送之前,HTTP 服務會先擷取附件並建構該郵件。您可以接受預設的附件排存目錄,或指定替代目錄。您還可以指定附件所允許的最大大小。若要指定用戶端外寄郵件的附件排存目錄,請使用下列指令。請注意,這包含以 base64 編碼的所有附件,並且 base64 編碼需要 33% 的額外空間。因此,參數中 5 MB 的限制會導致一封郵件和附件的最大大小約為 3.75 MB。

configutil -o service.http.spooldir -v dirpath

指定郵件的最大大小:

configutil -o service.http.maxmessagesize -v size

其中 size 是數字 (以位元組為單位)。請注意,這包含以 base64 編碼的所有附件,並且 base64 編碼需要 33% 的額外空間。因此,參數中 5MB 的限制會導致一封郵件和附件的最大大小約為 3.75M

指定替代 MTA 主機名稱:

configutil -o service.http.smtphost -v hostname

指定替代 MTA 主機名稱的連接埠號:

configutil -o service.http.smtpport -v portnum