------------ Contents ------------ Copyright Authors History Synopsis Files Notes Extensions Making IUPOP3 Configuring IUPOP3 Comments ------------ Copyright ------------ (C) Copyright 1991 The Trustees of Indiana University Permission to use, copy, modify, and distribute this program for non-commercial use and without fee is hereby granted, provided that this copyright and permission notice appear on all copies and supporting documentation, the name of Indiana University not be used in advertising or publicity pertaining to distribution of the program without specific prior permission, and notice be given in supporting documentation that copying and distribution is by permission of Indiana University. Indiana University makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. ------------ Authors ------------ Indiana University University Computing Services Network Applications Group Jacob Levanon - Manager, Network Applications Larry Hughes - Lead Software Engineer ------------ History ------------ Version : 1.5 Release Date : April 2, 1991 Comments : Initial release to public Current Version : 1.6 Release Date : May 16, 1991 Comments : Support for UCX and Multinet, in addition to WIN/TCP. Current Version : 1.6a Release Date : June 6, 1991 Comments : Fix client_read_ast() so any IOSB error assumes a client disconnect, especially for UCX. Added support for an "XTND SHUTDOWN" command. ------------ Synopsis ------------ The IUPOP3 server is a VMS implementation of the Post Office Protocol Version 3, based on RFC 1081 and somewhat on Berkeley's popper. There are many differences between IUPOP3 and the popper, partly due to the differences between VMS and UNIX as operating systems. Probably the most notable difference is that IUPOP3 is a static multithreaded server. The server always listens on the network port for new connections, and can handle up to 31 simultaneous POP3 client connections. In this way, expensive VMS process creation overhead can be avoided. Note that this does not mean that IUPOP3 can serve only 31 clients; indeed, at IU it serves dozens. The limitation is 31 concurrent connections from POP3 clients at any given moment in time. IUPOP3 was developed and tested on VMS 5.3 and 5.4 systems, using the VMS callable mail (MAIL$) interface. The current release is compatible with the following TCP/IP network implementations: Wollongong WIN/TCP for VMS, DEC's UCX, and TGV's Multinet. ------------ Files ------------ README.TXT - This file COPYRIGHT.TXT - IUPOP3 copyright RFC1081.TXT - RFC 1081 describing POP3 protocol RFC1082.TXT - RFC 1082 describing POP3 extentions IUPOP3.COM - Runs the IUPOP3 server (must be configured!) START_IUPOP3.COM - Starts IUPOP3.COM as a detached job (must be configured!) MAKE.COM - The required mechanism for building IUPOP3 IUPOP3.MMS - The MMS makefile invoked by MAKE.COM, if MMS is installed UCX.MACRO - An MMS macro for UCX WINS.MACRO - An MMS macro for WIN/TCP MULTINET.MACRO - An MMS macro for Multinet SHARE.OPT - Linker options file IUPOP3.C - Main source file IUPOP3_COMMANDS.C - Routines which process the POP3 server commands IUPOP3_VMS.C - MAIL$ and SYS$ routines IUPOP3_UTILITY.C - Various utility and support routines PASSWD_V54.C - VMS 5.4 password hashing and validation PASSWD_V53.C - Pre VMS 5.4 password hashing and validation CHANGE_CASE.MAR - A few very fast string routines IUPOP3_GENERAL.H - Includes files... IUPOP3_GLOBAL.H IUPOP3_VMS.H DESCR.H INETIODEF.H ITMLST.H VERSION.H MAILMISCDEF.H MAILMSGDEF.H POP_XTND.DAT - An example authorization file for XTND commands ------------ Notes ------------ IUPOP3 has been tested with two POP3 clients: Eudora for the Macintosh, and FTP Software's POP3 for DOS. It seems to work well with both. If you test it with other clients, we would appreciate knowing the results. True to the POP3 protocol, IUPOP3 does not perform any mail delivery functions. At IU, we rely on UNIX hosts to act as SMTP mail relays for POP3 clients. As many VMS sites will appreciate, at IU we have several foreign mailers that interface with VMS Mail. These mailers provide mail transport to (and from) BITNET and the Internet. Mail arriving into the VMS system from these networks has "From:" lines of the form TRANSPORT%"user@node". This can obviously create problems for POP3 clients that wish to reply to mail delivered by IUPOP3, since most POP3 clients will attempt to establish a direct SMTP connection to a relay or the originating host. To avoid this problem, IUPOP3 has an IU-specific routine that reformats "From:" lines. If you wish to adopt this mechanism for your site, make the necessary changes to the function "patch_from_line()" in IUPOP3_UTILITY.C, then define PATCH_FROM_LINE in the IUPOP3.MMS makefile. Due to a change in the password hashing algorithm in VMS 5.4 (and the introduction of SYS$HASH_PASSWORD), IUPOP3 includes both VMS 5.4 and pre VMS 5.4 algorithms and password verification routines. The MAKE.COM procedure should automatically sense your VMS version and use the right algorithms when building IUPOP3. Finally, the current version of IUPOP3 logs just about everything that it does, with date and time stamps, to SYS$OUTPUT. We are careful to avoid logging paswords of course, but most other activites are logged profusely. This is partly because we have a very heterogeneous and complicated electronic mail environment at IU, and we sometimes need to verify the path of messages that have been "lost." Also, this profuse logging has simply helped us to debug IUPOP3 on several occasions. For security purposes, however, you should be as paranoid as we are, and jealously protect the IUPOP3 log! ------------ Extensions ------------ IUPOP3 implements none of the XTND extensions recommended in RFC 1082. However, it does implements two custom extensions for our own purposes. If a specially validated user issues an "XTND STATS" command to the server, a statistical report like this will be returned to the client: +OK Statistics follow Current Time : 1991-03-29 17:44:11 Start Time : 1991-03-28 07:32:53 CPU Seconds : 113.80 (1 mins, 53 secs) Current Threads : 2 Total Threads : 218 Max Threads : 8 Too Many Threads : 0 Retrieved Messages : 127 'From' Parse Errors : 0 Normal Disconnects : 215 Abnormal Disconnects : 2 Client Timeouts : 1 Current Users : 0. hughes 1. levanon . If a specially validated user issues an "XTND SHUTDOWN" command to the server, the server will perform a clean shutdown after all clients have disconnected. Administrators of the IUPOP3 server can validate users for this report by creating a file that looks like this: # # lines beginning with '#' are comments # stats system levanon hughes shtudown system levanon hughes Then, define the logical name "POP_XTND_LIST" for the server, equivalenced to the file's full file specification. Note that this is a generic mechanism for validating other XTND commands we (or you) might wish to implement. ------------- Making IUPOP3 ------------- To build IUPOP3, simply type this command in the IUPOP3 distribution directory: $ @MAKE The MAKE.COM takes two optional paramters: $ @MAKE [UCX | MULTINET | WINS] [MMS | NOMMS] Although MAKE.COM should be able to automatically detect your TCP/IP implementation and whether or not you have MMS installed, you may override the automatic detection by supplying either or both parameters. ------------------ Configuring IUPOP3 ------------------ After you execute the MAKE.COM procedure, you'll have to edit the IUPOP3.COM (which actually runs IUPOP3), and START_IUPOP3.COM (which runs IUPOP3.COM as a detached process). The only changes you'll need to make to these procedures are to correct the directory specifications like "SYS$NOWHERE:[NOBODY]". These unusual and probably invalid directory references are used to encourage you to correctly configure IUPOP3 for your individual site. You might also wish to change START_IUPOP3.COM to submit IUPOP3.COM to a batch queue, instead of running it as a detached process. We prefer the latter approach. ------------ Comments ------------ IUPOP3 is an unsupported program. If you decide to use it, do so only in strict adherence to the copyright/disclaimer shown at the top of this file, in COPYRIGHT.TXT, and throughout the source code. You may send comments and bug reports via internet mail to iupop3@indiana.edu, or bitnet mail to IUPOP3@IUGATE. We will respond on a time-available basis. We do appreciate hearing from you.