# DIGITAL TCP/IP Services for OpenVMS
Management

Previous | Contents

The UCX POP server acts as the mail repository. It accepts and stores mail messages for you, even when your client system is not connected, and forwards those messages to you at your request. POP is used mostly by PC clients to ensure that mail is received and retained even when the system is not connected to the network.

After the POP server is enabled on your system, you can modify the default characteristics by defining logical names.

This chapter reviews key POP concepts and provides guidelines for modifying, managing, and troubleshooting the POP server on an OpenVMS system.

# 13.1 Reviewing Key Concepts

The POP server is an implementation of the Post Office Protocol Version 3 server (the public domain IUPOP3 server) specified in RFC 1725.

The POP server is intended to be used as a mail repository for:

- PC systems that may not be connected to a network for periods of time
- Smaller nodes that may not have sufficient resources to keep an SMTP server and associated local mail delivery system resident and continuously running

With POP, mail is delivered to a shared mail server, and a user periodically downloads pending mail. Once delivered, the messages are deleted from the server.

The POP server is assigned port 110 and all POP client connections are made to this port.

The following sections review the POP process and describe how DIGITAL TCP/IP Services for OpenVMS software implements POP. If you are not familiar with POP, refer to RFC 1725 or introductory POP documentation for more information.

## 13.1.1 The POP Server Process

The POP server is invoked by the auxiliary server. A POP server process can handle up to 31 simultaneous client threads. This limit is imposed by the OpenVMS callable mail routines that the POP server uses to access users' mail files.

The POP server is installed with SYSPRV and BYPASS privileges and runs in the UCX$POP account, which receives the correct quotas from the UCX configuration database.

The POP server uses security features provided in the protocol and in the OpenVMS operating system, as well as additional security measures. These methods provide a secure process that minimizes the possibility of inappropriate access to a user's mail file on the served system.

You can modify the POP server default characteristics and implement new characteristics by defining the system logical names outlined in Section 13.3.

## 13.1.2 How to Access Mail Messages from the POP Server

To access mail messages from the POP server, you configure a user name and password, or the POP shared secret password string, into your client mail application.

Your client system opens the TCP connection and attempts access to the server by issuing applicable POP commands such as USER (user name) and PASS (password), or APOP (shared secret password). In addition, POP supports the UID command, which some POP clients use, where the UID (user identification) that POP composes for each mail message is a concatenation of the user name and the date of arrival.

Once your client system opens the TCP connection, the POP server issues the following greeting:

    +OK UCX POP server ready UCX V4.2 [hostname and IP_Address]

The POP server reads mail from your OpenVMS NEWMAIL folder. If you do not instruct the POP server to delete the mail, the server either moves the mail to your MAIL folder or keeps it in your NEWMAIL folder (if you defined the logical name UCX$POP_LEAVE_IN_NEWMAIL; see Section 13.3).

## 13.1.3 How the POP Server Initiates and Manages a TCP Connection

The POP server starts the service by listening on TCP port 110. The client initiates a connection when it wants to make use of the POP service. The POP server either sends a greeting message confirming the connection (a message with the +OK prefix) or a message that the connection was not successful (a message with the -ERR prefix).

POP permits only two user name and password authorization attempts per TCP connection. After the second failure, POP closes the connection. Once connected, the client and server exchange commands and responses.

When the POP server detects a blocked TCP connection, it suspends output to the connection for 2 seconds to allow it to unblock. Upon retry, if the connection is still blocked, the POP server waits 4 seconds before trying again, and so on up to 32 seconds. If the connection is still blocked after 32 seconds, the POP server shuts down the connection and sends an error message to the log file.

## 13.1.4 How the POP Server Handles Non-ASCII Message Formats

POP contains minimal support for mail messages that contain non-ASCII formats. Such messages are usually binary and are therefore not transferred to the POP client. Instead, the POP server transfers the message headers, along with a brief message instructing the user to log in and extract the foreign message into a file. Non-ASCII messages are moved into your MAIL folder; they are never deleted by the POP server.

## 13.1.5 How the POP Server Authorizes Users

Table 13-1 outlines the methods the POP server process uses to authorize user access.

Table 13-1 POP User Authorization Methods
Method | Description
--- | ---
Shared secret password string | Most secure POP server access method. Initiated by the client system through the APOP command. Allows a user to become authorized by the POP server without the need to send a password over the network. Eliminates a potential path for unauthorized users to obtain a password and break into the system. POP requires a shared secret string from any user who wants to read mail using the APOP authorization method. For information about creating the shared secret string, see the DIGITAL TCP/IP Services for OpenVMS User's Guide.
User name and password | Least secure POP server access method. Initiated by the client system through the USER and PASS commands. The POP server authorizes the client to access the desired mailbox based on receipt of a valid user name and password. The user configures a user name and password into the POP client system. Each POP client has its own method of configuring. Note that the user name and password pair is the user name and password for the DIGITAL TCP/IP Services for OpenVMS system, not the POP client system. The POP client sends the user name and password pair to the server and the server confirms the pair against that in the OpenVMS SYSUAF file. Note that the password is sent unencrypted over the TCP connection, which might cause security issues for some environments. Upon authorization, the POP server allows access to the user's OpenVMS mailbox.
OpenVMS SYSUAF settings on user accounts | Access to the POP server is not permitted if: Either the DISMAIL or DISUSER flags are set for the account The account has expired according to the SYSUAF expiration date Access has been denied because of an incorrect user name and password
The ability to disable the USER and PASS commands | Allows the system manager to implement the use of the APOP authorization method for all POP clients, which is the more secure means of user authorization. When you disable the USER and PASS commands (by defining the logical name UCX$POP_DISUSERPASS), the POP server responds to the commands with a failure message.

## 13.1.6 Understanding POP Message Headers

Mail message headers sent by the POP server must conform to the standard specified for SMTP in RFC 822. Because many of the messages received on an OpenVMS system are not in the SMTP format (for example, DECnet mail or mail from another message transport system), the POP server builds a new set of headers for each message based on the OpenVMS message headers.

The headers on mail messages forwarded by the POP server are as follows.

POP Message Header | Obtained From
--- | ---
Date: | Arrival date of message. Changed to UNIX format.
From: | OpenVMS message From: field. Rebuilt to ensure RFC 822 compatibility. See Section 13.1.6.1.
To: | OpenVMS message To: field. Not rebuilt.
CC: | OpenVMS message CC: field. Not rebuilt.
Subject: | OpenVMS message Subj: field. Not rebuilt.
X-VMS-From: | OpenVMS message From: field. Not rebuilt.
X-POP3-Server: | Server host name and POP version information. Sent only if logical name UCX$POP_SEND_ID_HEADERS is defined.
X-POP3-ID: | Message UID. Sent only if logical name UCX$POP_SEND_ID_HEADERS is defined.

The POP server sends these message headers to the POP client unless all of the following are true:

- The UCX$POP_IGNORE_MAIL11_HEADERS logical name is defined (see Section 13.3).
- The From: address is an SMTP address.
- The SMTP qualifier /OPTION=TOP_HEADERS is set.

Note that the POP server checks the SMTP configuration database to ensure that it has been configured with the qualifier /OPTION=TOP_HEADERS so that headers print at the top of the message. If the POP logical name UCX$POP_IGNORE_MAIL11_HEADERS is defined, the SMTP option TOP_HEADERS must also be set. If not, the POP server issues a warning in the log file and does not acknowledge the UCX$POP_IGNORE_MAIL11_HEADERS definition.

### 13.1.6.1 How POP Rebuilds the OpenVMS Message From: Field

The most important message header is the From: header, because it can be used as a destination address if a reply is requested from the POP client. Therefore, the POP server rebuilds the OpenVMS message From: field in compliance with RFC 822 before sending the header to the POP client.

The different types of addresses that can appear in the OpenVMS message From: field are as follows.

Address Type | Address Format
--- | ---
SMTP | SMTP%" legal-address", where legal-address is an address that is compliant with RFC 822 and is commonly in the user@domain format
DECnet | NODE::USERNAME
User name | USERNAME
DECnet address within quotation marks | NODE::"user@host"
Cluster-forwarding SMTP address | NODE::SMTP%"user@domain"

Note that a host name is local if any of the following are true:

- Any of its IP addresses match any of the local host's IP addresses or the cluster alias IP address.
- The host name is the same as the substitute domain specified in the SMTP configuration.
- The host name is found in the UCX$SMTP_LOCAL_ALIASES.TXT file.

Some POP client systems are confused by the presence of personal names when you attempt to reply to a mail message or when the name contains commas or other special characters. If you define the UCX$POP_PERSONAL_NAME logical name outlined in Section 13.3, make sure you test the configuration carefully with your POP client systems.

The following sections describe how POP rebuilds the message From: field for each type of address.

#### 13.1.6.1.1 SMTP Address

The POP server uses the SMTP address within the quotation marks to rebuild the From: field of an SMTP address. For example, message header From: SMTP%"james.jones@federation.gov" becomes:

From: james.jones@federation.gov

Note that SMTP hides nested double quotation marks by changing them to cent sign characters (¢) before passing them to OpenVMS mail and then changing them back after a reply. The POP server removes any cent signs (¢) that designate double quotation marks. For example, message header
From: SMTP%"¢ABCMTS::MRGATE::\¢ABCDEF::VIVALDI \¢¢@xyz.org" becomes:

From: "ABCMTS::MRGATE::\"ABCDEF::VIVALDI\""@xyz.org

#### 13.1.6.1.2 DECnet Address

The UCX$POP_DECNET_REWRITE logical name values define how the POP server rebuilds a DECnet address:

- GENERIC. The entire address is changed to the SMTP format. For example, from host widgets.xyzcorp.com, message header From: ORDERS::J_SMITH becomes:
  From: "ORDERS::J_SMITH"@widgets.xyzcorp.com
- NONE. The From: line is sent to the POP client unmodified. For example:
  From: ORDERS::J_SMITH
  Note that the SMTP server does not accept an address of this form should you attempt to reply.
- TRANSFORM. The POP server attempts to translate the DECnet node name to a TCP/IP host name. If the name can be translated, the POP server checks to see if the translated host name is local. If so, the From: header becomes an address in the form user@substitute_domain. If not, the From: header becomes an address in the form user@hostname. Note that the POP and SMTP servers call the same routine to determine if a host name is local.
  Each of the following examples assumes that the local host name is orders.acme.widgets.com and that ORDERS translates to "orders.acme.widgets.com":
  - Message header From: ORDERS::J_SMITH becomes:
    From: j_smith@orders.acme.widgets.com
  - For a substitute domain of acme.widgets.com, message header From: ORDERS::J_SMITH becomes:
    From: j_smith@acme.widgets.com.
  - If HOST12 translates to host12.acme.widgets.com, which is not local on orders.acme.widgets.com, message header From: HOST12::J_JONES becomes:
    From: j_jones@host12.acme.widgets.com.
  - If HOST13 does not translate and host orders.acme.widgets.com has no substitute domain defined, message header From: HOST13::J_JONES becomes:
    From: "HOST13::J_JONES"@orders.acme.widgets.com.

#### 13.1.6.1.3 User Name-Only Address

If an SMTP substitute domain is defined, the POP server appends it to the user name followed by a commercial at sign (@). Otherwise, POP uses the local host name.

For example, with a substitute domain defined as acme.widgets.com, message header From: Smith becomes:

From: smith@acme.widgets.com.

#### 13.1.6.1.4 DECnet Address that Contains Quotation Marks

The values assigned to the UCX$POP_QUOTED_DECNET_REWRITE logical name define how the POP server rebuilds a DECnet address that contains quotation marks:

- GENERIC. The address is changed to the SMTP format. For example, on host widgets.xyzcorp.com, message header From: ORDERS::"j_smith@acme.com" becomes:
  From: "ORDER::\"j_smith@acme.com\""@widgets.xyzcorp.com
- NONE. The From: line is passed to the POP client without being modified. For example:
  From: ORDERS::"j_smith@acme.com"
  Note that the SMTP server does not accept an address of this form should you attempt to reply.
- TRANSFORM. The POP server uses the text inside the quotation marks. For example, message header From: ORDERS::"j.smith@acme.com" becomes:
  From: j.smith@acme.com.

#### 13.1.6.1.5 Cluster-Forwarding SMTP Address

With a cluster-forwarding SMTP address, the POP server uses the SMTP address within the quotation marks. For example, message header From: ABCDEF::SMTP%"james.jones@federation.gov" becomes:

From: james.jones@federation.gov

#### 13.1.6.1.6 All Other Addresses

For all other address formats, the POP server changes the entire address to the SMTP format:

- Quotation marks in the address are prefixed with the backslash (\) escape character.
- The entire address is placed within quotation marks.
- A commercial at sign (@) is appended.
- If the SMTP substitute domain is configured, it is appended. Otherwise, the name of the local host is appended.

For example, if the substitute domain is xyz.org, message header From: ABCMTS::MRGATE::"ORDERS::SPECIAL" becomes:

From: "ABCMTS::MRGATE::\"ORDERS::SPECIAL\""@xyz.org

If the logical name UCX$POP_IGNORE_MAIL11_HEADERS is defined and the address is an SMTP address, the rebuilt From: field is not displayed to the user. In this case, the POP server sends the actual headers from the body of the mail as the mail headers.

# 13.2 Starting and Stopping the POP Server

The POP server process starts automatically if you specified automatic startup during the UCX configuration procedure (UCX$CONFIG.COM).

To start the POP server process manually, enter:

    $ @SYS$MANAGER:UCX$POP_STARTUP

To stop the POP server process, enter:

    $ @SYS$MANAGER:UCX$POP_SHUTDOWN

# 13.3 Modifying POP Server Characteristics

To modify the default POP server settings and configure additional characteristics, define UCX$POP logical names in the SYS$MANAGER:UCX$POP_SYSTARTUP.COM file. If you modify the POP startup file, restart the POP server to make the changes take effect.

You can modify the following POP server characteristics:

- Security levels
- Error message logging
- Maximum number of mail messages downloaded per connection
- Link idle time
- Mail header options
- Ability to set the size of the TCP flow control buffer
- Ability to disable the USER and PASS commands
- Ability to purge mail messages

Table 13-2 outlines the POP logical names, default settings, and characteristic options.

Table 13-2 POP Logical Names
Logical Name | Characteristic
--- | ---
UCX$POP_SECURITY value | Defines a level of security for the POP server. Determines the timing and text of error messages sent from the POP server to the POP client when authorization errors occur (for example, when an invalid user name or password is sent): FRIENDLY (default). The error messages provide information about a particular error. Example: If a password is incorrect, the client receives the error message -ERR password supplied for "jones" is incorrect. SECURE. One error message is sent in response to all authorization errors except when an invalid user name is specified. Example: Access to user account "jones" denied. When the POP server receives an invalid user name, it replies to the POP client with an +OK message. After the POP client sends the password, the POP server sends the -ERR access denied message. This method prevents an unauthorized user from knowing whether the access was denied because of an incorrect user name or password.
UCX$POP_TRACE | If defined, the POP server outputs all messages sent to and received from the POP client to a log file.
UCX$POP_LOG_LEVEL value | Defines the type of messages logged by the POP server: ERROR. Logs error messages only. INFORMATIONAL (default). Logs informational messages as well as error messages. THREAD. Logs information about client and server interactions as well as informational and error messages. DEBUG. Logs full diagnostic information; used for problem diagnosis.
UCX$POP_POSTMASTER value | Defines a person or persons to receive a failure mail message from the POP server startup procedure (UCX$POP_STARTUP.COM) when the POP server exits with an error. For example, to have the failure mail message sent to users Jones and Smith, define the logical name as follows:
    $ DEFINE/SYSTEM UCX$POP_POSTMASTER "JONES, SMITH"
UCX$POP_MESSAGE_MAXIMUM n | Defines the maximum number of mail messages that a single client can download per connection, where n is a number from 0 to 65,535. If not defined, the POP server uses the default value of 0 (no maximum).
UCX$POP_LINK_IDLE_TIMEOUT n | Determines the length of time the server allows a link to a POP client to remain idle, where n is a number specified in OpenVMS delta time delimited by quotation marks. A POP link remains active until released by the POP client. If not defined, the POP server does not set a link idle value (0 00:00:00.00).
UCX$POP_PERSONAL_NAME | If defined, the POP server provides the POP clients with message header From: fields that include the sender's personal name, if one appeared in the sender's From: field.
UCX$POP_LEAVE_IN_NEWMAIL | If defined, mail that has been read by the PC client but not deleted remains in the NEWMAIL folder. Allows users to access mail from different systems and determine when to move or delete the mail from the POP server. If not defined, mail that has been read but not deleted is moved to the MAIL folder.
UCX$POP_IGNORE_MAIL11_HEADERS | If defined, the POP server ignores the OpenVMS message headers when mail is sent from SMTP, which contains an SMTP address in the From: field. For information about how POP forms message headers, see Section 13.1.6.
UCX$POP_SEND_ID_HEADERS | If defined, the POP server sends X-POP3-Server and X-POP3-ID headers for each mail message. If not defined, the ID headers are not sent for any mail from an SMTP address. For information about how POP handles message headers, see Section 13.1.6.
UCX$POP_DECNET_REWRITE value | Determines how the POP server rebuilds a simple DECnet address (of the form NODE::USER) in the OpenVMS message From: field when it sends the mail to the POP client, where value is one of the following: GENERIC. Simple DECnet addresses are changed to the SMTP address format. NONE. Simple DECnet addresses are sent unmodified to the POP client. Note that the SMTP server does not accept an address in this form should you attempt to reply. TRANSFORM (default). The POP server attempts to transform the DECnet address into an SMTP address by translating the DECnet node name to a TCP/IP host name. For more information about how POP rebuilds the message headers, see Section 13.1.6.1.2.
UCX$POP_QUOTED_DECNET_REWRITE value | Determines how the POP server rebuilds a DECnet address that contains quotation marks (an address of the form NODE::"user@host") in the OpenVMS mail From: field when it sends the message to the POP client, where value is one of the following: GENERIC. DECnet addresses that contain quotation marks are changed to the SMTP address format. NONE. DECnet addresses that contain quotation marks are sent unmodified to the POP client. Note that the SMTP server does not accept an address of this form should you attempt to reply. TRANSFORM (default). The POP server uses the text inside the quotation marks in the From: field that it sends to the POP server. For more information about how POP rebuilds the message headers, see Section 13.1.6.1.4.
UCX$POP_SNDBUF n | Allows you to increase or decrease the size of the TCP flow control buffer. Sets the SO_SNDBUF socket option to a specific number, where n is the number 512 or greater. If not defined, the POP server uses the value specified in the SHOW PROTOCOL/PARAMETERS command.
UCX$POP_DISUSERPASS | Disables the client USER and PASS commands and sends a failure message to the POP client on receipt of either of the commands. For more information about POP user authorization methods, see Section 13.1.5.
UCX$POP_PURGE_RECLAIM | If defined, the POP server performs a PURGE/RECLAIM command action after it deletes messages.

# 13.4 Enabling MIME Mail

The MIME (Multipurpose Internet Mail Extensions) specification provides a set of additional headers you can use so users can send mail messages composed of more than simple ASCII text. MIME is an enhancement to RFC 822.

For MIME mail to be decoded correctly, follow these guidelines:

- Configure the SMTP server with the /OPTION=TOP_HEADERS qualifier, because the first lines of mail text after the four OpenVMS message header lines and the initial separating line must be the MIME headers.
- Configure the POP server with the UCX$POP_IGNORE_MAIL11_HEADERS logical name. Otherwise, MIME headers are not parsed as message headers.
- The OpenVMS message From: field must be recognizable as an SMTP address. Otherwise, the POP server sends the headers it creates from OpenVMS message headers as the headers of the mail message. For information about POP message headers, see Section 13.1.6.
  Define the logical name UCX$SMTP_JACKET_LOCAL to 1 for all SMTP cluster systems, which ensures that the mail will be delivered if the domain in the From: or To: fields appears local:

      $ DEFINE/SYSTEM UCX$SMTP_JACKET_LOCAL 1

If MIME mail does not decode, check the mail headers on the client system. If you see multiple blocks of headers and the MIME-version header is not in the first block, confirm that you have followed these guidelines.

# Part 4
Network File Services

Part 4 describes how to configure, use, and manage the components that enable transparent network file sharing: NFS server, PC-NFS, and NFS client. Part 4 also provides an extensive review of key NFS concepts.

Chapter 14 describes how to set up the NFS server and make file systems available to users on NFS client hosts. This chapter also describes how to set up PC-NFS, how to troubleshoot server and file system problems, and describes the NFS characteristics that can affect system performance.

Chapter 15 describes how to set up the NFS client, providing users with access to remote file systems.

# Chapter 14
NFS Server

The Network File System (NFS) server software lets you set up file systems on your local system for export to users on remote NFS client hosts. These files and directories, even though they physically reside on the local system, appear to the remote user to be on the remote host.

Previous | Next | Contents