... h1. Configuring POP, IMAP, and HTTP Services
Messaging Server supports the Post Office Protocol 3 (POP3), the Internet Mail Access Protocol 4 (IMAP4), and the HyperText Transfer Protocol (HTTP) for client access to mailboxes. IMAP and POP are both Internet-standard mailbox protocols. Messenger Express, a web-enabled electronic mail program, lets end users access their mailboxes using a browser running on an Internet-connected computer system using HTTP.
{info:title=Note} Starting with Messaging Server 7, the Messenger Express client interface has been removed. The HTTP (Webmail) service is still used by the Communications Express and Convergence interfaces to access user email from the message store. {info}
This information describes how to configure your server to support one or more of these services by using command-line utilities.
Topics:
{toc:minLevel=2|maxLevel=2}
h2. General Configuration
Configuring the general features of the Messaging Server POP, IMAP, and HTTP services includes enabling or disabling the services, assigning port numbers, and optionally modifying service banners sent to connecting clients. This section provides background information. For the steps you follow to make these settings, see [#To Configure POP Services], [#To Configure IMAP Services] and [#To Configure HTTP Services].
This section consists of the following subsections:
{toc-zone:minLevel=3|maxLevel=3|location=top|type=list}
h3. Enabling and Disabling Services
You can control whether any particular instance of Messaging Server makes its POP, IMAP, or HTTP service available for use. This is not the same as starting and stopping services (see [Starting and Stopping Services|Configuring General Messaging Capabilities#Starting and Stopping Services]). To function, POP, IMAP, or HTTP must be both enabled and started.
Enabling a service is a more "global" process than starting or stopping a service. For example, the Enable setting persists across system reboots, whereas you must restart a previously "stopped" service after a reboot.
There is no need to enable services that you do not plan to use. For example, if a Messaging Server instance is used only as a Mail Transfer Agent (MTA), you should disable POP, IMAP, and HTTP services. If a Messaging Server instance is used only for POP services, you should disable IMAP and HTTP. If a Messaging Server instance is used only for web-based email, you should disable both POP and IMAP.
You can enable or disable services at the server level. This process is described in this chapter. [To Specify What Services Can Be Started|Configuring General Messaging Capabilities#To Specify What Services Can Be Started] also describes this process. You can also enable or disable services at the user level by setting the LDAP attribute {{mailAllowedServiceAccess}}.
h3. Specifying Port Numbers
For each service, you can specify the port number that the server is to use for service connections: * If you enable the POP service, you can specify the port number that the server is to use for POP connections. The default is 110. * If you enable the IMAP service, you can specify the port number that the server is to use for IMAP connections. The default is 143. * If you enable the HTTP service, you can specify the port number that the server is to use for HTTP connections. The default is 8990.
You might need to specify a port number other than the default if you have, for example, two or more IMAP server instances on a single host machine, or if you are using the same host machine as both an IMAP server and a Messaging Multiplexor server. (For information about the Multiplexor, see [Configuring and Administering Multiplexor Services].
Keep the following in mind when you specify a port: * Port numbers can be any number from 1 to 65535. * Make sure the port you choose isn't already in use or reserved for another service.{anchor:bgadu}
h3. Ports for Encrypted Communications
Messaging Server supports encrypted communications with IMAP, POP and HTTP clients by using the Secure Sockets Layer (SSL) protocol. For general information on support for SSL in Messaging Server, see [Configuring Encryption and Certificate-Based Authentication].
h4. IMAP Over SSL
You can accept the default (recommended) IMAP over SSL port number (993) or you can specify a different port for IMAP over SSL.
Messaging Server provides the option of using separate ports for IMAP and IMAP over SSL because most current IMAP clients require separate ports for them. Same-port communication with both IMAP and IMAP over SSL is an emerging standard; as long as your Messaging Server has an installed SSL certificate (see [Obtaining Certificates|Configuring Encryption and Certificate-Based Authentication#Obtaining Certificates]), it can support same-port IMAP over SSL.
h4. POP Over SSL
The default separate SSL port for POP is 995. One can also initiate SSL over normal POP port with the command "STLS" (see [#To Configure POP Services]).
h4. HTTP Over SSL
You can accept the default HTTP over SSL port number (8991) or you can specify a different port for HTTPS.
h3. Service Banner
When a client first connects to the Messaging Server POP or IMAP port, the server sends an identifying text string to the client. This service banner (not normally displayed to the client's user) identifies the server as Sun Java System Messaging Server, and gives the server's version number. The banner is most typically used for client debugging or problem-isolation purposes.
You can replace the default banner for the POP or IMAP service if you want a different message sent to connecting clients.
Use the {{configutil}} utility and the ({{service.pop.banner}}) parameter to set service banners. For detailed syntax information about {{configutil}}, see [Messaging Server Configuration].
{toc-zone}
h2. Login Requirements
You can control how users are permitted to log in to the POP, IMAP, or HTTP service to retrieve mail. You can allow password-based login (for all services), and certificate-based login (for IMAP or HTTP services). This section provides background information. For the steps you follow to make these settings, see [#To Configure POP Services], [#To Configure IMAP Services] or [#To Configure HTTP Services]. In addition, you can specify the valid login separator for POP logins. This section consists of the following subsections:
{toc-zone:minLevel=3|maxLevel=3|location=top|type=list}
h3. To Set the Separator for POP Clients
Some mail clients will not accept {{@}} as the login separator (that is, the {{@}} in an address like {{uid@domain}}). Examples of these clients are Netscape Messenger 4.76, Netscape Messenger 6.0, and Microsoft Outlook Express on Windows 2000. The workaround is as follows:
# Make {{+}} a valid separator with the following command: {{configutil -o}} {{service.loginseparator -v "@+"}} # Inform POP client users that they should login with {{+}} as the login separator, not {{@}}.
h3. To Allow Log In without Using the Domain Name
A typical login involves the user entering a user ID followed by a separator and the domain name and then the password. Users in the default domain specified during installation, however, can log in without entering a domain name or separator.
To allow users of other domains to log in with just the user ID (that is, without having to use the domain name and separator) set {{sasl.default.ldap.searchfordomain}} to *{{0}}*. The user ID must be unique to the entire directory tree. If it is not unique, logging in without the domain name will not work.
You might want to modify the attribute that user must enter to log in. For example, to allow the user to log in with a phone number ({{telephoneNumber}}) or employee number ({{employeeID}}), change the LDAP search defined by the {{configutil}} parameter {{sasl.default.ldap.searchfilter}}. This parameter is a global default setting for the {{inetDomainSearchFilter}} per-domain attribute and follows the same syntax.
Refer to the [Messaging Server Configuration] for further information on these parameters.
h3. Password-Based Login
In typical messaging installations, users access their mailboxes by entering a password into their POP, IMAP, or HTTP mail client. The client sends the password to the server, which uses it to authenticate the user. If the user is authenticated, the server decides, based on access-control rules, whether or not to grant the user access to certain mailboxes stored on that server.
If you allow password login, users can access POP, IMAP, or HTTP by entering a password. (Password- or SSL-based login is the only authentication method for POP services.) Passwords are stored in an LDAP directory. Directory policies determine what password policies, such as minimum length, are in effect.
If you disallow password login for IMAP or HTTP services, password-based authentication is not permitted. Users are then required to use certificate-based login, as described in the next section.
To increase the security of password transmission for IMAP and HTTP services, you can require that passwords be encrypted before they are sent to your server. You do this by selecting a minimum cipher-length requirement for login.
* If you choose 0, you do not require encryption. Passwords are sent in the clear or they are encrypted, depending on client policy. * If you choose a nonzero value, the client must establish an SSL session with the server by using a cipher whose key length is at least the value you specify, thus encrypting any IMAP or HTTP user passwords the client sends.
If the client is configured to require encryption with key lengths greater than the maximum your server supports, or if your server is configured to require encryption with key lengths greater than what the client supports, password-based login cannot occur. For information on setting up your server to support various ciphers and key lengths, see [To Enable SSL and Selecting Ciphers|Configuring Encryption and Certificate-Based Authentication#To Enable SSL and Selecting Ciphers].
h3. Certificate-Based Login
In addition to password-based authentication, Sun Java System servers support the authentication of users through examination of their digital certificates. Instead of presenting a password, the client presents the user's certificate when it establishes an SSL session with the server. If the certificate is validated, the user is considered authenticated.
For instructions on setting up Messaging Server to accept certificate-based user login to the IMAP or HTTP service, see [To Set Up Certificate-Based Login|Configuring Encryption and Certificate-Based Authentication#To Set Up Certificate-Based Login].
If you have performed the tasks required to set up certificate-based login, both password-based and certificate-based login are supported. Then, if the client establishes an SSL session and supplies a certificate, certificate-based login is used. If the client does not use SSL or does not present a client certificate, it sends a password instead.
{toc-zone}
h2. Performance Parameters
You can set some of the basic performance parameters for the POP, IMAP, and HTTP services of Messaging Server. Based on your hardware capacity and your user base, you can adjust these parameters for maximum efficiency of service. This section provides background information. For the steps you follow to make these settings, see [#To Configure POP Services], [#To Configure IMAP Services] or [#To Configure HTTP Services].
This section consists of the following subsections:
{toc-zone:minLevel=3|maxLevel=3|location=top|type=list}
h3. Number of Processes
Messaging Server can divide its work among several executing processes, which in some cases can increase efficiency. This capability is especially useful with multiprocessor server machines, in which adjusting the number of server processes can allow more efficient distribution of multiple tasks among the hardware processors.
There is a performance overhead, however, in allocating tasks among multiple processes and in switching from one process to another. The advantage of having multiple processes diminishes with each new one added. A simple rule of thumb for most configurations is to have one process per hardware processor on your server machine, up to a maximum of perhaps four processes. Your optimum configuration might be different. This rule of thumb is meant only as a starting point for your own analysis.
{info:title=Note}On some platforms you might also want to increase the number of processes to get around certain per-process limits (such as the maximum number of file descriptors), specific to that platform, that might affect performance. The default number of processes is one each for the POP, IMAP, or HTTP service.{info}
h3. Number of Connections per Process
The more simultaneous client connections your POP, IMAP, or HTTP service can maintain, the better it is for clients. If clients are denied service because no connections are available, they must then wait until another client disconnects.
On the other hand, each open connection consumes memory resources and makes demands on the I/O subsystem of your server machine, so there is a practical limit to the number of simultaneous sessions you can expect the server to support. (You might be able to increase that limit by increasing server memory or I/O capacity.)
IMAP, HTTP, and POP have different needs in this regard:
* IMAP connections are generally long-lived compared to POP and HTTP connections. When a user connects to IMAP to download messages, the connection is usually maintained until the user quits or the connection times out. In contrast, a POP or HTTP connection is usually closed as soon as the POP or HTTP request has been serviced. * IMAP and HTTP connections are generally very efficient compared to POP connections. Each POP reconnection requires reauthentication of the user. In contrast, an IMAP connection requires only a single authentication because the connection remains open for the duration of the IMAP session (login to logout). An HTTP connection is short, but the user need not reauthenticate for each connection because multiple connections are allowed for each HTTP session (login to logout). POP connections, therefore, involve much greater performance overhead than IMAP or HTTP connections. Messaging Server, in particular, has been designed to require very low overhead by open but idle IMAP connections and by multiple HTTP connections.
{info:title=Note}For more information about HTTP session security, see [About HTTP Security|About Server Security#About HTTP Security].{info}
Thus, at a given moment for a given user demand, Messaging Server may be able to support many more open IMAP or HTTP connections than POP connections.
The default value for IMAP is 4000. The default value for HTTP is 6000 connections per process. The default value for POP is 600. These values represent roughly equivalent demands that can be handled by a typically configured server machine. Your optimum configuration might be different. These defaults are meant only as general guidelines.
Typically, active POP connections are much more demanding on server resources and bandwidth than active IMAP connections since IMAP connections are idle most of the time while POP connections are constantly downloading messages. Having a lower number of sessions for POP is correct. Conversely, POP connections only last as long as it takes to download email, so an active POP user is only connected a small percentage of the time, while IMAP connections stay connected between successive mail checks.
h3. Number of Threads per Process
Besides supporting multiple processes, Messaging Server further improves performance by subdividing its work among multiple threads. The server's use of threads greatly increases execution efficiency, because commands in progress are not holding up the execution of other commands. Threads are created and destroyed, as needed during execution, up to the maximum number you have set.
Having more simultaneously executing threads means that more client requests can be handled without delay, so that a greater number of clients can be serviced quickly. However, there is a performance overhead to dispatching among threads, so there is a practical limit to the number of threads the server can make use of.
For POP, IMAP, and HTTP, the default maximum value is 250 threads per process. The numbers are equal despite the fact that the default number of connections for IMAP and HTTP is greater than for POP. It is assumed that the more numerous IMAP and HTTP connections can be handled efficiently with the same maximum number of threads as the fewer, but busier, POP connections. Your optimum configuration might be different, but these defaults are high enough that it is unlikely you would ever need to increase them; the defaults should provide reasonable performance for most installations.
h3. Dropping Idle Connections
To reclaim system resources used by connections from unresponsive clients, the IMAP4, POP3, and HTTP protocols permit the server to unilaterally drop connections that have been idle for a certain amount of time.
The respective protocol specifications require the server to keep an idle connection open for a minimum amount of time. The default times are 10 minutes for POP, 30 minutes for IMAP, 3 minutes for HTTP. You can increase the idle times beyond the default values, but you cannot make them less.
If a POP or IMAP connection is dropped, the user must reauthenticate to establish a new connection. In contrast, if an HTTP connection is dropped, the user need not reauthenticate because the HTTP session remains open. For more information about HTTP session security, see [About HTTP Security|About Server Security#About HTTP Security].
Idle POP connections are usually caused by some problem (such as a crash or hang) that makes the client unresponsive. Idle IMAP connections, on the other hand, are a normal occurrence. To keep IMAP users from being disconnected unilaterally, IMAP clients typically send a command to the IMAP server at some regular interval that is less than 30 minutes.
h3. Logging Out HTTP Clients
An HTTP session can persist across multiple connections. HTTP clients are not logged out when a connection is dropped. However, if an HTTP session remains idle for a specified time period, the server will automatically drop the HTTP session and the client is logged out (the default time period is 2 hours). When the session is dropped, the client's session ID becomes invalid and the client must reauthenticate to establish another session. For more information about HTTP security and session ID's, see [About HTTP Security|About Server Security#About HTTP Security].
{toc-zone}
h2. Client Access Controls
Messaging Server includes access-control features that enable you to determine which clients can gain access to its POP, IMAP, or HTTP messaging services (and SMTP as well). You can create flexible access filters that allow or deny access to clients based on a variety of criteria.
Client access control is an important security feature of Messaging Server. For information on creating client access-control filters and examples of their use, see [Configuring Client Access to POP, IMAP, and HTTP Services] and \[Configuring Client Access to SMTP Services\] {color:red}<Create link to Chapter 18 Mail Filtering and Access Control when it is converted>{color}.
h2. To Configure POP Services
You can perform basic configuration of the Messaging Server POP service by using the {{configutil}} command. Some of the more common POP services options are given in this section. A complete listing can be found in [Messaging Server Configuration]. {info:title=Note}For the POP service, password-based login is automatically enabled.{info}
For more information, see also:
* [#Enabling and Disabling Services] * [#To Set the Login Separator for POP Clients] * [#Specifying Port Numbers] * [#Number of Connections per Process] * [#Dropping Idle Connections] * [#Number of Threads per Process] * [#Number of Processes]
To enable or disable the POP service:
{{configutil -o service.pop.enable -v \[ yes | no \]}}
To specify the port number:
{{configutil -o service.pop.port -v}} _number_
To set the maximum number of network connections per process (see [#Number of Connections per Process] for details):
{{configutil -o service.pop.maxsessions -v}} _number_
To set the maximum idle time for connections (see [#Dropping Idle Connections] for details):
{{configutil -o service.pop.idletimeout -v}} _number_
To set the maximum number of threads per process (see [#Number of Threads per Process] for more information):
{{configutil -o service.pop.maxthreads -v}} _number_
To set the maximum number of processes (see [#Number of Processes] for additional information):
|