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 连接的计算机系统中。
本章介绍如何使用 Sun ONE Console 或命令行实用程序配置服务器,以使其支持一项或多项上述服务。
有关配置简单邮件传输协议 (Simple Mail Transfer Protocol, SMTP) 服务的信息,请参见第 10 章,关于 MTA 服务和配置。
本章包含以下各节:
Messaging Server POP、IMAP 和 HTTP 服务的配置包括启用或禁用服务、指定端口号和修改发送给连接客户端的服务标题(可选)。本节提供了背景信息;有关完成这些设置所需的步骤,请参见配置 POP 服务、配置 IMAP 服务和配置 HTTP 服务。
您可以控制任何特定的 Messaging Server 实例是否提供 POP、IMAP 或 HTTP 服务。这与启动和停止服务不同(请参见启动和停止服务);要使 POP、IMAP 或 HTTP 发挥作用,必须将其启用并启动。
与启动或停止服务相比,启用服务是更为“全局”的过程。例如,启用的设置在系统重新引导后仍然可用,但是在重新引导后,您必须重新启动以前“停止”的服务。
无需启用不准备使用的服务。例如,如果只将 Messaging Server 实例用作邮件传输代理 (MTA),则应该禁用 POP、IMAP 和 HTTP。如果只将其用于 POP 服务,则应该禁用 IMAP 和 HTTP。如果只将其用于基于 Web 的电子邮件,则应该禁用 POP 和 IMAP。
您可以在服务器级别启用或禁用服务。本章介绍了这一过程。指定要启动的服务也对此过程进行了介绍。您还可以通过设置指定的 LDAP 属性 mailAllowedServiceAccess 在用户级别启用或禁用服务。
对于每项服务,您都可以指定服务器用于服务连接的端口号:
如果启用 POP 服务,可以指定服务器用于 POP 连接的端口号。默认端口号为 110。
如果启用 IMAP 服务,可以指定服务器用于 IMAP 连接的端口号。默认端口号为 143。
如果启用 HTTP 服务,可以指定服务器用于 HTTP 连接的端口号。默认端口号为 80。
有时可能需要指定不同于默认值的端口号,例如,如果一台主机计算机中有两个或多个 IMAP 服务器实例,或者同一主机计算机既用作 IMAP 服务器又用作 Messaging Multiplexor 服务器。(有关 Multiplexor 的信息,请参见第 7 章,配置和管理多路复用器服务。)
指定端口时请注意以下两点:
端口号可以是 1 到 65535 之间的任何数字。
确保所选择的端口未被使用或未为其他服务所保留。
Messaging Server 支持使用安全套接字层 (SSL) 协议与 IMAP、POP 和 HTTP 客户机进行加密通信。有关 Messaging Server 支持 SSL 的一般信息,请参见配置加密和基于证书的验证。
您可以接受默认(建议)的基于 SSL 的 IMAP 端口号 (993),也可为基于 SSL 的 IMAP 指定其他端口。
由于大多数当前 IMAP 客户机要求使用单独的端口,因此 Messaging Server 提供了使用单独的 IMAP 端口和基于 SSL 的 IMAP 端口这一选项。在同一端口上既使用 IMAP 又使用基于 SSL 的 IMAP 进行通信是刚刚出现的标准;只要 Messaging Server 已安装 SSL 证书(请参见通过管理控制台获得证书),Messaging Server 便可以支持在同一端口上使用基于 SSL 的 IMAP。
默认的基于 SSL 的单个 POP 端口为 995。您也可以使用命令 "STLS" 启动基于 SSL 的普通 POP 端口(请参见配置 POP 服务)。
您可以接受默认的基于 SSL 的 HTTP 端口号 (443),也可以为 HTTPS 指定其他端口。
客户机首次连接到 Messaging Server POP 或 IMAP 端口时,服务器将向该客户机发送标识文本字符串。此服务标题(通常不向客户端用户显示)将服务器标识为 Sun Java System Messaging Server,并给出服务器的版本号。此标题主要用于客户机调试或问题隔离。
如果要向连接的客户机发送其他消息,则可以替换 POP 或 IMAP 服务的默认标题。
您可以使用 Sun ONE Console 或 configutil 实用程序 (service.imap.banner, service.pop.banner) 来设置服务标题。有关 configutil 的详细语法信息,请参见 《Sun Java System Messaging Server 6 2005Q4 Administration Reference》。
您可以控制允许用户登录到 POP、IMAP 或 HTTP 服务以检索邮件的方式。可以允许基于密码的登录(适用于所有服务)和基于证书的登录(适用于 IMAP 或 HTTP 服务)。此部分提供了背景信息;有关完成这些设置所需的步骤,请参见配置 POP 服务、配置 IMAP 服务或配置 HTTP 服务。此外,您可以指定用于 POP 登录的有效登录分隔符。
某些邮件客户端不接受 @ 作为 登录分隔符(即,类似 uid@domain 地址中的 @)。这些客户机包括 Netscape Messenger 4.76、Netscape Messenger 6.0 和 Windows 2000 中的 Microsoft Outlook Express。解决方法如下:
典型登录需要用户输入用户 ID,后跟分隔符和域名,然后是密码。但是,在安装过程中指定的默认域中的用户可以直接登录,而不必输入域名或分隔符。
要允许其他域的用户只输入用户 ID 即可登录(即无需使用域名和分隔符),请将 sasl.default.ldap.searchfordomain 设置为 0。请注意,用户 ID 对整个目录树而言必须是唯一的。如果不唯一,则不使用域名登录将无法工作。
您可能希望修改用户登录时必须输入的属性。例如,如果要允许用户使用电话号码 (telephoneNumber) 或员工编号 (employeeID) 登录,请更改由 configutil 参数 sasl.default.ldap.searchfilter 定义的 LDAP 搜索。此参数是基于域的属性 inetdomainsearchfilter 的全局默认设置,并且使用与该属性相同的语法。
有关这些参数的详细信息,请参阅 《Sun Java System Messaging Server 6 2005Q4 Administration Reference》。
在典型的邮件服务安装中,用户通过在其 POP、IMAP 或 HTTP 邮箱客户机中输入密码来访问邮箱。。客户机将密码发送给服务器,服务器使用该密码来验证用户。对用户进行验证后,服务器将根据访问控制规则来决定是否授权用户访问存储在该服务器中的特定邮箱。
如果允许密码登录,用户可以通过输入密码访问 POP、IMAP 或 HTTP。(基于密码或基于 SSL 的登录是用于 POP 服务的唯一验证方法。)密码存储在 LDAP 目录中。目录策略将决定有效的密码策略(例如最小长度)。
如果不允许对 IMAP 或 HTTP 服务进行密码登录,则不允许基于密码的验证。这时要求用户使用基于证书的登录(如下节所述)。
为了增加 IMAP 和 HTTP 服务的密码传输的安全性,您可以要求在将密码发送给服务器之前先对其加密。您可以通过选择用于登录的最小加密算法长度要求进行此操作。
如果选择 0,则不要求加密。密码以不加密形式发送,或根据客户机策略对其加密。
如果选择非零值,则客户端将与服务器建立 SSL 会话(使用其密钥长度不小于指 定值的加密算法),从而加密客户端发送的所有 IMAP 或 HTTP 用户密码。
如果将客户机配置为要求加密的密钥长度大于服务器支持的最大长度,或者将服务器配置为要求加密的密钥长度大于客户机支持的长度,则无法进行基于密码的登录。有关设置服务器以支持各种加密算法和密钥长度的信息,请参见启用 SSL 并选择加密算法的步骤。
除了基于密码的验证之外,Sun Java System 服务器还支持通过检查用户的数字证书对其进行验证。客户端与服务器建立 SSL 会话时将提供用户的证书而不是密码。如果证书有效,则认为用户经过验证。
有关设置 Messaging Server 以使基于证书的用户可以登录到 IMAP 或 HTTP 服务的说明,请参见设置基于证书的登录的步骤。
要启用基于证书的登录,无需取消选中 IMAP 系统或 HTTP 系统表单中的“允许密码登录”框。如果选择了此框(默认状态),并且已执行设置基于证书的登录所需的任务,将同时支持基于密码和基于证书的登录。这时,如果客户机建立 SSL 会话并提供证书,将使用基于证书的登录。如果客户机不使用 SSL 或不提供客户机证书,它将发送密码。
您可以为 Messaging Server 的 POP、IMAP 和 HTTP 服务设置一些基本性能参数。您可以根据硬件能力和用户基础调整这些参数,以达到最大服务效率。本节提供了背景信息;有关完成这些设置所需的步骤,请参见配置 POP 服务、配置 IMAP 服务 或 配置 HTTP 服务。
Messaging Server 可以将工作分为若干个执行进程,在某些情况下这可以提高效率。此功能对于多个处理器的服务器计算机尤其有用,这时调整服务器进程的数量可以将多个任务更有效率地分发给各个硬件处理器。
但是,将任务分配给多个进程以及从一个进程切换到另一个进程时,也会有性能开销。每添加一个新进程,具有多个进程的优势都将减少。对于大多数配置,简单的经验规则是使服务器计算机的每个硬件处理器中有一个进程,最多不超过 4 个进程。最佳配置可能会因情况而异;此经验法则只作为您自己进行分析时的出发点。
注释:在某些平台中,可能需要增加进程数量,以解决该平台特有的对每个进程的特定限制(例如文件描述符的最大数量),这可能会影响性能。
对于 POP、IMAP 或 HTTP 服务,默认的进程数量为每项服务 1 个。
POP、IMAP 或 HTTP 服务可以维持的同时进行的客户机连接越多,对客户机就越有利。如果客户机由于无可用连接而被拒绝服务,则必需等到其他客户机断开连接。
另一方面,每个打开的连接都要消耗内存资源,并需要使用服务器计算机的 I/O 子系统,因此对于服务器所能支持的同时进行的会话数量是有实际限制的。(您可以通过增加服务器内存或 I/O 容量来放宽此限制。)
IMAP、HTTP 和 POP 在这方面有不同的需求:
与 POP 和 HTTP 连接相比,IMAP 连接的时间通常比较长。用户连接到 IMAP 下载邮件时,连接通常会持续到用户退出或连接超时为止。相反,对 POP 或 HTTP 请求进行服务后,POP 或 HTTP 连接通常就关闭了。
IMAP 和 HTTP 连接通常比 POP 连接效率更高。每次进行 POP 重新连接时,都要求重新验证用户。相反,IMAP 连接仅要求一次验证,因为在 IMAP 会话期间(从登录到注销)连接将保持打开状态。HTTP 连接较短暂,但是用户无需在每次连接时重新验证,因为每次 HTTP 会话(从登录到注销)允许多个连接。因此,POP 连接比 IMAP 或 HTTP 连接需要更多的性能开销。Messaging Server 尤其如此,通过打开但闲置 IMAP 连接以及通过多个 HTTP 连接,Messaging Server 被设计为要求非常低的开销。
有关 HTTP 会话安全性的更多信息,请参见关于 HTTP 安全性。
因此,在特定时间,对于特定的用户需求,Messaging Server 可以支持的打开的 IMAP 或 HTTP 连接比 POP 连接多很多。
对于 IMAP,默认值是每个进程 4000 个连接;对于 HTTP,默认值是每个进程 6000 个连接;对于 POP,默认值是 600。这些默认值大致代表典型配置的服务器计算机所能处理的等量需求。最佳配置可能会因情况而异;这些默认值仅作为一般准则。
通常情况下,与活动的 IMAP 连接比较,活动的 POP 连接对服务器资源和带宽的需求更大,这是因为 IMAP 连接多数时间都处于空闲状态,而 POP 连接在不断地下载邮件。拥有较少数量的 POP 会话是正确的。相反,POP 连接的持续时间仅仅是其下载电子邮件所用的时间,因此活动的 POP 用户仅连接了很短的时间,而 IMAP 连接在连续邮件检查期间将保持连接状态。
除了支持多个进程,Messaging Server 还通过将工作细分给多个线程来进一步提高性能。服务器使用线程极大地提高了执行效率,因为执行中的命令不会妨碍其他命令的执行。可以根据执行过程中的需要创建和删除线程,多达所设置的最大数量。
具有更多的同时执行的线程意味着可以在没有延迟的情况下处理更多的客户机请求,以便为更多的客户机提供快速服务。但是,在线程间分发任务也有性能开销,因此对于服务器可以使用的线程数量有实际限制。
对于 POP、IMAP 和 HTTP,默认的最大值为每个进程 250 个线程。尽管 IMAP 和 HTTP 的默认连接数量大于 POP 的默认连接数量,但默认线程数量相等。我们假定,使用与较少但更忙碌的 POP 连接相同的最大线程数量能够高效处理较多的 IMAP 和 HTTP 连接。最佳配置可能因情况而异,但是这些默认值已经足够大,您不大可能需要增加这些值;默认值应该可以为大多数安装提供合理的性能。
为了收回无响应客户机的连接所使用的系统资源,IMAP4、POP3 和 HTTP 协议允许服务器单方面切断已空闲特定时间的连接。
各个协议规范要求服务器在某个最小时间内将空闲连接保持打开状态。对于 POP,默认时间是 10 分钟,对于 IMAP,默认时间是 30 分钟,对于 HTTP,默认时间是 3 分钟。您可以在默认值基础上增加空闲时间,但不能缩短默认时间。
如果切断 POP 或 IMAP 连接,用户必须重新验证才能建立新连接。相反,如果切断 HTTP 连接,用户无需重新验证,因为 HTTP 会话将保持打开状态。有关 HTTP 会话安全性的更多信息,请参见关于 HTTP 安全性。
空闲的 POP 连接通常是由于出现某个问题(例如崩溃或挂起)致使客户机无法响应而造成的。空闲的 IMAP 连接则属于正常情况。为了避免 IMAP 用户被单方面断开连接,IMAP 客户机通常在小于 30 分钟的某个时间间隔内向 IMAP 服务器定期发送命令。
HTTP 会话可以持续多个连接。切断连接后并不注销 HTTP 客户机。但是,如果 HTTP 会话保持空闲的时间达到指定的时间段,服务器将自动断开 HTTP 会话并注销客户机(默认时间段是 2 小时)。切断会话后,客户端的会话 ID 将无效,客户端必须重新验证才能建立其他会话。有关 HTTP 安全性和会话 ID 的更多信息,请参见关于 HTTP 安全性。
Messaging Server 包含访问控制功能,使您可以决定哪些客户机可以访问 POP、IMAP 或 HTTP 邮件服务(以及 SMTP)。您可以基于多种标准创建灵活的访问过滤器,以允许或拒绝对客户机的访问。
客户端访问控制是 Messaging Server 重要的安全保护功能。有关创建客户端访问控制过滤器的信息及其使用示例,请参见配置客户端对 POP、IMAP 和 HTTP 服务的访问和配置客户机对 SMTP 服务的访问。
您可以通过使用 configutil 命令或 Sun ONE Console 对 Messaging Server POP 服务执行基本配置。本章介绍了一些比较常用的 POP 服务选项。在 《Sun Java System Messaging Server 6 2005Q4 Administration Reference》中的“configutil Parameters” 中可以查看完整的列表。
有关详细信息,另请参见:
从 Sun ONE Console 中打开要配置的 Messaging Server。
单击“配置”选项卡并打开左窗格中的“服务”文件夹。
选择 "POP"。
在右窗格中单击“系统”选项卡。
要启用服务,请选中标有“启用端口处的 POP 服务”的框,然后指定端口号。
指定以下连接设置:
指定以下进程设置:
如果需要,在 POP 服务标题字段中指定服务标题。
单击“保存”。
对于 POP 服务,将自动启用基于密码的登录。
命令行。您可以按照以下方法在命令行中设置 POP 属性的值:
启用或禁用 POP 服务:
configutil -o service.pop.enable -v [ yes | no ]
指定端口号:
configutil -o service.pop.port -v number
设置每个进程的最大网络连接数量:
configutil -o service.pop.maxsessions -v number
设置连接的最大空闲时间:
configutil -o service.pop.idletimeout -v number
设置每个进程的最大线程数量:
configutil -o service.pop.maxthreads -v number
设置最大进程数量:
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
您可以使用 configutil 命令或 Sun ONE Console 对 Messaging Server IMAP 服务进行基本配置。本节介绍了一些比较常用的 IMAP 服务选项。在 《Sun Java System Messaging Server 6 2005Q4 Administration Reference》中的第 3 章 “Messaging Server Configuration” 中可以查看完整的列表。有关详细信息,另请参见:
从 Sun ONE Console 中打开要配置的 Messaging Server。
单击“配置”选项卡并打开左窗格中的“服务”文件夹。
选择 "IMAP"。
在右窗格中单击“系统”选项卡。
要启用该服务,请选中标有“启用端口处的 IMAP 服务”的框,然后指定端口号。
如果需要,启用基于密码的登录。
指定以下连接设置:
指定以下进程设置:
如果需要,在 IMAP 服务标题字段中指定服务标题。
单击“保存”。
命令行:您可以按照以下方法在命令行中设置 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 是以下值之一:
-1—禁用密码登录
0—启用密码登录而不进行加密
40—启用密码登录并指定加密程度
128—启用密码登录并指定加密程度
设置每个进程的最大网络连接数量:
configutil -o service.imap.maxsessions -v number
设置连接的最大空闲时间:
configutil -o service.imap.idletimeout -v number
设置每个进程的最大线程数量:
configutil -o service.imap.maxthreads -v number
设置最大进程数量:
configutil -o service.imap.numprocesses -v number
指定协议欢迎标题:
configutil -o service.imap.banner -v banner
POP 和 IMAP 客户机将邮件直接发送给 Messaging Server MTA,以进行路由或传送。相反,HTTP 客户机将邮件发送给专用的 Web Server,Web Server 是 Messaging Server 的一部分。HTTP 服务随后将邮件发送给本地 MTA 或远程 MTA,以便进行路由或传送,如图 5–1 所示。如果 Messaging Server 仅用于基于 Web 的电子邮件,请禁用 POP 和 IMAP。
许多 HTTP 配置参数都与 POP 和 IMAP 服务的可用参数相类似。其中包括用于连接设置和进程设置的参数。本节介绍了一些比较常用的 HTTP 服务选项。在 《Sun Java System Messaging Server 6 2005Q4 Administration Reference》中的“configutil Parameters” 中可以查看完整的列表。有关详细信息,另请参见:
某些参数是 HTTP 服务特有的;其中包括邮件设置参数和 MTA 设置参数。
邮件设置—如果 HTTP 客户端构造带有附件的邮件时,则附件将被上载到服务器并存储在文件中。在将邮件发送给 MTA 进行路由或传送之前,HTTP 服务将检索附件并构建邮件。您可以接受默认的附件假脱机目录,也可以指定替换目录。您还可以指定允许的附件最大大小。
MTA 设置—默认情况下,HTTP 服务将传出 Web 邮件发送到本地 MTA ,以进行路由或传送。您可能希望把 HTTP 服务配置为将邮件发送给远程 MTA,例如,如果您的站点提供托管服务并且大部分收件人不在与本地主机计算机相同的域中。要将 Web 邮件发送给远程 MTA,您需要指定远程主机名称和远程主机的 SMTP 端口号。
从 Sun ONE Console 中打开要配置的 Messaging Server。
单击“配置”选项卡并打开左窗格中的“服务”文件夹。
选择 "HTTP"。
在右窗格中单击“系统”选项卡。
设置每个进程的最大网络连接数量。有关更多信息,请参见每个进程的连接数量。
设置连接的最大空闲时间。有关更多信息,请参见切断空闲连接。
设置客户机会话的最大空闲时间。有关更多信息,请参见注销 HTTP 客户机。
指定以下邮件设置:
如果需要,指定附件假脱机目录。
如果需要,指定最大外发邮件大小。请注意,这包括以 base64 编码的所有附件,而 base64 编码要求 33% 的额外空间。因此,控制台中 5 兆字节的限制将导致邮件和附件的最大大小为 3.75 M 左右。
HTTP 客户机构建带有附件的邮件时,附件被上载到服务器并存储在文件中。在将邮件发送给 MTA 进行路由或传送之前,HTTP 服务将检索附件并构建邮件。您可以接受默认的附件假脱机目录,也可以指定替换目录。您还可以指定允许的附件最大大小。
指定以下 MTA 设置:
如果需要,指定替换的 MTA 主机名。
如果需要,指定替换的 MTA 端口。
默认情况下,HTTP 服务将外发 Web 邮件发送给本地 MTA,以进行路由或传送。您可能希望把 HTTP 服务配置为将邮件发送给远程 MTA,例如,如果您的站点提供托管服务并且大部分收件人不在与本地主机计算机相同的域中。要将 Web 邮件发送给远程 MTA,您需要指定远程主机名称和远程主机的 SMTP 端口号。
单击“保存”。
命令行。您可以按照如下所示在命令行中设置 HTTP 属性的值:
启用或禁用 HTTP 服务:
configutil -o service.http.enable -v [ yes | no ]
指定端口号:
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 是以下值之一:
-1—禁用密码登录
0—启用密码登录而不进行加密
40—启用密码登录并指定加密程度
128—启用密码登录并指定加密程度
设置每个进程的最大网络连接数量:
configutil -o service.http.maxsessions -v number
设置连接的最大空闲时间:
configutil -o service.http.idletimeout -v number
设置客户机会话的最大空闲时间:
configutil -o service.http.sessiontimeout -v number
设置每个进程的最大线程数量:
configutil -o service.http.maxthreads -v number
设置最大进程数量:
configutil -o service.http.numprocesses -v number
指定客户机外发邮件的附件假脱机目录:
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 主机名指定端口号: