3k Associates Logo
Home
Products
Services
About 3k Associates
What's New?
Publications
Vendor/Product Info
Job Listings
Public Domain Software

Google
3kassociates.com Web


Links
Site Map

Fixes and Enhancements to the NetMail/DeskLink/API common Code
                          3k Associates
                       NetMail/3000 Engine
                     Product enhancement report
                      Updated: 03/22/2007

                   PROGRAM FIXES/ENHANCEMENTS

Fixed Date
 in   Code    Description
---- -------- ----------------------------------------------------------------
**** ******** ARPA PROGRAM
B.09 05/04/13 Added JCW NETMAILSMTPPORTIN which allows sites to change the
               tcp port# NetMail/3000 & DeskLink listen on for incoming
               mail connections, and NETMAILSMTPPORTOUT which sets the TCP
               port SMTPOUT will use for OUTBOUND mail connections
               (default -if not specified- is the SMTP standard port 25)
B.09 04/08/11 Fixed bug in quote-of-day service, so messages will wrap
               after the last message in the catalog is reached
B.09 04/03/25 Added ARPANODAYTIME and ARPANOQOTD JCWs; when set to>0, they
               disable the activation of the DAYTIME and Quote-of-the-Day
               services (respectively)
B.09 03/12/29 Fixed bug when extended logging enabled, file gets re-opened
               repeatedly (til process runs out of descriptors)
B.08 01/09/05 Added code to support extended logging
B.07 00/08/04 Program now quits (parm=24) if it encounters an error on
              startup indicating that network transport wasn't started
B.07 00/05/09 New JCW ARPANOCHARGEN if set to '1' will disable the chargen
              service normally started by ARPA (chargen isn't needed by
              us, it was just provided as a useful test service, but has
              become a target of denial-of-service attacks)
B.07 99/11/16 Modified quote-of-the-day to only return one unique quote per
              day (max; i.e. if queried several times per day, you'll get the
              same quote til the next day - or next day it's queried)
B.07 98/10/30 Fixed problem where ARPA wouldn't run for systems where only
              the API was licensed.
B.07 98/10/15 Recoding tremendously increased responsiveness when multiple/
              rapid-fire connection requests come in. Should solve problems
              some POP sites experienced with heavy loads and users getting
              timeouts
B.07 98/10/13 We now override the default maximum of 7 "queued" connection
              requests for incoming network connections. Set to 255.
              May help sites with heavy loads experiencing timeout or connect-
              ion refused errors.
B.07 98/04/17 We now check for a file called "NONETWRK.PUB.THREEK" which,if
              present, will ensure that no network (smtp/pop/finger/etc)
              services get started up.
B.07 98/03/12 Changed DESKUSEGATEWAY jcw to allow a value of 3.
B.06 98/01/23 Added support for INT2SMTP process on startup (DeskLink
              Intrinsic gateway)
B.06 98/01/23 Added "DESKUSEGATEWAY" jcw to determine which (or both)
              HPDesk gateway process(es) to use
B.06 97/12/08 Quote-of-the-day now 'remembers' the last quote issued; it
              no longer resets each time the job is stopped/started
B.06 97/12/04 Added CRLF to end of "quote of the day" messages sent out by
              the server
B.06 97/11/21 Program now recovers from recurring IOWait CCL errors; these
              used to disable further network connections. IOWait problem
              with MPE recurred in MPE/iX 5.5 PP3.
B.06 97/05/09 Refused connections (from refuse/excludes files) are now
              logged to the errorlog.netmail file
B.06 97/02/14 New SEPARATESTDLISTS jcw in job stream causes netmail/desklink
              job to create separate stdlist spoolfiles for each son process
B.06 97/02/04 License file now supports dates>1999.
B.05 96/11/14 Shuts down much quicker; kills idle processes in parallel now
              rather than in sequence (as before)
B.05 96/09/05 Obeys the number of pop2 and pop3 servers (from global config)
B.04 96/08/02 No longer tries to start up gopher servers if product not
              licensed
B.04 96/06/12 Native Mode version
B.03 96/05/16 New jcw - if there is networking software available, but it's
              not configured (or user doesn't want to use it for some reason)
              then add !SETJCW ARPANONETWORK=1 to the netmail job before the
              !RUN ARPA.SYS.THREEK line.
B.03 96/03/12 If mailman job is accidentally run in the THREEK account
              (instead of HPOFFICE) and DeskLink is licensed then the program
              prints an error message in $stdlist and to console then stops.
B.03 96/02/27 Fixed problem with IOWAIT errors when 3000 gets a tcp request
              from a system it can't get back to (route problems in nmmgr)
              arpa no longer aborts; and new requests can continue
B.02 95/11/02 Now looks for ARPAQUEUE jcw on startup - if =0 (or not set)
              ARPA automatically puts itself in the CS queue. If =1, then
              it puts itself in DS, and if =2 it puts itself in ES.
B.02 95/06/20 Added support for running FINGSERV finger server program
B.02 95/06/20 Added support for an "excludes.data.threek" file where the
              admin can list ip addresses which will (+nnn.nnn.nnn.nnn)or
              will NOT (-nnn.nnn.nnn.nnn) be allowed to make any incoming
              connection (SPAM prevention and added security)
              (Addresses NOT listed are allowed to connect by default)
B.02 95/06/20 Fixed code so that if gopher database was not initialized, then
              we won't start any gophserv processes
B.02 95/06/20 Changed connecting socket# to print as an octal number instead
              of a signed integer
B.01 95/06/01 Added date/time display to $STDLIST for socket connections
B.01 94/11/04 Fixed lockup problem on MPE/iX 5.0 (server suspends and never
              awakens)
A.06 94/08/30 Workaround for bug in MPE/iX 4.5 that caused SMTPSERV processes
              to be created but not re-used
A.06 94/01/24 Enhanced code so printing to slaved printers ($LOCAL) will
              automatically eject the page for laser printers or other
              printers that normally buffer output; also for reflection
              users that used to have to manually hit the "close printer"
              button
A.06 94/01/20 Added support for SMTPSERV and POP2SERV processes to be launched
              and left inactive til awakened (greatly speeding up response
              time to new connections). Number of server processes for each
              is configurable on netmaint control screen

**** ******** MTA PROGRAM
B.09 07/03/22 Fixed to handle mailing lists with entries that are actually
               aliases (in ALIASES file)
B.09 03/03/28 Now periodically scans for incomplete mail messages left in
              MAIL or MAIL-TO-FORWARD that are older than 24 hours and
              deletes them. (Previously ONLY did this check when the job
              first started up).
B.08 01/09/05 Added code to support extended logging
B.07 01/05/29 Removed call to routine that scans all mailing-list addresses
               cleaning up bad entries whenever a bad mailing list address is
               found. DNS lookups on all the hostnames were taking VERY long
               times
B.07 00/11/17 Now compare for already-running SMTPOUT hostnames are case-
               INsensitive (no more multiple copies of messages when more
               than one recipient on a given host had the hostname entered
               in different cases)
B.07 99/06/02 Added new trusted-gateway routing option "R"=Y w/no source
              routing, and "A"=F w/no source routing
B.07 99/05/17 Can now set limit to max# simultaneous outbound SMTPOUT
              processes by :setjcw MAXSMTPOUTS=1..100
B.07 99/02/16 Fixed problem parsing invalid email addresses on mailing lists
              which when encountered, caused MTA (and all outbound email) to
              lockup
B.07 98/06/24 MTA initializes the poplog file with permanent allowed-relay
              IP entries from the file "RELAY.NETMAIL". (If relaypop JCW is
              enabled).
B.07 98/05/04 tracing and extlog settings can now be changed while the job is
              running (see traceon.xeq/traceoff.xeq/extlog.xeq for examples).
B.07 98/03/18 MTA now deletes any incomplete messages in MAIL or MAIL-TO-FORWA
              RD that are older than 2 days each time it starts up
B.07 98/03/04 Bug (below) also fixed for systems using the trusted gateway
              flag set to "Y" or "F"
B.07 98/03/02 Local mailboxes forwarded to another mailbox (or list) with
              a forward-to-node specified -where the node is the same as the
              local-systemname - caused mail to be "lost". It would be
              delivered to the mailbox name (even though it should have been
              forwarded)
B.06 98/01/23 Now activates SMTP2INT (HPDesk Intrinsic gateway process) for
              messages destined for HPDesk via the Intrinsic gateway
B.06 97/11/24 Fixed bug when a mailing list address was a local mailbox which
              is forwarded to another mailbox (same name) on another system-
              was losing the address
B.06 97/02/04 License file now supports dates>1999.
B.06 97/02/14 Fixed mailing list/mailbox forwarding so mailing lists can
              contain other lists/forwarded mailboxes, and forwarded
              mailboxes can be forwarded to other mailboxes or mail lists
B.04 96/08/14 Fixed bug where incoming mail to a mailing list, when delivered
              to users with 'rules', caused the rules to not get executed.
B.04 96/06/12 Native Mode version
B.03 96/02/27 Fixed problem with hostnames in database in lower case causing
              MTA to not launch SMTPOUT process correctly
B.01 95/02/14 Checks for network=DIALUP on outbound mail (host) records - if
              found, won't run SMTPOUT to send the message (messages may be
              sent outbound manually by running SMTPOUT in a job stream)

**** ******** NETMAINT PROGRAM
B.09 03/02/06 Was failing to display #messages and #bytes for some mailboxes
              in mail-user screen
B.09 02/12/04 Now deletes RULES linked to mailbox when you delete the mailbox
B.07 01/08/24 Modified mail-users screen to accept new 'advertise' values of
              'C' and 'H'
B.07 99/09/17 Modifed globals screen to accept new 'trusted gateway' codes
              of 'R' and 'A'
B.07 98/05/04 Fixed bug in forms file that caused problems when adding
              external programs (i.e. editors or spellcheckers)
B.06 98/01/23 Added HPDesk Intrinsic gateway screen for DeskLink users
B.06 97/02/13 "Return To Sender" key on "Individual Message Details"
              screen of "Database Information" option.
B.06 97/02/13 New "Database Control" option to schedule purging of old
              messages (related to "Aging Days" in Mailbox Maintenance).
B.06 97/02/12 New "FAX" field on Global Default Settings.
B.06 97/02/11 Added new Maintenance option for NetWork statistics.
B.06 97/02/10 Spaces and other special characters are no longer permitted
              in mailbox and mailing list names.
B.06 97/02/07 Network-info screen added; keeps online statistics for mail
              traffic among networks/the Internet.
B.06 97/02/04 License file now supports dates>1999.
B.05 96/10/16 "forward to user" on users screen can now be set to a local
              mailing list.
B.03 96/06/04 Some values were toggled when mailbox renamed
B.03 96/06/04 All mail was lost when mailbox was renamed
B.03 96/04/22 REALNAME was not getting updated correctly when a mailbox's
              department changed.
B.03 96/02/10 Fixed problem with DDX (CURRENT capacity was examined vs. MAXIMUM)

B.03 96/02/09 Allow operations on user/maillist names which contain spaces
              of hours of retrying before a normal/urgent message is returned
B.03 96/02/05 Added fields in "global" settings screen to configure #
              of hours of retrying before a normal/urgent message is returned
B.03 96/01/30 Fixed bug in settings of autolist field in user screen
B.02 95/08/15 Enhanced mailing-lists screen - in particular to handle
              lists to be used with a listserver.
B.02 95/07/13 Type-secured field now initialized when list is created;
              to '0N' if owner is $PUBLIC or $SYSTEM, else '0Y'.
B.02 95/07/12 1) Can't add/rename a user of same name as a mailing list.
              2) Can't add a list of same name as a user.
B.02 95/07/11 Problem with "forward to user":  when a user is renamed
              any occurrences of user as "forward to user" in another user's
              record is also renamed.  Also, a user can't be deleted if he
              appears as a "forward to user" on another user's record.
B.02 95/07/10 Added "# display lines" to user-default and user screens
B.02 95/06/22 Added new statistical items to known-host screen
B.01 95/03/01 Options added to HPDesk gateway config
B.01 95/03/01 Menu interface option added to user mailbox screens
B.01 95/03/01 If department is specified and it doesn't exist already,
              it's added to mail-names but no mail-list entry was added.
A.06 94/07/25 Wasn't allowing program to be run from all users with type=M
              (wasn't parsing session names in aliases)
A.06 94/04/19 Mail status detail screen has a 'delete' key to delete a
              selected outbound message
A.06 94/01/28 Each Screen Print comes out as a separaate spoolfile now;
              no need to exit program before screen would print
A.06 94/01/20 Major renovations; control options split into two screens to
              accomodate many new fields
A.06 94/01/20 New options under database status for outbound mail status;
              summary and detailed information in separate screens

**** ******** SMTPSERV PROGRAM
B.09 05/35/06 Added Civar MAXMSGSIZE, which if set, globally limits the
               number of bytes an incoming message can be (value is the
               actual upper limit on #bytes)
B.09 05/23/06 Added check to eliminate empty messages
B.09 05/04/06 Added Civar NETMAIL_INBOUNDHOST which can be set to an IP
               address (format 00n.00n.00n.00n - i.e. 192.001.002.010)
               and if set will restrict ALL inbound email (SMTP) connections
               except those from that IP address
B.09 04/11/05 JCW NOWINDOWSCHARSET now also filters =?UTF-8?, =?KS_C?,
               =?ISO-8859-1?, =?KOI8-R? subject lines
B.09 04/10/21 Added NETMAILNOVRFY jcw, which if set (>0) will disable the
               SMTP "VRFY" command altogether
B.09 04/05/12 Modified log'msg routine (SMTPINLG/OULG,DESKINLG/OULG) routine
               to retry opening log file before giving up (previously it tried
               one time, and if the file open failed, data wasn't logged)
B.09 04/04/21 Forced SMTP-FROM="<>" within the Received: header for messages
               with a null return path (purportedly bounce/DSN emails)
B.09 04/04/19 Added a check to verify the HELO hostname for forgeries and
               bogus names
B.09 04/03/04 Modified errorlog to log DNS hostname of sending system if
               available; only log SMTP HELO hostname if no DNS name
B.09 04/03/03 Added checks of sending machine's DNS hostname against the
               REFUSE/REFUSEL files
B.09 03/12/23 New JCW NOWINDOWSCHARSET when set in the background job will
               now filter all incoming messages with =?windows-####? in the
               subject line (i.e. subjects using non-english character set)
               Obviously, do not use this filter if you receive messages from
               sites using these character sets, though NetMail/3000 does not
               support the character set conversion in subject lines anyway;
               such messages would only be readable by POP clients that
               had the other character sets installed
B.09 03/11/21 Modification to reduce the number of netmail/3000 error message
              emails generated caused by routine SMTP/network disconnects
B.09 03/03/27 Fixed a bug in comparing strings in the refuse/includes files
B.09 03/03/25 Added logging to errorlog file of matches in INCLUDES,INCLUDEL,
               REFUSE, and REFUSEL (modified arpcat00 required also)
B.09 03/02/10 Wasn't checking SMTP-FROM or From/Sender fields in the message
               against the various excludes (domain name checks)
B.09 03/02/05 Delete orphaned(incomplete) message if QUIT received before
               entire message processed (some M$ Outlook clients quit at
               ANY invalid recipient even after some valid recipients have
               been recorded; but before the message contents have been
               sent).
B.09 02/07/11 Added several new entries to the extlog file; we now log
               info records (start with a "?") in the file, denoting
               -when a blocked host connects, a info record is logged
                showing that the host is blocked and by which list
               -whenever a message id is allocated while processing
                messages
               -if other exclusion reasons are hit while processing the
                message (invalid domain, no reverse dns, forged domains)
B.09 02/07/09 Expanded delays for slowing down blocked mail servers
               (includes 1 second delay between each LINE of the smtp
               welcome banner, and 10-15 second pauses before returning
               any responses) **Only to servers blocked by whatever
               real-time blacklists are defined on the site.
              Fixed defect that sometimes deleted incoming mail after it
               was received and logged
              Fixed defect where RCPT TO: responses were affirmative for
               local users even when incoming message was going to be
               refused as spam(blocked site or domain). Now all users that
               utilize blacklists on their mailboxes generate 5xx permanent
               errors in reponse to RCPT TOs from spamming machines; hopefully
               this will cause some addresses to be removed from future spam
               runs.
B.09 02/07/08 Modified all references to EXTLOG so file is opened and closed
               around each access, so the file (circular file) can be printed
               or copied while the background job is running
B.09 02/06/28 Fixes to exclusion logic so if a host is specifically INCLUDED
               (+IP address in excludes.data) any mail will be allowed from
               that host, including items that would normally bounce like
               no-reverse-dns or forged-domain flagging
              Added better refuse messages for remote mailers when mail is
               refused for their host not having reverse-dns, or the domain
               of their message flagged as forged.
              Added a new CIVar to the netmail job, REFUSE_TLD, which
               contains a list of country codes. When a server connects
               and has reverse-dns that identifies it in that country,
               all mail is refused. [Recommended to block korea (.kr),
               brazil (.br), argentina (.ar), russia (.ru) and others
               where almost ALL outbound mail is spam]
B.09 02/06/05 You can now set VERIFYDOMAINS, which in addition to the
               behaviour when =1, now ALSO will cause email from ANY server
               that does NOT have any reverse-dns entry to be blocked
              CIVAR WK_DOMAINS can be set in the job stream to contain a
               list of email domain names. Mail received from any address
               in this list of domains (i.e. aol.com, hp.com) MUST come from
               a mail server which has a reverse-DNS name which matches this
               domain (i.e. spam from joeblow@aol.com coming from anything but
               an AOL.COM mail server will be blocked)
B.08 01/10/31 Added internal calls to DBXBEGIN/DBXEND to dynamically rollback
               the database state in case the program is aborted
B.07 01/08/24 Blacklist filtering is configurable per mailbox. Globally
               define which lists will be used in the job stream as before,
               but the "advertise" attribute in the user-mailbox screen now
               also defines whether blacklist filtering will be enabled for
               that mailbox. Values now are:
                Y = advertise (allow queries for this mailbox) AND DON'T use
                    blacklist filtering
                N = don't advertise and DON'T use blacklist filtering
                C = advertise AND use blacklist filtering defined in job
                H = don't advertise and use blacklist filtering defined in
                    background job
B.07 01/08/23 All blacklist names are now configurable via CIVars in the
              netmail/desklink job stream. Old (hard-coded) names are used
               if no user-defined names provided via CIVars. Each name, if
               provided MUST begin with a "." and provide the fully qualif-
               ied domain suffix to use in DNS lookups. Examples:
               !setvar NETMAIL_ORCA_LIST ".dul.orca.bc.ca"
               !setvar NETMAIL_MAPS_LIST ".rbl.maps.vix.com"
               !setvar NETMAIL_ORBS_LIST ".orbs.dorkslayers.com"
               !setvar NETMAIL_IMRSS_LIST ".relays.mail-abuse.org"
               !setvar NETMAIL_DSSL_LIST ".dssl.imrss.org"
               (these are all the default values if not overridden)
               Also, contact URLS can be provided for each of these
               blacklists (which are included in mail rejection messages)
               to point people to who to contact. It is recommended that
               you use these if you completely redirect the services to
               different services. Examples:
               !setvar NETMAIL_ORCA_CONTACT "www.orbl.org"
               !setvar NETMAIL_MAPS_CONTACT "www.ordb.org"
               !setvar NETMAIL_ORBS_CONTACT "www.dorkslayers.com"
               !setvar NETMAIL_IMRSS_CONTACT "www.mail-abuse.org"
               !setvar NETMAIL_DSSL_CONTACT "www.imrss.org"
B.07 01/06/11 ORBS blacklist went offline; new replacement linked in
               (orbs.gst-group.co.uk)
B.07 01/03/22 Fixed problem parsing headers in incoming messages; sometimes
               parser didn't stop at first blank line and interpreted what
               looked like headers inside mail message bodies
B.07 01/03/13 Due to naming changes at ORBS.ORG, updated internal server name
               used in ORBS blacklist lookups
B.07 00/03/21 Modified to parse Importance: high headers that M$Exchange uses
               for urgent messages
B.07 00/03/09 Modified internal locking strategy to increase performance and
               concurrency. Adding records to MESSAGES set now locks on INDEX
               vs entire dataset.
B.07 99/12/20 New JCW; throttlepop - if >0, then we force a delay on every
               socket read after a message exceeds 1Mb coming in
               (delay equal to 'throttlepop' tenths of seconds per read)
B.07 99/09/20 Now interprets MSMail/Exchange's X-MSMAIL-PRIORITY: HIGH header
               an equivalent to PRIORITY: URGENT
B.07 99/08/31 Added workaround to trim trailing "]"s off inbound email address
               as Exchange likes to do when forwarding messages. Was causing
               domain lookups to fail if verifydomains was enabled
B.07 99/06/02 Added new trusted-gateway routing option "R"=Y w/no source
              routing, and "A"=F w/no source routing
B.07 99/06/01 Added connection counter (default 300) which will cause each
               process to terminate after 300 connections (another process
               will automatically take it's place). Added due to some internal
               socket resource problems in MPE causing processes to hang after
               a number of socket errors (IPC Error 64s)
               Can add :SETJCW MAXCONNECTIONS=nnnn to change the limit
B.07 98/11/19 Errorlog file records excluded hosts and the message now tells
               you why it was excluded. Error messages returned to the mail
               sender also note the source of their exclusion.
B.07 98/11/19 Added ability to select any/none of three different online
               dynamic blacklists to filter spam
B.07 98/08/17 Corrected error message that sometimes reported "domain in
              refuse file" for invalid (no DNS) domains
B.07 98/08/14 Corrected error message that reported a spam relay-attempt
              for e-mail addressed to an invalid HPDesk address
B.07 98/06/25 Fixed problem with SMTP Server processes sometimes "eating"
              sockets (I.e. allocating them and not properly closing them out)
B.07 98/06/25 If "relaypop" jcw is set >0, then the mail server will not relay
              mail (i.e. accept an incoming message for delivery to ANY non-
              local mailbox) UNLESS:
                1) the recipient has a local forwarded mailbox
                2) the recipient is identified in the ALIASES file w/a
                   redirected non-local address
                3) the sending host's IP address is in the "RELAY.NETMAIL"
                   file
               or
                4) the sending host has logged into a pop mailbox (i.e.
                   successfully checked their mail) on this system within the
                   last 'relaypop' hours
              Any other attempts to relay are met with error messages to the
              sending host, entries logged in the errorlog file, and an urgent
              mail message sent to the mail administrator
B.07 98/06/10 Added support for "relaypop" jcw; if set (to #hours>0 and <24)
              then NO (SMTP) mail messages will be "relayed" unless they are
              submitted by a POP mail user that has checked their mail within
              the last 'relaypop' hours. This setting completely eliminates
              the possibility of your system being used to relay spam by
              outside person(s), but if you have POP users, they must get used
              to 'checking their mail' before sending mail. This setting does
              NOT affect incoming mail to local (or forwarded) recipients or
              ANY outbound mail from NetMail users.
B.07 98/06/04 Fixed bug parsing addresses with  inside quote(")s
B.07 98/05/27 Fixed problem with incoming messages/spam processing only
              reading the first line of From:/Sender:/Reply-To: addresses
              that span more than one line
B.07 98/04/30 Fixed error where messages with an empty or malformed From:
              header used to make it past the filters
B.07 98/04/30 Now supports extended event logging if extlog.netmail exists and
              jcw EXTLOGGING=1 in the background job
B.07 98/04/21 Fixes to support the "rnotify" feature (see features file)
B.07 98/04/03 Enhanced 550 error code to echo back the mailbox name (useful
              for broken MS Outlook clients that display only the 550 error
              but not what recipient was being used!)
              (550 is the SMTP response indicating that 'no one by that name
               exists' when another server attempts to deliver a message to
               an invalid/non-existant recipient)
B.07 98/03/24 HELO response to 'excluded' (spam) machines now indicates
              that their site is excluded
B.07 98/03/12 Changed GET'DESKNAME so that DESKUSEGATEWAY determines which
              HPDESK host name is appended.
B.07 98/03/09 Now supports minimal ESMTP protocol - including PIPELINING
              extension
B.07 98/02/09 Eliminated several instances where socket timeouts would gener-
              ate e-mail notices to the admin user
B.07 98/02/09 Added a check for a pending shutdown request while receiving
              a message; will cause a 4xx (temporary) error to be returned
              for that message (so it will be retried later) and the shutdown
              will be much quicker
B.06 97/12/22 Fixed a problem where the process would occasionally "eat"
              sockets, resulting in out-of-resources errors, causing the
              job to need to be stopped/restarted.
B.06 97/11/18 Fixed a bug where an incoming message to several recipients
              *with a delivery receipt requested* would only get delivered
              to the first recipient.
B.06 97/11/03 Now also supports a "local" includes file "includel.data.threek"
              which sites can maintain themselves in addition to our main
              includes file.
B.06 97/10/13 Error messages mailed to the administrator now include the name
              of the reporting program, hostname and IP address, and the last
              command sent and received
B.06 97/09/29 Now also supports a "local" excludes file "excludel.data.threek"
              which sites can maintain themselves in addition to our main
              excludes file.
B.06 97/09/29 Now also supports a "local" refuse file "refusel.data.threek"
              which sites can maintain themselves in addition to our main
              refuse file.
B.06 97/09/22 Now looks for "includes.data.threek" file for email addresses
              which are *allowed* even from excluded hosts (an override
              mechanism)
B.06 97/09/18 Server now looks for (and echoes if present) the contents of
              SMTPMSG.DATA.THREEK upon any SMTP connection (immediately
              following the initial netmail banner). All lines in SMTPMSG
              must begin with "220-" except the last line which must start
              with "220 " (no quotes). Creating a SMTPMSG file and FAILING
              to include the "220" codes will cripple your mail system.
B.06 97/09/18 Mail from "spam" domains (exluded hosts) now log the intended
              recipients in the ERRORLOG.NETMAIL file, and send back an
              error to each "RCPT TO" command sent by the spammer (which
              SHOULD cause them to remove that address from their lists).
              Previous behaviour where we just disconnected from spam hosts
              caused them to reconnect over and over; new method minimizes
              our resources used, logs recipient info for statistical
              reporting, and may even get your name OFF some spam mailing
              lists!
B.06 97/07/29 Now correctly uses resent-from or resent-sender headers to
              override from/sender addresses on incoming mail
B.06 97/07/28 We now check the SMTP MAIL FROM: address, as well as any From:,
              Sender:, or Reply-to: addresses within the message against the
              refuse file
B.06 97/07/28 Added SMTP-FROM="address" field to the received-by header on
              all incoming mail so you can see the envelope address used on
              incoming mail (useful to fine-tune your REFUSE file)
B.06 97/07/28 If jcw VERIFYDOMAINS=1 in the background job, any incoming mail
              must have a return address that comes from a valid domain (i.e.
              spam messages using bogus names like "@public.com" will not
              be accepted). Note; this may also cause some valid mail to be
              refused if sending users have misconfigured mailers
              *transient DNS problems cause mail to be accepted by default;
               only definitive "no such domain" responses from DNS will
               cause refusal.
B.06 97/04/24 Fixed code to insert "@gateway:" in front of recip name for
              e-mail being routed THROUGH the system to another trusted
              gateway (i.e. another system using this system as a trusted
              gateway and this system using yet another trusted gateway)
B.06 97/03/31 Added SMTPMAXRCPTS jcw to limit the number of allowed
              RCPT TOs that are allowed per message (spam preventer)
B.06 97/03/05 Fixed code to correctly find HPDesk users with I_NAME@HOST
              (first initial + last name) format
B.06 97/02/26 Invalid recipients and refused (spam) messages now write a
              message to the ERRORLOG. file describing
              the error
B.06 97/02/21 Incoming messages now log IP address of sending system as well
              as the DNS-registered hostname for the host (if it's different
              than the name provided by that system)
B.06 97/02/14 Corrected problem in parsing some return addresses (especially
              on read/delivery receipts)
B.06 97/02/04 License file now supports dates>1999.
B.06 97/01/31 Fixed bug where incoming messages were lost if the sending
              mail process disconnected its network connection before
              receiving our disconnect message (the return message after
              they send a QUIT)
B.05 96/11/07 Added DESKLINKVERIFY jcw - of set to '1' then we verify inbound
              hpdesk addresses; if not then we just hand them off to Desk to
              take care of (where invalid recipient messages just get dropped
              into the General Delivery mailbox in Desk)
B.05 96/11/06 If Desklink is licensed and a recipient is destined for HPDesk,
              the address is now checked up front (directly from the HPDesk
              database) - if no such user, message is refused (as normal
              SMTP mail is)
B.05 96/10/08 Parses the ALIASES.DATA.THREEK file and substitutes fully-
              qualified incoming mail addresses
B.04 96/08/14 Strips out tab characters and multiple spaces within e-mail
              addresses (incoming FROM addresses)
B.04 96/08/14 Added support for REFUSE.DATA.THREEK file with lists of e-mail
              addresses to refuse all mail from (SPAM list) - if any address
              within the list is encountered in a MAIL FROM:<> command, that
              message is refused (before it even gets to our system)
B.04 96/06/12 Native Mode version
B.03 96/05/31 Added Double'adder to prevent INTEGER OVERFLOW aborts
B.03 96/02/28 Some incoming messages to forwarded-mailboxes were getting
              folder fields null-filled, which didn't show up in mail lists
B.01 95/03/03 Changed shutdown process to better work with POP clients
B.01 95/02/24 Fixed bug where some incoming messages wouldn't register the
              subject
B.01 95/01/27 Fixed bug where local users (pop) not accepting mail when site
              didn't have netmail (only desklink and pop)
B.01 95/01/09 Coded around bug from cc:Mail SMTP gateway version 2.0 which
              sends spurious 'null' characters in data stream
              (Apparently Lotus fixed this in their version 2.0.3)
B.01 94/11/04 Fixed lockup problem on MPE/iX 5.0 (server suspends and never
              awakens)
A.06 94/01/20 Modified process to immediately suspend when started, to
              accomodate multiple suspended processes
A.05 93/10/11 Fixed undeliverable message process - encapsulates undeliverable
              message within a new message
A.04 93/06/14 Initial release
A.04 93/06/14 fixed problem with incoming mail with recipient names in ""s

**** ******** POP2SERV PROGRAM
B.06 97/02/20 Added flag to allow POP clients to "see"/download all messages
              (in all folders) as if they were all in INBOX
B.06 97/02/14 Corrected problem in parsing some return addresses (especially
              on read/delivery receipts)
B.06 97/02/04 License file now supports dates>1999.
B.04 96/06/12 Native Mode version
B.01 95/03/07 Changed socket shutdown process to better work with POP clients
B.01 94/11/04 Fixed lockup problem on MPE/iX 5.0 (server suspends and never
              awakens)
A.06 94/06/06 Modified message catalog; some server responses weren't
              formatted correctly (missing spaces after +/- responses)
A.06 94/01/20 Modified process to immediately suspend when started, to
              accomodate multiple suspended processes
A.06 94/01/20 Fixed bug in message length computation for error messages that
              was causing POP2 clients to hang when trying to read them
A.05 93/10/11 Fixed bug where lower case passwords weren't accepted from PC
              clients (inadvertantly upshifted)
A.04 93/06/14 Initial release

**** ******** POP3SERV PROGRAM
B.09 03/03/17 Changed default to automatically fixup corrupted messages
               (bad delimiter between headers and body, and correct byte
                counts)
B.07 99/12/20 New JCW; throttlepop - if >0, then we force a delay on every
               socket read after a message exceeds 1Mb going out
               (delay equal to 'throttlepop' tenths of seconds per read)
B.07 98/07/13 Fixed bug where permanent 'relay's were getting expired
B.07 98/06/10 Added support for 'relaypop' jcw (see SMTPSERV notes). POP
              server records all logins (ip address and time) in a file called
              'poplog.netmail' which smtpserv uses to check for machines
              allowed to relay mail (to outside servers)
B.07 98/05/18 Added debugging timer displays
B.07 98/05/12 POP3 server now supports the APOP authentication method. POP
              clients can select "APOP" as login method or the standard
              password method (which sends the passwords in cleartext over
              the network). APOP doesn't send passwords over the network -
              it sends an encrypted hash code that the server verifies.
B.07 98/03/09 Program now logs invalid password attempts to errorlog file
B.07 98/03/09 Added RECORDPOPLOGONS jcw - when set, write to $stdlist and
              system console whenever someone "logs into" their pop mailbox
B.07 98/02/09 Eliminated several instances where socket timeouts would gener-
              ate e-mail notices to the admin user
B.06 97/10/13 Error messages mailed to the administrator now include the name
              of the reporting program, hostname and IP address, and the last
              command sent and received
B.06 97/02/20 Added flag to allow POP clients to "see"/download all messages
              (in all folders) as if they were all in INBOX (HOSTNAME;ALLMAIL)
B.06 97/02/14 Corrected problem in parsing some return addresses (especially
              on read/delivery receipts)
B.06 97/02/04 License file now supports dates>1999.
B.04 96/06/12 Native Mode version
B.03 96/02/20 Added support for the UIDL command
B.03 96/01/18 Added a password server (as used by Eudora) (see PASSSERV)
B.01 95/03/07 Changed socket shutdown process to better work with POP clients
B.01 94/11/04 Fixed lockup problem on MPE/iX 5.0 (server suspends and never
              awakens)

**** ******** SMTPOUT PROGRAM
B.09 07/03/22 Undeliverable messages where the original from(return) address
               was an ALIAS address now get returned to the correct mailbox
               (instead of going to the postmaster address)
B.09 05/04/13 Added jcw NETMAILSMTPPORTOUT which allows sites to change
               the tcp port# that SMTPOUT uses to make outbound mail
               connections (default is the SMTP standard port 25)
B.09 04/07/12 SMTPOUT now supports ESMTP for outbound email
               -added support for SIZE ESMTP option
B.09 04/03/17 Added flag to disconnect from host after receiving any 4xx
               errors, so next attempt will be when smtpout is re-activated
B.09 04/03/16 Fixed handling of 4xx (temporary error) responses to RCPT TO
               SMTP commands. Will now retry the delivery later (vs just
               flagging messages/recipients undeliverable)
B.09 02/07/08 Modified all references to EXTLOG so file is opened and closed
               around each access, so the file (circular file) can be printed
               or copied while the background job is running
B.09 02/07/08 Modified to allow continuation lines in response to a RCPT TO
               command
B.07 99/10/08 When an error is encountered sending one or more messages to a
              host, we delete/re-put the first message in the chain - moving
              it to the end. In case there was a hangup with the first message
              in the queue, on subsequent delivery attempts other messages in
              the queue will get a shot at delivery.
B.07 99/03/12 Error messages from remote hosts were being truncated when
              reported in 'returned mail' messages. They were cut off at 80
              characters; now expanded to 128.
B.07 98/09/11 Once started, it wouldn't shut down til all mail destined for
              the remote system is delivered. This could cause long delays in
              the shutdown process. It now checks at the beginning of each
              new message to be transmitted.
B.07 98/05/28 Fix to extended logging (wasn't logging RCPT records) and some
              response messages
B.07 98/04/30 Now supports extended event logging if extlog.netmail exists and
              jcw EXTLOGGING=1 in the background job
B.07 98/04/24 If domain server (netmaint global) is set to "#$", then DNS
              will be disabled for all lookups EXCEPT for the SMTPOUT
              process (in effect letting systems with trusted-gateways
              allow DNS resolution of the trusted-gateway host)
B.07 98/02/09 We now check for a pending shutdown request between attempts at
              connecting to MX hosts
B.06 97/10/13 Error messages mailed to the administrator now include the name
              of the reporting program, hostname and IP address, and the last
              command sent and received
B.06 97/02/04 License file now supports dates>1999.
B.05 96/12/21 Properly handles output to a spooler-interface FAX system;
              using forward-to-node ="$phonenum parms"
B.05 96/11/06 Now recovers correctly from some broken Vax SMTP mailers that
              don't allow a RSET (after sending a message) followed by a new
              HELO command. SMTPOUT now quits if it receives a "503" error
              upon sending a HELO command if we've already sent a RSET in
              the same session.
B.05 96/09/05 Now prevents mailing loops; will automatically add a known-host
              (alias) record when smtpout detects a connection to its own
              system (and prints a notice to $stdlist and console)
B.04 96/06/12 Native Mode version
B.03 96/05/31 Added Double'adder to prevent INTEGER OVERFLOW aborts
B.03 96/02/20 Fixed a problem in nameserver resolution routine causing aborts
              when attempting to resolve hostnames whose DNS record included
              multiple CNAME responses
B.02 95/10/12 Fixed problem where we were sending a MAIL FROM:<> string for
              all outbound messages
B.02 95/08/28 Eliminated Dbexplain error message in $stdlist when run with
              info= that needs to be upshifted to find host in database
B.01 95/05/04 Fixed problem with nameserver resolver for sites with CNAME
              entries
B.01 95/03/20 Fixed problem with sending mail to systems which responded with
              multi-line responses to some SMTP commands
B.01 95/03/14 If nameserver field is blank (in netmaint global screen) then
              we automatically look at the reslvcnf.net.sys file for a list
              of nameservers and try those
A.06 94/05/16 Now correctly tries next name in MX list if it encounters a
              socket error (after connecting) while transmitting message
              data to the remote system
A.06 94/03/25 Now calls name resolver routine to find MX records, and if
              so will now try every MX-system before giving up on
              delivering the message(s)
A.06 94/01/20 Stripped down code; extracted all outbound HPDesk code and
              created a new program exclusively for it (SMTP2FSC)
A.05 93/11/29 Fixed bug processing multipart message to HPDesk - caused
              message to hang and tie up background job
A.05 93/10/11 Expanded size of intermediate file to allow for larger message
              attachments
A.05 93/10/11 Fixed undeliverable message process - encapsulates undeliverable
              message within a new message
A.05 93/10/11 Added parsing for Wollongong format Internet-HPDesk addresses
              (name%subloc%location)
A.05 93/10/11 Fixed problems where destination systems with routing problems
              sometimes hung the process

**** ******** SHUTDOWN PROGRAM
B.07 98/09/09 Added ",WAIT" entry point; causes program to not end until the
              background job actually logs off
B.04 96/06/12 Native Mode version
B.01 95/02/15 Shutdown now requires SM, OP, PM, NA, or NM capability to be
              run, or logon as MGR.THREEK

**** ******** FINGSERV PROGRAM
B.07 01/03/07 Added support for the new "hidden"+use blacklist option for
              mailboxes
B.07 98/03/25 Searches on just a 'name' now search only on a mailbox
              matching that name. To search all fields, use '?string'
              '!name' works as before
B.07 98/03/19 Looks for a link (or file) in /THREEK/PLANS/MAILBOX (where
              "MAILBOX" is the name of the netmail mailbox being finger'd;
              all upper case) and if found appends that file's contents to
              the returned "Finger" information as the "Plan:" for that user.
              For example; to link a .plan file for "SUPPORT" you could
              :newlink /ACCT1/PUB/.sup-plan;to=/THREEK/PLANS/SUPPORT;symbolic
B.04 96/06/12 Native Mode version
B.02 95/06/19 Initial release
B.03 96/04/18 Fixed bug - verbose mode "/W" was not being parsed correctly

**** ******** LISTSERV PROGRAM
B.06 97/12/30 Users added to lists were getting set to 'hidden' status by
              default; now they are not hidden
B.06 97/02/14 Fixed problem on parsing some formats of return addresses that
              was causing returned messages with invalid addresses
B.04 96/06/12 Native Mode version
B.02 95/07/14 Initial release of listserv program
B.03 96/05/08 Fixed bug where name-owner field on listserv-subscribed
              entries was null; thus not showing up in Netmaint when you
              look for the list/members

**** ******** GET PROGRAM
B.07 98/02/03 Added ;parm=-1 to suppress banner printing - useful when
              routing output to a file

**** ******** TCPACCES PROGRAM
B.04 96/06/12 Native Mode version
B.02 95/07/19 Modified to accept info string "command@hostname"
              (or just "@hostname" to send an empty string to the
              remote host)

**** ******** NMENCODE PROGRAM
B.09 03/06/24 Removed code that stripped trailing TAB characters on a line
               during quoted-printable encoding
B.07 98/04/01 Added "FORMAT=S" Reflection "labels" code for byte-stream files
B.07 98/04/01 For encoding byte-stream files, the computed FLIMIT for creating
              the resulting encoded file was falling short of needed FLIMIT in
              some cases, resulting in an "EOF-reached" error writing data.
              Adjusted the algorithm for computing expected disc space needs.
B.06 97/04/11 If file is variable rec len and NOT to be WRQ encoded, dump
              the record length and if VA, also add CR & LF to each record.
B.03 96/02/22 Now in native mode.

**** ******** NMDECODE PROGRAM
B.07 98/04/01 Added "FORMAT=S" Reflection "labels" code for byte-stream files
B.06 97/12/18 Fixed problem where M# files for HPDesk were getting built with
              a recsize of 10,000 bytes - which desk didn't like (desk's FSC
              process would abort with an invalid blocksize error).
B.03 96/04/22 Fixed rare situation where approximated EOF is short by 1
              record for BASE64 decoding - always add 10 records after
              approx. - unused records upon FCLOSE returned to file system.
B.03 96/04/16 Fixed Quoted-Printable problem when very first record is
              all blanks (was aborting).
B.03 96/02/22 Now in native mode.

**** ******** PASSSERV PROGRAM
B.06 97/02/04 License file now supports dates>1999.
B.04 96/06/12 Native Mode version
B.03 96/01/18 Initial release

==========================================================================
HP BUGS

OS   PATCH   SR#         PROBLEM
4.0  NSTCDI8             IOWait < error
4.0  NMSCD90             IOWait < error
4.0  NSSCDH5             misc NS
4.0  MPEEXP8             misc NS
4.0  LNKFXF4             misc NS
4.0  LANCDE1             misc NS
4.0  NSTCDI9 5003-094003 Sysabort #1457 - page fault in tcp/ip buffer manager
4.0          5003-051078 Sysabort       - printfileinfo on a socket
4.5  NSTCDK6 5003-094003 Sysabort #1457 - page fault in tcp/ip buffer manager
5.5 Powerpatch Express 4 Sysaborts whenever something uses NS Transport
                         -workaround to set "store and forward buffers" to 0