Sun Java System Messaging Server 6.3 管理指南

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