------------
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.
Name Revised Size Description
aaareadme.txt 14-May-2001 10:35 1,028 plain text
change_case.mar 14-May-2001 10:35 5,130 MACRO-32 source
copyright.txt 14-May-2001 10:35 1,052 plain text
descr.h 14-May-2001 10:35 2,826 C header
inetiodef.h 14-May-2001 10:35 1,084 C header
itmlst.h 14-May-2001 10:35 962 C header
iupop3.c 14-May-2001 10:35 20,196 C source
iupop3.com 14-May-2001 10:35 1,358 DCL procedure
iupop3.mms 14-May-2001 10:35 2,092 Module Management System rules
iupop3_commands.c 14-May-2001 10:35 26,708 C source
iupop3_general.h 14-May-2001 10:35 7,522 C header
iupop3_global.h 14-May-2001 10:35 3,260 C header
iupop3_utility.c 14-May-2001 10:35 15,350 C source
iupop3_vms.c 14-May-2001 10:35 27,682 C source
iupop3_vms.h 14-May-2001 10:35 4,132 C header
mailmiscdef.h 14-May-2001 10:35 11,642 C header
mailmsgdef.h 14-May-2001 10:35 5,562 C header
make.com 14-May-2001 10:35 5,124 DCL procedure
multinet.macro 14-May-2001 10:35 94
passwd_v53.c 14-May-2001 10:35 19,482 C source
passwd_v54.c 14-May-2001 10:35 1,454 C source
pop_xtnd.dat 14-May-2001 10:35 90
readme.txt 14-May-2001 10:35 9,374 plain text
rfc1081.txt 14-May-2001 10:35 37,298 plain text
rfc1082.txt 14-May-2001 10:35 25,620 plain text
share.opt 14-May-2001 10:35 30 VMS linker options
start_iupop3.com 14-May-2001 10:35 814 DCL procedure
ucx.macro 14-May-2001 10:35 76
version.h 14-May-2001 10:35 76 C header
wins.macro 14-May-2001 10:35 206