Sun Java System Messaging Server 6.3 管理指南

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))