IUPOP3 Extensions
 IUPOP3  Installation [Extensions] Download  Misc

POP3 extensions

Implementations of POP3 servers can have additional commands starting with the "XTND" keyword. This commands are not usable from "normal" POP3 clients and are intended for server configuration and maintenance. They are accessible by telneting to the server port or through special tools.

IUPOP3 XTND commands

IUPOP3 2.0 supports the following extended commands:
XTND help
shows a list of supported XTND commands
XTND client
notes the client identification
XTND info
returns infos about some of the process resources
XTND stats
shows the threads statistics
XTND netstats
shows the network I/O statistics
XTND loglevel
sets the current logging level
XTND options set
resets the run-time options from the logical name table
XTND options shows
shows the run-time options
XTND kill
stops the specified thread immediatly
XTND restart
restarts the server
XTND shutdown
stops the server
Some of the commands needs special validation from the POP_XTND.DAT file in the IUPOP3_EXE directory.

Run-time Configuration Options

The behavior of the IUPOP3 server can be controlled via a set of commandline switches or OpenVMS logicals. This includes mail processing features (ignore_mail11_headers, default_to_smtp, enable_long_lines, personal_name, purge_mailboxes, use_bottom_headers, iupop3_node_xxx, foreign_folder), security issues (scan_intrusion, apop_check_duplicate, ignore_expired_passwords, auth_commands), performance considerations (max_messages, client_timeout, fast_scan, use_mail_folder, purge_reclaim_threshold, read_direct_threshold, default_sendbuffer_size ) and others.

The configuration options are specified as VMS logicals typically stored in the system logical name table. They are set from the IUPOP3_LOGICALS.COM command file during startup. If they are changed later, the server has to be notified with the "XTND options set" command.

Logicals used for Server Configuration:

Mail Processing Options

IUPOP3_IGNORE_MAIL11_HEADERS (bool)

This option controls whether or not IUPOP3 will completely ignore the VMS Mail headers (From:, To:, etc.) for non-DECnet mail messages. The "From" line is checked to decide where the mail comes from. For internet mails, the original RFC 822 headers are grabbed from the message body and used instead of the mail11 headers. Check the configuration of the TCP/IP package to ensure they are stored correctly! MIME coded messages are only usable with their original headers.
For DECNET messages some RFC 822 compliant headers are generated from the mail11 headers.

IUPOP3_DEFAULT_TO_SMTP (bool)

Sometimes the "From" isn't informative enough to detect where the message comes from. For example it can contain a username only. This option controls if such a message is treated as a DECNET or a internet message.

IUPOP3_ENABLE_LONG_LINES (bool)

Enables passing of lines longer than 256 bytes to the client using undocumented features of the callable mail routines. AFAIK only MX creates messages with long lines.

IUPOP3_PERSONAL_NAME (bool)

This options controls whether or not IUPOP3 will provide your POP3 clients with "From:" lines that include the sender's personal name, if one appeared on the original VMS "From:" line. Below, the first example contains the sender's personal name, and the second does not:

From: "larry hughes" <hughes@indiana.edu>
From: <hughes@indiana.edu>

Be warned that some POP3 clients get confused by the presence of personal names when you attempt to reply to a mail message. Others usually don't mind personal names, but get confused when the name contains commas and other special characters. If you enable this option, please test very carefully with your POP3 clients.

IUPOP3_PURGE_MAILBOXES (bool)

Enables purging of mailboxes. Mailboxes are only purged if this option is set and the user has enabled autopurging in VMS mail. If this option is set to false, deleted messages are only moved to the wastebasket folder but not deleted. The PURGE_RECLAIM_THRESHOLD option is ignored in this case.

IUPOP3_USE_BOTTOM_HEADERS (bool)

UCX (or currently: Digital TCP/IP services for OpenVMS) can store the RFC 822 headers at the top or at the bottom of the mail.
Specify this option *only*

IUPOP3_FOREIGN_FOLDER (string)

IUPOP3 ignores delete operations on foreign mails because they can only be handled locally, only an informational message is send to the client. With this logical defined IUPOP3 moves the foreign mail to the specified folder instead of ignoring the delete operation. This logical is checked when a foreign mail is to be deleted.

Example:
$DEFINE/SYSTEM IUPOP3_FOREIGN_FOLDER "FOREIGN-MAIL"

IUPOP3_NODE_xxx (string)

Maps decnet node xxx to specified domain. This is very useful for building meaningful reply addresses.
Example:

  Mapping without this logical defined:

        nodename::username   --->  username@nodename

  Mapping with this logical defined:

  define /system IUPOP3_NODE_nodename  "node.sub.top"

        nodename::username   --->  username@node.sub.top

  
This logical is checked for each message.

Security Options

IUPOP3_SCAN_INTRUSION (bool)

If enabled the security server is asked via the $SCAN_INTRUSION system service to check for beakin attempts. After a single password error the output of DCL's SHOW INTRUSION command may look like
NETWORK SUSPECT 2 7-AUG-1997 20:07:54.15 IUPOP3::127.0.0.1:stenns
The last field contains the source of the suspect intrusion. At least OpenVMS/VAX 6.1 or OpenVMS/Alpha 6.2 is required. The IUPOP3 process requires the security privilege.

IUPOP3_APOP_CHECK_DUPLICATE (bool)

Rejects access if APOP's shared secret and the interactive password is identical. The APOP shared secred is known as clear text both to client and server. On the OpenVMS site it is stored in the POP_SECRET.DAT file in the user's mail directory. It should never be the same as the user's login password!

IUPOP3_IGNORE_EXPIRED_PASSWORDS (bool)

With this option enabled the maildrop access is granted even if the specified password has been expired. Many network services ignores password expiration.

IUPOP3_AUTH_COMMANDS (string)

RFC 1939 makes the user/pass and apop authorization commands optional. A value of "user" means only the user/pass combination is allowed, "apop" means only the apop command is recognized, and any other value means both commands are allowed (this is the default).

Performance Options

IUPOP3_MAX_MESSAGES (numerical)

Sets the maximum number of messages a user can download during a single session. Same as the -maxmsg commandline switch.

IUPOP3_CLIENT_TIMEOUT (numerical)

Defines the client timeout in minutes. RFC 1939 recommends a minimum value of 10 minutes.

IUPOP3_FAST_SCAN (bool)

With this option enabled selection of a maildrop is significant faster. The size of each message reported to the client is estimated from the number of records (available from the callable mail api) rather than checking the size of each mail file. Mail directories might be quite large and checking the size of a large number of files may be rather slow.

IUPOP3_USE_MAIL_FOLDER (bool)

Normally only the NEWMAIL folder is shown and the messages are moved to the MAIL folder after read. This makes it impossible to download a message previously read with VMS Mail or to receive messages with more than one POP client. With this option set to TRUE the MAIL folder is shown instead. All messages from the NEWMAIL folder is moved to the MAIL folder before opening. If enabled, the IUPOP3_MAX_MESSAGES environment variable should be set to a high value and the FAST_SCAN option should be enabled, too.

IUPOP3_PURGE_RECLAIM_THRESHOLD (numerical)

Defines the number of deleted message bytes required for a purge/reclaim operation. During normal purge external message files are deleted, but some data within mail.mai remains unavailable. Purge/reclaim requires mail.mai be locked, so no mail can be received during this operation. The default value is 32176 if the -purge_reclaim commandline option is set. A value of 0 disables purge/reclaim.

IUPOP3_READ_DIRECT_THRESHOLD

Defines the max. file size in bytes where the callable mail routines are used to process the file. Larger files are read with ANSI-C functions. Default is zero, which means no threshold. The callable mail routines read the whole file into memory, even if it contains a lot of megabytes of stuff.

IUPOP3_DEFAULT_SENDBUFFER_SIZE

Defines the default buffer size in bytes which is allocated for each active thread. Use a value between 1 kb and 128 kb (defined in iupop3_general.h). Default is 4 kb. On sending large messages the send buffer is filled and queued to the network driver. While the driver sends the buffer content, another thread can be processed. Up to 64 kb are queued in a single I/O to the network driver.

Miscellaneous Options

SYS$TIMEZONE_DIFFERENTIAL (numerical)

Contains the actual time offset to GMT in seconds. This logical is already part of newer OpenVMS versions (>6.x at least). Remark: US sites have negative values.