Sun Java System Messaging Server 6.3 管理指南

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

Messaging Server 支持客户端使用邮局协议 3 (Post Office Protocol 3, POP3)、Internet 邮件访问协议 4 (Internet Mail Access Protocol 4, IMAP4) 和超文本传输协议 (HyperText Transfer Protocol, HTTP) 访问邮箱。IMAP 和 POP 都是 Internet 标准邮箱协议。Messenger Express 是启用了 Web 的电子邮件程序,它使最终用户可以使用浏览器访问其邮箱,其中的浏览器是运行在使用 HTTP 与 Internet 连接的计算机系统中。

本章介绍如何使用命令行实用程序配置服务器,以使其支持一项或多项上述服务。

有关配置简单邮件传输协议 ( Simple Mail Transfer Protocol, 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 实例用作邮件传输代理 (Message Transfer Agent, 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 章,配置和管理多路复用器服务。)

指定端口时请注意以下两点:

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 指定其他端口。

由于大多数当前 IMAP 客户端要求使用单独的端口,因此 Messaging Server 提供了使用单独的 IMAP 端口和基于 SSL 的 IMAP 端口这一选项。在同一端口上既使用 IMAP 又使用基于 SSL 的 IMAP 进行通信是刚刚出现的标准;只要 Messaging Server 已安装 SSL 证书(请参见23.5.1 获得证书),Messaging Server 便可以支持在同一端口上使用基于 SSL 的 IMAP。

5.1.3.2 基于 SSL 的 POP

默认的基于 SSL 的单独 POP 端口为 995。您也可以使用命令 "STLS" 启动基于 SSL 的普通 POP 端口(请参见5.5 配置 POP 服务)。

5.1.3.3 基于 SSL 的 HTTP

您可以接受默认的基于 SSL 的 HTTP 端口号 (443),也可以为 HTTPS 指定其他端口。

5.1.4 服务标题

客户端首次连接到 Messaging Server POP 或 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 可以支持的打开的 IMAP 或 HTTP 连接比 POP 连接多很多。

对于 IMAP,默认值是每个进程 4000 个连接;对于 HTTP,默认值是每个进程 6000 个连接;对于 POP,默认值是 600。这些默认值大致代表典型配置的服务器计算机所能处理的等量需求。最佳配置可能会因情况而异;这些默认值仅作为一般准则。

通常情况下,与活动的 IMAP 连接比较,活动的 POP 连接对服务器资源和带宽的需求更大,这是因为 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,默认时间是 10 分钟,对于 IMAP,默认时间是 30 分钟,对于 HTTP,默认时间是 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

IMAP 规范的 IMAP IDLE 扩展(在 RFC 2177 中定义) 允许 IMAP 服务器在新邮件到达时和在用户邮箱中进行其他更新时通知邮件客户端。IMAP IDLE 功能具有以下优点:

5.6.1.1 先决条件

IMAP IDLE 功能依赖于事件通知服务 (Event Notification Service, ENS) 来传播通知。要使用 IMAP IDLE,您必须配置以下 ENS 组件:

有关为 Messaging Server 配置 ENS 的信息,请参见Sun Java System Communications Services Event Notification Service Guide

有关配置 IBiff 通知插件的信息,请参见B.1 在 Messaging Server 中装入 ENS Publisher

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

5.7 配置 HTTP 服务

Messaging Server 支持名为 Messenger Express 和 Communications Express 的 HTTP 邮件客户端。POP 和 IMAP 客户端将邮件直接发送到 Messaging Server MTA 以便进行路由或传送;而 HTTP 客户端将邮件发送到名为 Webmail Server (也称为 mshttpd 或 Messaging Server http 守护进程)的专用 Web 服务器。根据邮件的发送地址,Webmail Server 将邮件定向到出站 MTA 以进行路由,或者定向到使用 IMAP 的一个后端消息存储。如图 5–1 所示。请注意,Communications Express Server 只路由来自或发送到 Webmail Server 的请求。

图 5–1 HTTP 服务组件

此图说明了 Messaging Server 的 HTTP 服务组件。

在以前的版本中,Webmail Server 直接访问消息存储。现在,它通过 IMAP 服务器访问消息存储。这具有很多优点:

在以前的版本中,MEM 接收 HTTP 客户端请求,并将其转发到后端消息存储上的相应 Webmail Server。因此,必须在每个后端服务器上安装 mshttpd 副本。现在,Webmail Server 用作接收 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 Server 需要了解 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 日志将列出缺少的配置选项。

您可以在命令行中按如下方式设置 IMAP 属性的其他值:

启用或禁用 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 兆字节的限制将导致邮件和附件的最大大小为 3.75 兆字节左右。

configutil -o service.http.spooldir -v dirpath

指定最大邮件大小:

configutil -o service.http.maxmessagesize -v size

其中 size 为字节数。请注意,这包括以 base64 编码的所有附件,而 base64 编码要求 33% 的额外空间。因此,参数中 5 兆字节的限制将导致邮件和附件的最大大小为 3.75 M 左右。

指定替换的 MTA 主机名:

configutil -o service.http.smtphost -v hostname

为替换 MTA 主机名指定端口号:

configutil -o service.http.smtpport -v portnum