-----------------------------------------------------------------------------
                MDaemon Server v2.0 32/16 Release Notes
-----------------------------------------------------------------------------

Later releases have higher release letters such that Rel-C came before Rel-D
and contains some bug or problem that was addressed and fixed in Rel-D.  You
can review this page to determine all of the problems that were addressed
between releases.  This page is organized with the most recent release listed
first and gets added to whenever new bugs are found and removed.

Release T (Build 4 - 11/15/96)

  o  Minor tweaks for system performance.

  o  The server failed to properly store some of the options set in the Pop
     Host Settings screen.

  o  A bug which was leading to MDaemon running out of session timers (one
     of MDaemon's own internal resources) was found and fixed.

  o  If, after parsing all the headers in a POP downloaded message, no local
     addresses are found *and* you have set the server to delete non-local
     mail a notice will be sent to the postmaster that MDaemon has just handled
     a message and not delivered it to anyone.

Release T (Build 2 - 11/13/96)

  o  An error in the way the SMTP RSET instruction was implemented was
     detected and fixed.

  o  The server will now queue and accept up to 100 simultaneous connection
     requests.  The previous value was 5.

  o  Internal changes Rel-T Build 1 made to the MultiPop feature precluded
     the possibility of having multiple MultiPop settings spool mail into
     the *same* directory.  This has been corrected.

  o  A connection timeout feature has been added.  Although it's not in
     the interface (yet) you can set a timeout (in seconds) that you want
     MDaemon to use when waiting to connect to a remote server.  The
     default value is 10 seconds and will be automatically set in the
     INI file when you run T-2 for the first time.

     This does not set the 5 minute session level timeout!  This is a
     separate timer that is set on the connect event to the remote server.
     If this value is exceeded MDaemon will give up trying to connect to
     the remote server and will spool the message to the default gateway.

     Since there's not yet a corresponding interface control to set this
     value with you will need to manually edit MDAEMON.INI and set it
     yourself if the default of 10 seconds is unacceptable.  I'd recommend
     AT LEAST a 10 second interval.  It should probably be set higher.
     You'll have to experiment to find the best value.  The INI file
     entry for this setting is in the [Timeouts] section under "Connect".

  o  A few other special features have been added for compatibility
     purposes.  None of these features has an interface element yet so
     you will have to manually edit the INI file yourself to set them
     up if you need them.  Here they are:

     1) ForceReplyTo

     [Special]
     ForceReplyTo=Yes (or No)

     This feature will absolutely force every message which goes through
     MDaemon to contain a ReplyTo: RFC822 header.  If a message passes
     through which doesn't contain this header then MDaemon will add one
     setting it to the value of the message's From: header.

     Default = no

     2) SunOSCompatible

     [Special]
     SunOsCompatible=Yes (or No)

     This feature will allow MDaemon to accept the string "LF.LF" as the
     end of message indicator in addition to "CFLF.CRLF".  I have made this
     feature optional since it technically violates RFC-821.

     Default = no

     3) UseSemaphores

     [Special]
     UseSemaphores=Yes (or No)

     This setting governs whether or not the server should check for the
     presence of semaphore files at 5 second intervals.  If you're running
     the Windows 3.1 version and experiencing the disk thrashing that the
     old Windows can impose then you might want to set this value to NO.

     Default = yes

Release T (Build 1 - 11/12/96)

  o  The aliasing has been reworked (again).  As a result you will have to
     reenter you ACCOUNT and DOMAIN aliases (sorry).  Please print the
     following files which can be found in your \mdaemon\app directory:

     a) ALIAS.DAT
     b) DOMAINS.DAT

     After you print them please delete the files from the \mdaemon\app
     directory.  A new shell file will be generated when you run MDAEMON
     Rel-T for the first time.  You will then need to re-key your domain
     and account alias information again.

     Several changes have been made to the aliasing engine.  First, I have
     dropped the INCOMING/OUTGOING distinction on account aliases.  As
     far as I know it was never in use and was confusing even to me.  Also,
     the INCOMING/OUTGOING distinctions on domain names have been reworded
     to LOCAL/REMOTE which makes the new way aliasing works easier to
     understand.

     AS A RESULT OF THESE CHANGES THE FORMATS OF THE ALIAS.DAT AND
     DOMAINS.DAT FILES AS THEY EXIST NOW ARE OBSOLETE AND WILL NOT
     WORK UNDER RELEASE T!
                                         
     Here is how aliasing is working under Release T:

     a) Account aliases are only applied to local mail (ie.. the domain name
        must match the primary domain specified in SETUP | PRIMARY DOMAIN).

     b) Domain aliases work like this:

        1) If an alias has the LOCAL flag set then it will be applied only
           to recipient addresses for mail messages which originated from a
           local user.  This is a bit confusing so it needs an example.

           Let's say your domain is "altn.com" for the following examples:

           If "arvel@altn.com" sends a message to "arvel@anet-dfw.com" and
           there's an alias like so: "anet-dfw.com = altn.com, Local"
           then the recipient will be changed from "arvel@anet-dfw.com"
           to "arvel@altn.com" because the sender of the message is a local
           user (the domain name of the sender matched the primary domain
           name of the server - "altn.com").

           If "arvel@altn.com" sends to "arvel@anet-dfw.com" and there's an
           alias like so: "anet-dfw.com = altn.com, Remote" then the
           recipient WILL NOT be changed.  The message will pass through
           using "arvel@anet-dfw.com" since "arvel@altn.com" is a local (not
           a remote user).

           If a message arrives from "chadw@metronet.com" and is destined
           for "arvel@anet-dfw.com" and you have an alias like so:
           "anet-dfw.com = altn.com, Remote" then the recipient will be
           changed from "arvel@anet-dfw.com" to "arvel@altn.com" because
           "chadw@metronet.com" is a remote message source.

           If a message arrives from "chadw@metronet.com" and is destined
           for "arvel@anet-dfw.com" and you have an alias like so:
           "anet-dfw.com = altn.com, Local" then the recipient WILL NOT
           be changed.  The message will pass through using
           "arvel@anet-dfw.com" since "chadw@metronet.com" is not a local
           user.

     Please send me a message (arvel@anet-dfw.com) if you encounter any
     problems with the new aliasing scheme.  I expect there's bound to be
     something I've overlooked in this area.

  o  The way headers are parsed when mail is downloaded from the POP host
     has been substantially reworked.  You will need to at the very least
     inspect the Pop Host Settings screen to double-check that the new
     controls default to acceptable values.

     Here is a breakdown on how it works:

     The following headers are ALWAYS parsed in EVERY message which is down-
     loaded from the POP host.  The addresses which are extracted from these
     headers are placed into a pool of potential message recipients.  This
     pool is filtered and actual recipients are extracted from the pool based
     upon the values you set in the Pop Host Settings screen.

     Here are the headers that are parsed:

     A) TO: type headers - Of the following list, the first one which is
        found is used (they are looked for in this order also):

        a) X-TO:
        b) X-MDaemon-Deliver-To:
        c) To:
        d) Apparently-To:
        e) X-Apparently-To:

     B) CC: headers - Every address within the CC header is parsed and
        stored in the pool as a potential recipient.

     C) First and Second "Received" header - Whether or not these two fields
        are processed is configurable.

     Aliases are always applied to the addresses in the pool before they
     are processed.

     Once all the potential recipients are parsed from the message you can
     select based on the controls in the Pop Host Settings screen which
     addresses you actually want to honor.  You can deliver to only local
     addresses or to local and remote addresses.  You can elect to summarily
     delete remote messages and/or send a copy of the remote mail to the
     postmaster.

  o  The SETUP | PRIMARY domain window now has a place for you to configure
     inbound AND outbound port numbers for both SMTP and POP.  This allows for
     better compatibility with proxy services.

  o  The Liz bug (ESC) was found and fixed!  YES!  You'll have to find another
     one Liz (shouldn't be to difficult).

  o  The accelerator keys are working.

  o  The GPF on exit of the NT 3.51 version has been found and fixed.  Much
     thanks Michael and Julian!

  o  In Rel-S when MDaemon couldn't resolve or connect to a domain it would
     cache the domain name along with the IP of the default gateway.  This
     behavior is now configurable in the IP Cache Editor.

  o  The tray icon will change color if mail has arrived while it's been in
     the tray.  You can also move the mouse over the icon and get a count of
     new messages which have arrived.

  o  Support has been added for a PROCNOW.SEM file.  If this file is found
     in \mdaemon\app then Mdaemon will immediately process the mail regardless
     of scheduled settings.

  o  A new set of options has been added to the RAS configuration screen.
     Using these new options you can enter a program which MDaemon will run
     immediately after the RAS connection has been established but just before
     any mail has been transacted.  This is useful for people who must run a
     command-line finger program or something similar to unlock the mail.

  o  An error was found and corrected which was leading to strange mail
     sessions at times when filtered through a proxy like WinGate.  At times
     a session would mysteriously terminate leaving the log to look like
     this:

     [-1] Attempting TCP connection to [localhost]
     [-1] DNS resolution of [localhost] in progress...
     [-1] HOST [nt40] resolved to [127.0.0.1]
     [12] +OK WinGate v1.3 POP3 Gateway ready
     [12] USER arvel#anet-dfw.com
     [12] POP session complete, 0 bytes transferred!

     As you can see, there's no response to the USER command and the session
     aborts.  What's actually happening is a sincronization(sp?) problem.
     WinGate is triggering MDaemon multiple times while it's still processing
     the buffer from the previous signal!  I think I've got this problem fixed.
                
  o  A new switch has been added to the Multi-Pop screen which will allow
     you to enable/disable Multi-Pop functions.  Previously, you had to clear
     out the entire dialog box to make it stop collecting mail.  Now you
     just check the Enable/Disable control.

Release S (Build 1)

  o  The scheduler has been reworked (yet again).  Scheduler settings have
     been converted to the 24 hour clock format by overwhelming public demand.

              YOU WILL HAVE TO REENTER YOUR SCHEDULER SETTINGS!

     When you install this version, please go to the scheduler and press the
     "Clear All" button.  Then reenter your scheduler settings.  Sorry for
     this trouble but using the 24 hour system is much more flexible and
     easier to manage.

  o  The "minutes" setting in the scheduler can be typed into.  This will
     allow you to schedule uncommon intervals like 11:17 or 21:42 if you
     wish.

  o  An IP caching system has been integrated.  You can reach it by selecting
     SETUP | IP CACHE from the menu bar.  This cache is used to speed up
     mail delivery.  It is a FIFO type cache which allows you to specify the
     number of entries (and thus the size) of the cache.

  o  Use of the IP cache has been integrated into the regular host lookup
     functions of MDaemon.  MDaemon will first search the IP cache for the
     host it is delivering to.  If it can't find it in the cache, MDaemon will
     perform the lookup manually.  Using the settings in the IP Cache editor
     you can control whether you want MDaemon to automatically add hosts that
     it resolves manually to the cache.  You can also direct MDaemon to flush
     the cache at each processing interval.  This option is useful if you want
     to insure that your cache contains up-to-the-minute data but still want
     to use it during mail sessions.

  o  The HOST LOOKUP (hourglass button) now has an option to add it's findings
     to the IP cache.

  o  The server now starts up in the system tray (NT 4.0 and Win95 version
     only).

  o  An error was found and fixed which was causing the MIMETYPE.DAT table
     to be ignored under some circumstances.  It is now fully in use for
     those using the built in MIME Base64 encoder.

  o  An error was fixed which was causing MDaemon to prepend the list message
     header file to the beginning of each paragraph of the list message.

  o  A new set of controls has been added to the SETUP | PRIMARY DOMAIN screen
     which allows you to control the initial window state of new connections.
     You can select to have session windows created in a normal, minimized,
     or hidden state.

  o  I think I've found a workaround for the lost focus problem.  Hopefully
     this annoyance is a thing of the past.

  o  It is no longer possible to create recursive auto-responders.  The
     auto-responder engine will not generate an auto-response if the response
     is addressed to the mailbox which hosts the auto-responder.

  o  The way forwarded mail is generated has been substantially changed.
     Previous versions used the RAW system which worked great unless the
     forwarded message had embedded file attachments.  Now the forwarding
     system keeps all the messages in RFC822/MIME format.

Release R (10/26/96)

  o  Support for Multi-Pop added.  You can now direct MDaemon to connect and
     download mail from as many servers for as many users as you care to
     define.  CAUTION:  Going crazy with this feature can lead to a severe
     performance penalty so try and be conservative.

  o  Mail to unknown local users was not being forwarded to the postmaster
     even when this option was selected in the domain configuration screen.
     This has been fixed.

  o  RAS redial attempts now defaults to 1 (not 0).  A zero in this field
     was preventing MDaemon from dialing out!

  o  If you elect to use the "Check latest Received header" in the Pop Host
     Settings dialog then you will not be able to use the "Deliver To CC:"
     option.  The former option shouldn't be combined with other options.

  o  When adding a new user via the console or by remote control the new
     account's Pop Name/Password were not checked against existing accounts!
     This could lead to multiple accounts having the same Pop access settings!
     This was fixed!

  o  When adding a new user MDaemon wasn't checking to verify if the new
     account name was already in use as an alias to someone else!  Fixed.

  o  When an alias was created MDaemon wasn't checking to verify if the new
     alias was already in use as the name of a mailing list!  Fixed.

  o  A parsing problem in the auto-extracter was causing server crashes
     at times.  Fixed.

  o  Incoming alias transformations on account names will only take place
     if the domain name matches MDaemon's primary domain!  This was an oversite
     that should have been corrected in Rel-Q.

  o  Waiting mail stats added to the Router screen by overwhelming public
     request.

  o  The scheduler settings are now kept in memory at all times for speed
     sake.  This means that if you are changing schedule settings by directly
     editing the SCHEDULE.DAT file you will need to restart MDaemon before
     the changes can take effect.

  o  The "inpost process" has been removed as redundant code.  The "outpost
     process" has been renamed to "Prepost Process" and retained.  This
     options is available in the Setup | Primary Domain screen.  It works
     a bit differently also:

     a) 16-bit version:  MDaemon will create a file called POSTLOCK.LCK in
        the MLSPOOL directory and will block waiting for that file to be
        removed.  You're process (or batch file) must remove this file
        before MDaemon will return to normal operations.

     b) 32-bit version(s): MDaemon's primary execution thread will be
        stopped until the prepost process returns or until the number of
        seconds you specify in the Setup | Primary Domain screen has
        elapsed.  You can enter a value of "0" in this field to have
        MDaemon "go to sleep" indefinately waiting on your process to
        return.

  o  A stupid mistake in the auto-response editor was causing it to GPF
     on "Ok" or "Apply".  Fixed.

Release Q (Build 5)

  o  Debugging code removed.

  o  The parser in use when downloading mail from a POP host has been improved
     to allow for comments embedded within the address.  Previously, this was
     causing the message to be flagged errantly as "non-local".

Release Q (10/20/96)

  o  A couple of buffer overruns were leading to GPF errors when downloading
     mail from an ISP pop mailbox.  These were found (thanks Michael) and
     fixed.

  o  The RAS setup dialog box now has a place where you can specify the
     number of times MDaemon should redial the connection in case of a
     busy signal or other error.

  o  The Auto-Responder has a place where you can specify a mailing list
     and have respondants automatically joined to the list.

  o  The old LISTWARN/MODWARN files for mailing lists are now meaningless.
     The new system integrates a place in the list editor where you can
     specify a text file and flag MDaemon to either prepend or postpend
     the text to list messages.  This is a much more flexible system as
     you can have different header/footer files for each list.

  o  The Pop Host Settings screen will now allow you to specify a directory
     where all incoming POP downloaded mail will be copied before any
     processing is done on the mail.  This will allow you to see how the
     message looked before MDaemon did any parsing on it.  It will also
     serve as a safety feature in case MDaemon trashes the message :)

  o  The way MDaemon routes mail is completely different in this version.
     Previously, MDaemon would modify the headers of messages as they
     arrived placing the correct delivery information in the TO: header
     and overwriting the value(s) that was(were) originally stored there.
     Now, MDaemon uses X-flags to decide where to deliver the mail and since
     MDaemon is no longer dependant upon the TO: field containing a valid
     mailbox the contents of this field (along with the CC: field) are
     left untouched.  This is a much better solution since it leaves
     the original message unaltered (except for the addition of some
     routing headers used by MDaemon).

  o  Domain and Account aliasing has been radically altered.  You *will*
     have to redo your alias settings.  I'd suggest you printout your
     current ALIAS.DAT and DOMAINS.DAT before installing this version.
     The major change is that your aliases can now be set to apply to
     only incoming mail, only outgoing mail, or both.  You must reenter
     your alias settings again adding these new settings.

  o  The List Editor has a new option called "Respond to ESMTP EXPN".
     If selected the list will report it's membership in response to
     the EXPN command; otherwise this information will remain private.

  o  An extraordinarily annoying little bug was found and removed which
     was causing the input focus to shift from the current application
     to MDaemon whenever a new session window popped up - even if Mdaemon
     was minimized or sitting in the system tray!

  o  Newshell versions (Win NT 4.0 and Win 95) will use the new explorer
     type dialogs now.

  o  The extra text and headers that MDaemon was placing in forwarded
     mail have been removed.

  o  The "Delete Collected Mail for Non-Local Users" in the Pop Host
     Settings has been changed to a more logical "Send Collected Mail
     for Non-Local Users to Postmaster".

  o  RFC822 states that the postmaster account must be valid on all
     Internet mail hosts so you will get a warning on startup if MDaemon
     discovers that you have no postmaster alias!

Release P (10/13/96)

  o  The Router Window was slightly enlarged.

  o  Nearly every memory buffer in the parsing engine was increased to
     cope with long TO:, CC:, ReplyTo: lists etc..  A shortage in the
     length of these buffers was leading to GPF errors in the previous
     version especially while downloading mail from an ISP pop mailbox.

  o  There's a new option in the Pop Host Settings screen labeled
     "Parse Latest "Received" Header for Recipient Info?".  If selected
     MDaemon will check the most recent "Received" header and try to
     parse out the optional SMTP "for <address-spec>" information when
     it downloads mail from an ISP pop mailbox.

  o  If the domain portion is missing from an address in a message
     delivered to MDaemon via RAW, POP, or SMTP then MDaemon will
     append it's own domain name to the address.

  o  If MDaemon is handed a source routed message, the source route
     will be stripped and ignored.  MDaemon will not currently honor
     the source route but will attempt to make the final delivery
     itself.  Support for source routing may occur in a future release.

  o  Previously, message which arrived via POP or SMTP which lacked
     a TO: field in the message were not routing to the bad message
     directory.  Now they will.

  o  The output process was not functioning properly in that the server
     was not placed "on hold" until the output process returned.  Now,
     MDaemon creates a semaphore file called "POSTLOCK.LCK" in the
     MLSPOOL directory and freezes until that file is removed.  It is
     the responsibility of the outpost process (or the batch file that
     executes it) to remove the POPLOCK file.

  o  Previously, the moderator of a mailing list wasn't automatically
     numbered amongst the list's membership.  This lead to the bizarre
     situation where private lists would refuse mail from the moderator
     because he/she was technically not a list member!  Now moderator
     are automatically joined to the list.

  o  The list editor has a new option labeled "Use Warning".  If selected,
     the server will append the default list warning message to all
     list mail.  Previously you had no choise in this matter.

  o  The suppression lists have a new feature entitled "Inform Sender
     When Mail is Rejected".  If selected, a script is processed and
     returned to the sender using the auto-response mechanism.  The
     default script is "REFUSAL.RSP" which will be created in the
     APP directory automatically.  This script can contain any/all
     valid template variables that you would use for an MBF or auto-
     response script.

  o  A major problem with the auto-extractor was causing messages
     with multiple MIME base64 encoded attachments to decode improperly
     if you had "auto-decode" selected.  This bug was found and fixed.
     MDaemon can handle up to 25 individual attachments per message.

  o  A problem with the RAS dialer was found and removed which was
     causing the dialup to sometimes terminate ignoring the keepalive
     settings in the RAS setup!

  o  The Account Template Editor now has places to define default
     settings for Auto-Decode, Remote Control, and Pop Access.

  o  "Send/Receive" in the setup menu was misspelled.

  o  The scheduler was being needlessly checked every minute which
     taxed server resources.  Since the minimum interval that can
     be distinguished using the scheduler is 15 minutes the scheduler
     check only needs to occur every quarter-hour.

  o  The name of the mailing list will now be appended to the
     subject text of list messages and an X-Mailing-List: header will
     be added to the message.

  o  The Pop Host Settings has another new option labeled "Forward
     Mail to CC: Recipients?".  If selected MDaemon will send a copy
     of the message downloaded from the ISP pop mailbox to each
     address specified in the CC: header.  I think in the previous
     version you had no control over this.

  o  If MDaemon detects that you have no "postmaster" user defined
     at system startup a warning will be displayed in the Router
     Window.  RFC822 states that the postmaster account is required
     to be valid at each site.

  o  In the Pop Host Settings screen, the length of the User Name
     field has been increased to 150 characters for all our WinGate
     friends.

  o  Several fields in the Domain Configuration screen did not have
     the auto-hscroll bit set and were far too limited in the number
     of characters that could be input.

  o  The insertion of hard CR's in the auto-response mechanism was
     removed.

  o  Previously, if you had the "Delete Collected Mail From Non-Local
     Users" selected in the Pop Host Settings screen, MDaemon would
     delete the message *before* putting it through the alias trans-
     formation routine.  Now, it will check the recipient for aliases
     before deleting the message.

  o  In an attempt to cope with circular messages MDaemon can be
     configured to process the same message no more than x times.
     The default setting is 1 time which means that if MDaemon ever
     sees that message again it will be moved to the bad messagee
     directory.  You can adjust the setting to your liking by editing
     the MDAEMON.INI file and changing the [Domain] MaxMessageHops
     setting.

Release O (10/06/96)

  o  Found and removed some memory buffer overruns that were leading to
     GPF errors at queue processing time.

  o  When the system reports a "RAS sub-system error" you will get more
     detailed information about the cause of the error.

  o  Several problems related to parsing messages (especially when collected
     from a remote POP box) have been found and corrected.

  o  An overwhelming number of customer requests have lead to the re-
     working of the scheduler to make it even more flexible.  You'll
     have to look at it to understand the changes but basically you
     script the days/hours/minutes you want MDaemon to use yourself.
     This method saves screen space.  The scheduler also has two new
     features added which can initiate a mail session - I think you'll
     like them.
               
Release N (09/30/96)

  o  Due to extremely limited stack space in the segmented 16-bit Win 3.1
     version the Schedule/Ras/Pop options had to be removed.  Sorry, there's
     just not enough space to retain those features in the 16-bit version.

  o  The scheduler/RAS/and Pop options have been reworked and I think they
     make more sense now.  Rather than simply determining when POP mail
     should be collected from an ISP mailbox, the scheduler now governs
     when all remote mail is sent and collected; you no longer need to
     define a pop host in order to use the scheduler to control your
     outbound mail.  You *may* define a pop mailbox on the new pop host
     screen and MDaemon will connect and download messages just as before
     but you don't *have* to do this in order to control when your outbound
     SMTP mail should be sent.  Whether or not a connection is made
     prior to sending/receiving mail is governed entirely by the settings
     in the new RAS dialog screen.

  o  RAS settings have been removed from the scheduler and placed in
     their own setup dialog box (off the SETUP menu).  Simply put, if
     RAS services are required before sending or collecting your mail
     then you can fill out the controls in this dialog box and MDaemon
     will dialup/dialdown where appropriate.

  o  POP host settings have been removed from the scheduler and placed
     in their own setup dialog box (off the SETUP menu).  If you wish
     MDaemon to pick up mail from a remote ISP pop mailbox you just
     need to define the relevant setting in this new dialog screen and
     MDaemon will collect your pop mail for you at each scheduled
     interval.

  o  You can configure the port that MDaemon's built-in POP client will
     use when it collects mail.  This will allow you to integrate
     MDaemon with software like WinGate on the same machine.  Just
     tell WinGate to accept pop connections on some arbitrary port and
     tell MDaemon to use that same port when it collects it's mail.
     See the docs for WinGate for more info.

  o  The little telephone button has been removed from the toolbar because
     RAS functionality is now integrated into the main mail processing
     logic.  The regular "process now" button will activate the dialup
     code if RAS services have been activated.

  o  When mail is collected from an ISP pop mailbox the contents of the
     To: and CC: fields can now contain multiple recipients separated by
     "," or ";" characters.

  o  Better sit down for this one; it takes some explaining.  To facilitate
     certain current third-party development efforts the MBF features of
     MDaemon have been somewhat expanded.  Your MBF file can now specify
     values which will override those found in the actual message itself.
     This is mostly useful for auto-responders.  For example, a typical
     auto response file might be called VACATION.RSP and look like this:

     -BEGIN-
     Greetings $SENDER$!

     You're message regarding `$SUBJECT$` won't be read by me because
     I'm on vacation so LEAVE ME ALONE!

     Your's truly (yeah right),

     $RECIPIENT$
     -END-

     This is essentially the VACATION.RSP file that shipped with the first
     version of MDaemon Server.  In the past however you had no control
     over the values of the headers which were generated when this auto-
     response file was processed and mailed back to $SENDER$.  Now you
     can control the values of the RFC822 generated field headers by
     using the following macros in your .RSP (or MBF) file:

     %SetSender%=mailbox@host.org - changes who MDaemon thinks sent the
       original message.

     %SetRecipient%=mailbox@host.org - changes who MDaemon thinks should
       recieve the newly generated auto-response message.

     %SetReplyTo%=mailbox@host.org - controls the value of the RFC822
       ReplyTo header.

     %SetActualTo%=mailbox@host.org - changes who MDaemon thinks the
       "actual" recipient of the newly generated auto-response message
       will be.

     %SetSubject%=subject - changes what MDaemon thinks the subject of the
       message is supposed to be.

     %SetMessageId=IdString - changes what MDaemon thinks is the message
       id string for the message.

     %SetPartBoundary%=PartBoundaryString - changes what MDaemon considers
       to be the part boundary string.

     %SetContentType%=ContentTypeString - changes what MDaemon thinks is
       the content type of the message.

     GET THIS ONE:

     %SetAttachment%=filespec - makes MDaemon think that it should attach
       the specified file to the newly generated auto-response message.

     NOTES:

       Although all the macros listed above expand and work fine
       in MBF files for your run-of-the-mill mailbox, most of them
       only show their true power when used in conjunction with an
       auto response script.

       The %SetAttachment% macro can only attach *one* file to your
       message.  Subsequent calls to %SetAttachment% just overwrite
       the previous one.

       No actual changes are made to the original message file on
       disk - only to the contents of MDaemon variables which it has
       stored away in the computers memory - the file as it is on
       disk is untouched.  This is the primary reason why these
       features are of limited use to run-of-the-mill MBF files for
       your average mailbox *but* MDaemon generates new messages during
       an auto response event based on the contents parsed and stored
       in memory which we have control over now.

     Let's ammend our old VACATION.RSP script and use some of these
     new macros:

     -BEGIN-
     Greetings $SENDER$!

     You're message regarding `$SUBJECT$` won't be read by me because
     I'm on vacation so LEAVE ME ALONE!

     Your's truly (yeah right),
     $RECIPIENT$

     %SetSubject%=RE: $SUBJECT$
     %SetAttachment%=c:\windows\bugoff.exe
     -END-

     The new message which will be generated using this script as
     a template will have a custom subject line and will have the
     specified file encoded as a MIME attachment.

     The '%SetSubject%=RE: $SUBJECT$' instruction is handled in this
     way:  First the '$SUBJECT$' portion is expanded and replaced by
     the original subject text whatever that may be.  This make the
     string equivalent to: '%SetSubject%=RE: Original Subject Text'.
     Second, MDaemon replaces the original subject which it has
     stored in it's buffers to this newly calculated one.

     Note the placement of the new macros - they are listed at the
     END of the response script.  This is because you'll want to
     avoid side-effects.  For example, if the %SetSubject% macro
     were placed before the '$SUBJECT$' macro which appears in the
     third line of the response script the subject text will have
     been changed by the time the '$SUBJECT$' macro is expanded!

  o  Lists can be flagged as "private" allowing only messages from list
     members to be circulated.

  o  Replies to list messages can selectively be set to "Reply to List"
     (replying to a list message posts a followup message to the entire
     list) or you can leave this option off and replies will be privately
     sent to the list message originator (not the whole list).

  o  Lists can be setup to deliver *one* copy of list message to another
     remote host for delivery using multiple SMTP RCPT commands.  This
     can greatly reduce the workload on your machine if you are running
     lots of list traffic.

Release M (09/22/96) - I left out some obvious stuff in Rel-L !

  o  In some cases, MDaemon mishandled the POP UIDL command.  This was
     causing Microsoft Internet Mail to report a TCP/IP error and list
     something like this:  1 MD0001.MSG.1204   in the error box.  This
     problem was found and fixed.

  o  Added a button on the toolbar for forcing a RAS session.

  o  Now, when a RAS session completes the mail that it downloaded will
     be immediately dispersed rather than sitting in the queue waiting
     for the next queue processing interval.

  o  Messages grabbed from an ISP POP box were not being passed through
     the domain name/alias translation engines.  Now they are.

Release L (09/21/96)

  o  In preparation for a future which will have no limit on concurrent
     sessions, Rel-L removes the session limit on incoming connections.

  o  Passing /b in the command line (icon properties) will bypass the
     startup warning dialog in the demo version.

  o  Full RAS dialup/dialdown support for Win 95 and NT versions.

  o  Win 95 and NT 4.0 support for minimizing to the system tray for
     background processing.

  o  Removed yet another error related to HTAB characters in message
     headers which was causing problems for the message parser.  Can't
     I get through one release without an HTAB problem? ;)

Release K

  o  The demo version is now an uncrippled full 500 user version and
     it set to time-out at predetermined intervals.

  o  Mail which arrives for an unknown local user can be selectively
     routed back to the sender, to the "postmaster" user, and/or to
     the bad message directory.

  o  Added scheduled polling of a POP host for mail collection.

  o  Added a global suppression file.  If a message arrives and is
     listed in this file it is summarily deleted.

  o  Added suppression files per list.  You can define a separate
     suppression list to be applied to specific lists.

  o  Found a bug which was preventing users from remotely changing their
     pop passwords.

  o  Removed a bug that sometimes caused a GPF when an incoming SMTP
     session delivered several messages via the RSET method.

  o  Remote control commands and list subscriptions no longer require
     that arguments be provided in "< >" characters.  This makes things
     more listserv-like (someone test all these for me).

  o  Removed the code that was forcing the server to always start in the
     maximized state.  You can control the startup size of the window
     via the icon properties.

  o  The "part boundary" string separating attachment files in messages
     generated from a RAW file was not correct if the RAW contained
     multiple "x-flag=attach <filespec, MIME>" instructions.

  o  The server can now unfold folded headers containing tab characters
     (ASCII 9) as well as space characters and removed a bug which was
     preventing MDaemon from detecting the proper header/body boundary.
     This was a source of GPF errors.

  o  The list engine was sending two copies of the welcome file to new
     list subscribers if they subscribed themselves through a mail
     message and it was never sending the welcome message if the new
     member was added at the console!  Go figure!

  o  In the gateway thing:  if you have a gatewayed domain called say
     "my-gateway.com" and you want outside SMTP mail from the internet
     to arrive for this domain but the domain is unregistered you can
     still get mail to the server by having the mail sender address
     the piece like this:  mailbox{my-gateway.com}@my-real-domain.com.
     
Release J

  o  Totally reworked the random filename generator as it was at times
     causing problems on NT 3.51 and Windows 95.

  o  Limited support for installing custom gateways added (see the new
     docs for a complete description).
  
Release I (Labor Day Weekend - 1996)

  o  Found and removed a bug in the RAW parser which was incorrectly
     labeling unmoderated list mail as moderated.

  o  Found a *serious* bug which had the potential to crash the server
     with each message sent/recieved.  This one was extremely elusive.

  o  Squashed a bug which had the potential to crater the server each
     time a RAW file was processed and was causing domain <-> domain
     translation problems.

  o  Added a "clear background" feature which erases the wallpaper.

  o  Failure to specify a gateway host name in mdaemon.ini will now
     force the server to enter the setup dialog at program entry.
     This was causing problems for some folks.

  o  Rather than hard-coded warning text being applied to list messages,
     you can specify files which (if they exist) will be used as the
     warning text for list mail - the default is LISTWARN.DAT for non-
     moderated lists and MODWARN.DAT for moderated ones.  The server
     will create samples of these files in the \mdaemon\app directory.

Release H (08/27/96)

  o  First 32 bit Windows 95/NT/32s version.

  o  I forgot to account for messages which require byte-stuffing.

  o  Smtp header fields weren't always being properly unfolded.

  o  Sometimes the end of message sequence was recieved across packets
     which was causing some sessions to "hang" until the timeout event
     occurred.

  o  You can specify a background BMP file for the server which will be
     set as wallpaper in the main server window.

  o  Gone 3D!

  o  Added code to insure that only one instance of MDaemon will be in
     memory at any given time (16-bit version only).

  o  Pop sessions weren't handling a time-out condition properly.

  o  Tons of static data was moved to string-table resources which allowed
     me to up the STACKSIZE in the project .DEF file (16-bit version).
     This gives the server more breathing especially with regard to the
     recursive nature of the $INCLUDE<>$ macro.

Release G (08/22/96)
  
  o  Terminating the mail server via any method other than the FILE | EXIT
     was causing a GPF.

  o  Minimize/Maximize added to the message router (and a system icon).

  o  A bug was causing some mail transactions to hang after mail delivery.

  o  Removed a bug where $INCLUDE<>$ macros in welcome files, auto-res-
     ponse scripts, etc. were not working when combined with the
     $HELPFILE$, $WELCOMEFILE$, and $ACCTINFOFILE$ macros.

  o  A slider control has been placed on the router window which you can
     use to set the queue-run interval anywhere from 1 to 60 minutes.
     Previously, it was hardcoded at 1 minute (!?!).

  o  The server will keep statistics on itself now which may help to
     determine whether you need to split your domain into sub-domains.

  o  Domain mapping translation and user alias translation logic completely
     reworked (it was *full* of bugs).  Messages submitted to the mailstream
     either via SMTP or RAW are now properly translated.  Mail entered into
     the Mail Spool directory as an already formated RFC822 message is
     assumed to be valid already and will *not* be translated.

  o  Alias' can be assigned to list names as well as account names.  This
     is particularly useful in light of the fact that the *real* list name
     is limited to 8 characters.  For example a list called MARKET could
     be defined and a much more natural name of MARKETING could be set
     up as an alias for it.

  o  The welcome file that was supposed to be sent to newly subscribed
     list members was not working.

  o  A bug in the auto-responder feature was causing a GPF.

  o  A primitive DNS lookup function was added and can be accessed
     from the toolbar.

Release F (08/12/96)

  o  Found one last double delete on the same pointer (caused GPFs).

  o  Finished the 256k, HiColor and TrueColor bitmap routines for the
     intro screen

Release E (Version 2.0) (08/11/96)

  Important Note: Due to changes to the internal management of mailing lists,
  group definition files from previous releases of MDaemon are not compatible
  with Release E.  You will have to recreate your mailing lists (sorry).
  The upside is a much more flexible list system.

  o  Numerous memory and resource leaks were found and removed (hopefully
     all of them)

  o  The maximum number of concurrent mail sessions was doubled to 10

  o  The internal transaction I/O buffer was doubled in size to allow for
     greater mail throughput per session

  o  POP session window updated to display who is actually on the other
     end of the connection (there's a thought!)

  o  POP sessions will index and allow access to ALL files in the users
     maildrop.  Previously, only files ending in .MSG were indexed and
     made available.  This caused some MBF transformed files to be non-
     POPable.
  
  o  Server based process execution and proclist features removed.  These
     will be integrated into a future version as an external service.

  o  Extensive GUI changes.

  o  Support for list moderatation added.

  o  List welcome files added.

  o  Full mailbox aliasing implemented.  Alias editor integrated into the
     mailer GUI.

  o  Hardcoded aliases for MDaemon (such as listserv, list-serv, etc) removed
     from the program code and placed in the alias table.  This fixed a
     problem encountered when outgoing mail to list servers on other hosts
     was being translated to "mdaemon" (no good).

  o  When in the handshaking state, SMTP commands are processed from the
     buffer only after recieving an LF end-of-line code.  This fixes the
     annoying habit MDaemon had of processing the I/O buffer each time
     new data (even if just one character) arrived.  This change makes
     debugging the server from a telnet session much less frustrating.

Release D (08/04/96)

  o  POP3 TOP command not sending +OK prior to transmission of message
     headers.  This condition caused problems for offline/remote mail clients
     such as Microsoft Exchange (when in remote mode) and Agent 99e.

  o  The maximum number of mailboxes has been upgraded from two to five in
     the trial packages.  Two maildrops just isn't enough to make an effective
     evaluation.

Release C (08/04/96)

  o  After a maximum client load was accepted by the server and processed,
     all subsequent client connection attempts to the SMTP port generated a
     connection refusal from the server.

Release B (07/31/96)

  o  The POP server was incorrectly handling a POP session if the maildrop
     was already locked at the time the new session was initiated.  The
     server will now politely terminate the session under these circumstances.

  o  If an MBF failed to specify a default attachment prefix and extention
     via the "attach-prefix" and "attach-ext" MBF commands incoming
     attachments for maildrops set to auto-extract resulted in files of the
     form: ATHxxxx.ATH (where xxxx is a random yet unique identifier).  This
     has been changed such that by default incoming attachments are extracted
     and stored under their original file names.

  o  The documentation incorrectly states that attachment and message file
     name prefixes can be up to 4 characters in length when a maximum of only
     3 characters are actually allowed.

-----------------------------------------------------------------------------
To submit a bug report please send an email message describing the bug and the
situation under which it is encountered to the author at arvel@anet-dfw.com.

