Sun Java System Messaging Server 6.3 管理指南

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 Publisher。

    运行以下 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))