Sun Java System Messaging Server 6.3 管理指南

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