98.07.14 - EEN
   IMAP4D32 -  Fixed bug with Alpha build that would not return header 
		and text with a fetch BODY[] or fetch BODY.PEEK[].
		(sendbodysec() in imapfech.c  nCurSec=0;)
98.07.09 - EEN
   BPSERVER - 
     Fixed port incrementing problem with retries by modifying Thread1 to 
      check if pPopAdvise->nTries<1 before it increments the port and protocol number 
      to pass to SendAlphaMessage. (Ap_exec.c)
      
     Modified Thread1 to set pPopAdvise->nBaud =sGNI.nAlphaBaud vs SGNI.nAlphaPort.
      (Ap_exec.c)

98.07.01 - RSS
   IMAIL1 - Changed to send messages with 4 digit year.
      makemsg.c:CreateMailHeaders() - Changed to use SYSTEMTIME structure 
         instead of tm.
98.06.30 - jaj
   IMONITOR - moved log menu options to system admin
     instead of host admin to match IWebMsg (w_login.c,
     webnet3.c)
   - RSS
   SETUP - Changed product list in buildboard dialog to include Web Messaging
      and Beeper/Pager support.
98.06.29 - RSS - NOT added to Release Notes.
   IMAILSRV - Corrected problem with endless delivery loop to nowhere when max
      recipeints is set to 0.
      getlprm.c:GetListParams() - Changed line that sets max recipients to use
         the registry setting if it is greate than 0, otherwise sets to 5.
   SMTP32 - Changed nMaxLstProc back to default of 10.
      loadvars.c:LoadVars() - Changed line that sets nMaxLstProc to use the
         registry setting if it is greater than 0, otherwise sets to 5.

98.06.26 - RSS
   IMAILCPL - Corrected problem with incorrect display of TimeZone information
      in control panel (Added to Release notes).
      GetTZ.c:GetTimeZone() - Corrected missing length parameter in 
         RegQueryValueEx(). Changed call to wsprintf() to sprintf(); wsprintf
         does not support the '+' format specifier.
         Changed the default timezone to be +0900 if JAPAN is defined.
      Nsvccpl.c:LoadDirs() - Changed call to GetTimeZone() to new parameter.
98.06.25 - RSS
   IMAILSRV - Corrected problem with repeating subject modifications in 
      Japanese version.
      sentto.c:Process_SubjectMods - added a call to JIS_EncodeStr() when 
         testing the subject line for the existence of the mod string.
         CreateBodyFile() - Changed to use StripCRLF() from Util_Lib; Removed
            an extra line feed that was being added after subject modification.
            (Not in Release Notes).
98.06.24 - RSS 
   - None of these placed in release notes.
   IMAIL1 - Corrected problem with missing deliveries when sending multiple
      separate messages.
      Makemsg.c:SendMailFile() - Changed to loop 1000 times or until it gets
         an un-used name for the queue files.
   SMTP32 - 
      Chkrules.c:ReadRule() - Changed to check for NULL pointers and return a 
         valid pointer.
      ldeliver.c:LocalDeliver() - Added second check for rules.ima just before
         the check for the user's rules.ima. This one checks a file in the
         "TopDir" for the domain to filter spam or presort mail.
98.06.23 - RSS
   IMAILSRV - Corrected missing menu in IMAILSRV.EXE main window.
      listsrv.rc/listsrvj.rc - Changed name of menu from "LISTSRV" to 
         "IMAILSRV".
98.06.22 - RSS
   IMAILSRV - Corrected bug introduced in the fix on the 19th.
      In sendto.c Modified Process_SubjectMods() to re-encode the subject
         on exit if the "RE: [subject]" was found.
   SETUP - Corrected missing strings in table.
      mscuisjp.rc added translated strings for IWebMgr.
98.06.19 - RSS
   IMAILSRV - Added /imnt40/imail32/common/mimdec.c to project to handle 
         decoding headers.
      In sento.c Modified Process_SubjectMods() to add a length parameter for 
         re-encoding headers. Changed Process_SubjectMods() to check for an
         encoded header before checking for the SubjectMod or "RE:". This was
         necessary because MS-OE encodes the whole subject line, not just the 
         non-ASCII text. Added a check at end of function to re-encode subject
         line if it had been encoded.
      Changed functions that call Process_SubjectMods() to reflect the new 
         parameter.
98.06.18 - RSS
  IMONITOR - Changed determination of diskspace to correct false reporting
              on disks over 4.3gb.
   svc.c:TestDiskSpace() - Added determination of clusters needed and changed 
             to only call an error when clusters needed exceeds clusters
             available.
98.06.17 - RSS
  COMPLETE - Set up defines to build v4.05 for Japanese, v4.06 for everyone 
              else.
  SETUP  - Corrected installation of browser.cap to wrong directory on a fresh 
            install.
   myinst.c - Changed DoMyInstallStuff() to call DoCopy("browser.cap") after
               everything else is set up.
98.06.16 - RSS
  IMAILSRV - Corrected kill.lst for mail lists not working.
   sendto.c - Check for sender in kill.lst was only being made if the list
               was subscribe only. Moved check outside of the function 
               block for "restricted" so that all senders would be checked
               against the kill.lst. 
98.06.12 - jaj
  SMTP32 - changed log entries for SMTP32 to "SMTP-" and fixed processid (ws_locks.c)
           eliminated lock entries being written to the log (ws_locks.c)
98.06.11 - RSS
  ADDUSER - Changed adduser.c to check for highbit characters in the username
            for the Japanese version.
  IMONITOR - Changed w_usradd.c to call the proper string for "User can not 
             modify LDAP attributes".
  REGIST32 - Changed dialogs to read "Hide &from Information Services" instead 
             of disable finger and whois.
98.06.09 - RSS
  IMAILSRV - Changes to unsub.c to correct unsubscribing from the list by mail.
             Took out section of code that checks to see if the user is in 
             each file. Routine now checks and removes at the same time.
  IMAILSEC - Changed logic in SetOneIMailUserAttribute() to corrected bug that 
             was deleting attributes instead of setting/adding them.
98.06.08 - RSS
  SMTPD32 - Changed call to start list server in timer.c. Parameters were 
            reversed.
  ADDUSER - Consolidation - Changes to auexport/loadvars/whois.c; strcpy, 
            strcat, etc.. to corresponding 32bit calls; fopen/fgets/fputs to 
            CreateFile, GetFileLine (util_lib), WriteFile; functions using 
            time and struct tm converted to use SYSTEMTIME.
98.06.05 - jaj
  IMAILSEC - changes for "listserv" = "imailsrv" in lbxrtns.c, regstuff.c
  IADMIN - changes for listserv = imailsrv in tview.cpp
         - RSS
         - Changes to imaillist.cpp:GetPeriodIndex() to correct Bug 243 and
           Bug170/171(jp).

98.06.04 - RSS
  IMONITOR - mntlst.c - Corrected mission '<' in szMON_WEB_LISTPARAMEDITADD, 
             that was causing a problem with the List Administration screen.
98.06.03 - RSS
  IMLIST - Extensive changes to remove references to "listserv" and "listsrv". 
           Defines placed in listsrv.h as LST_EXEC_NAME="imailsrv" and 
           LST_PROD_NAME="IMail List Server". To use names 
           in other modules include listsrv\listsrv.h preceded by 
           #define NEEDLISTINFO.
98.06.02 - RSS
  SETUP - Modified ntimsvc.inf to include bprpgr/iwebmsg in release install. Minor
          changes to setup to add iwebmsg.
98.06.01 - EEN
  IADMIN - Commented out #ifdefs that used GN instead of GivenName for LDAP
            functions in user1.cpp.  Modified user7.cpp to treat zipcode as
            a synonym with postalcode and made OrganizationalUnit a synonym 
            with OrgUnit.
  
  REGIST32 - Modified the attribute name array int USERPROP.C to use the prompt 
              values instead of attribute name for easier understanding by users.

  IMAILSEC - Modified the attribute name defines int LBXRTNS.C to use the prompt 
              values instead of attribute name for easier understanding by users.

98.05.29 - RSS
  SMTP32 - In SendMass(), added copyright trailer for all messages for timed 
           version. Currently ifdef'd out with #ifdef EVAL_TRAILER.

98.05.29 - EEN
  IMAP4D32  - fixed mis-interpretation of RFC that had the server returning the header
              and text when a fetch body[#] command was issued.  Now returns only the 
              text of the body section. (SendBodySec() in FetchMessage.c)
            
            - fixed bug that had the status (UNSEEN) command returned the number of seen 
              messages instead of the number of unseen messages. 
              (DoIMAP_STATUS() in imapsrvr.c)
                 

98.05.28 - EEN
  IMAP4D32  - fixed bug that returned message text then responded with an error
              instead of success.  (FetchMessage BODY[] section in Fetch.c)

  IMail.CPL - added allow searchall checkbox and Max Matches Edit box to the
              LDAP property sheet.  (svccpl.rc, resource.h, ldap.c)
  IAdmin    - added Init LDAP Db and Optimize LDAP Db buttons to Domain and Host
              property pages.  (iadmin.rc, resource.h,host1.cpp,domain.cpp)

98.05.27 - RSS
  IMail1 - #Ifdef'd fPrescan() where it determines whether or not to ISOEncode 
           the body of the message. Set it to JAPAN only otherwise bEncodeBdy 
           remains FALSE.
98.05.19 - RSS
  IMonitor - Corrected inability to log in. Problem was in util_lib:FindCharPos(). See
              changes there.
98.05.14 - EEN
  IAdmin - Modified CIAdminDoc::SaveCurrentEntry() in IAdminDoc.cpp to remove call
              to SetOneIMailUserAttribute() to set the NO_FINGER_FLAG in the ldap
              database.  (moved to imailsec SetIMailUserEntry)
  
  IMailSec - Modified SetIMailUserEntry() in urtns.c to make a call
              to SetOneIMailUserAttribute() to set the NO_FINGER_FLAG in the ldap
              database.

  IMonitor - Modified POST_adduser(),POST_chguser(), and POST_chgldap() in w_useradd.c to remove 
               call to SetOneIMailUserAttribute() to set the NO_FINGER_FLAG in the ldap
               database.  (moved to imailsec SetIMailUserEntry)

  Regist32 - Modified UserPropMsgProc() in userprop.c to remove call to SetOneIMailUserAttribute() 
               to set the NO_FINGER_FLAG in the ldap database.  
               (moved to imailsec SetIMailUserEntry)

98.05.13 - EEN
  IAdmin - Modified USER7.CPP to treat the following pairs of attributes as
           Synonyms in CUser7::DoExtraFileSave():
              GivenName  GN, SurName  SN, Organization O, OrgUnit OU,
              Country  C, State  ST, City  L, StreetAddr  Street

           Modified CUser1::FillPage() in USER1.CPP to change hardcoded attribute 
           names to the attribute names used by the new ldap server see above pairs.

           Modified CIAdminDoc::SaveCurrentEntry() in IAdminDoc.cpp to make a call
              to SetOneIMailUserAttribute() to set the NO_FINGER_FLAG in the ldap
              database.  (Will move to imailsec SetIMailUserEntry)

  IMailSec - Modified lbxrtns.c to include ldapdef.h header file.
             Modified GetNextIMailUserAttribute(), GetOneIMailUserAttribute(),
               SetOneIMailUserAttribute(),DeleteOneIMailUserAttribute(),
               in lbxrtns.c to use ldapdll.dll calls for setting and retreiving ldap info.
             Modified SetIMailUserAttributes() in lbxrtns.c to use 
               ldapdll.dll calls to delete an ldap entry if lpIUA==NULL.
             Changed Defines in lpxrtns.c to reflect new ldap server default attribute names 
               as with IAdmin above.
             Modified DeleteIMailUserEntry() in Urtns.c to delete the user from the
               ldap database after it deletes it from the IMail database.
  
  IMonitor - Modified POST_adduser(),POST_chguser(), and POST_chgldap() in w_useradd.c to make 
               a call to SetOneIMailUserAttribute() to set the NO_FINGER_FLAG in the ldap
               database.  (Will move to imailsec SetIMailUserEntry)

  AddUser  - Modified AddUser.c so that ifdef INCLUDE_LDAP it will set the ldap attribute CN
               to FullName.

  Regist32 - Modified UserPropMsgProc() in userprop.c to make a call to SetOneIMailUserAttribute() 
               to set the NO_FINGER_FLAG in the ldap database.  
               (Will move to imailsec SetIMailUserEntry)
             Modified UserAttrMsgProc() in userproc.c to use new ldap default attributes as in
               IAdmin above.
                
98.05.13 - RSS
  Fixed logic in SMTP32 BCC filter.
  Changed stripping of CRLF when adding a trailer to correct double-spacing of 
   trailer.
  Added CRLF between end of message and trailer.
  ldeliver.c
    LocalDeliver()
  ws_con.c
    SendMass()

98.05.12 - RSS
  Changed SMTP32 to filter out BCC headers when delivering mail.
  Changed SMTP32 to check for a "trailer.txt" file in the IMail root directory
   and if found to append the text to an out going message. Also adds an X 
   header of "X-Trailer: __IMAIL_4__" so that the trailer won't get added twice
   when peering.
  ldeliver.c
    LocalDeliver()
  rdeliver.c
    Added:
         char szTrailFile[MAX_PATH];
         PSTR pS;
         
         pS = NULL;
         ZeroMemory(szTrailFile,sizeof(szTrailFile));
         wsprintf(szTrailFile,"%s\\trailer.txt",szMailDir);
         if (_access(szTrailFile,0) == 0)
            pS = szTrailFile;
         SendMass(smtp_client_skt,bodyname,FALSE,pS);
      in block just before Sendmass().
  ws_con.c
    Changed SendMass() call to:
      int SendMass(SOCKET sockfd,PSTR filename,BOOL binaryflag,PSTR pszTrailFile)
    SendMass()
    Added variables bMultiPart and bTrailer (BOOL).
    Added:
      if (!bMultiPart
       && !bTrailer
       && pszTrailFile != NULL)
       lstrcpy(&szMsgBuf[lstrlen(&szMsgBuf[1]) + 1],
         "X-IMSTrailer: __IMail_4__\r\n");
      to header exit section.
    Added:
      else if (strnicmp(&szMsgBuf[1],"X-IMSTrailer: ",15) == 0)
         bTrailer = TRUE;
      else if (strnicmp(&szMsgBuf[1],"Content-Type: multipart",23) 
            == 0)
         bMultiPart = TRUE;
     to message parse (header) section.
    Added:
      if (!bMultiPart
       && !bTrailer
       && pszTrailFile != NULL)
      {
         HANDLE hTrailer = INVALID_HANDLE_VALUE;

         if ((hTrailer = CreateFile(pszTrailFile,GENERIC_READ,
               FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,
               NULL)) != INVALID_HANDLE_VALUE)
         {
            char  szWorkBuf[4096];
            DWORD dwFilePos;
            int   nBytesInBuf;

            dwFilePos   = 0l;
            nBytesInBuf = 0;
            ZeroMemory(szWorkBuf,sizeof(szWorkBuf));

            while (GetFileLine(hTrailer,&szMsgBuf[1],szWorkBuf,&nBytesInBuf,
                     &dwFilePos,512) > 0)
            {
               if ((pStr = strchr(&szMsgBuf[1],'\n')) != NULL 
                || (pStr = strchr(&szMsgBuf[1],'\r')) != NULL)
               {
                  *pStr    = 0;
                  bStriped = TRUE;
               }
               else
                  bStriped = FALSE;
               if (szMsgBuf[1] == '.')
               {
                  szMsgBuf[0] = '.';
                  pStr = szMsgBuf;
               } else
                  pStr = &szMsgBuf[1];
               if (bStriped)
                  lstrcat(pStr,"\r\n");
               iNumBytes = lstrlen(pStr);
               iRetCode  = sendstr(sockfd,pStr,iNumBytes);
               // count the characters that we sent
               lBytesWritten += iNumBytes;
               if (iRetCode != iNumBytes)
               {
                  if (LoadLang((UINT)hInst,SMTP_SND_ERR,(LPTSTR)sztBuf) != 0)
                     DoWindowPrintf(hWndMain,sztBuf,iRetCode,iNumBytes);
                  else
                     DoWindowPrintf(hWndMain,sztBuf);
                  iRetCode = FALSE;
                  break;
               }
               iRetCode=TRUE;
            }
            CloseHandle(hTrailer);
            hTrailer = INVALID_HANDLE_VALUE;
         }
      }
    After message send routine.

98.05.07 - RSS
  Changed version numbers to 4.05. Labeled sourcesafe as 4.04. Changed
   all product version resources to 4,0,5,0. Changed copyrights to 1998.
   Changed all file version resources to 98,5,7,0.
98.05.05 - RSS
  Fixed bug not allowing passwords over 15 chars.
  IMailSec - 
    urtns.c -
      AuthorizedUser() - 
         Changed call to RegQueryValueEx() to use a buffer length of 
            MAX_PASSWORD * 2 instead of MAX_PASSWORD.
98.04.30-98.05.05 - RSS
  IMonitor - Changes to most files to correct TCP-14 and Access errors. Changed 
              strcpy() to lstrcpy() etc... Changed fopen/fput/fget to 
              CreateFile/WriteFile/GetFileLine (GetFileLine from util_lib). Removed
              CloseHandle() calls from routines starting threads with _beginthread();
              Changed calls to GetProcessHeap(), AllocHeap() and FreeHeap in Web threads.
98.04.30 - EEN
  IPnotify DLL (affects bpserve and Imonitor)
             ap_alpha.c
               Added support for UCP (Swisscomm) paging system.
             ipswsupt.rc & ipswsujp.rc
	       Added UCP radio button to DLG_ALPHAPAGE and DLG_COMSETUP.
98.04.23
  SMTP32  - corrected vacation processing check for precedence header

98.04.08 - 4.04 rc3
  SMTP32  - corrected process that writes message to user mailbox
              so it will not write an additional \r\n at the end of
              a message, because MS Mail Client would discard multi-
              part messages with the additional blank line.
  IMAP4D32 - Put in process to check the length of commands sent by
              the client so it will give a tagged NO response if the
              command is longer than 8K bytes (max size of buffer for
              storing commands).  Done because Netscape insists on
              sending commands on thousands of messages by listing
              each message individually (instead of using ranges) in 
              the command it sends to the server causing processing 
              to be done on only part of the command and undeterminate 
              results.
98.04.06 - 4.04 rc2
  SMTP32  - corrected processing of user%virtual@localhost in local
              to local actions
            modified Infobot and Vacation to use Reply-To: header
              if present
98.03.31 - 4.04 rc1
  SMTPD32 - Fixed FTGate ESMTP invalid RFC sytax problem with spaces
              following the colon before the data.
          - Will now disconnect sessions where a command line of longer 
              than 512 (RFC limit) is issued, unless it is in data mode.
              Will optionally automatically add the offending source
              address to the deny access table if the table is in 
              "Allow all except" mode and the "Auto deny possible hack attempts"
              flag is set in the "SMTP Security" tab of the Control Panel.
  POP3D32 - Will now disconnect sessions where a command line of longer 
              than 512 (RFC limit) is issued, unless it is in data mode.
              Will optionally automatically add the offending source
              address to the deny access table if the table is in 
              "Allow all except" mode and the "Auto deny possible hack attempts"
              flag is set in the "POP3" tab of the Control Panel.
  IMAIL.CPL - Added flags to support "Auto deny possible hack attempts" to
                "SMTP Security" and "POP3" tabs.
98.03.26 
  IMAP4D32 - Fixed computation of literal size for fetch BODY[] commands
             specifically for Outlook 98.  EEN
98.02.19 - 4.03b
  Corrected action of TOP command.
  Increased speed of login
  Corrects problem with renumbering (UIDL) first non-deleted message
   after a delete command.

98.02.09
  Imail - Added new rule processing logic to Imail client.
98.02.02
  SMTP32 - Added new rule processing logic.
    - Added body and header support
	  - new functions in smtp32\Chkrules.c:
      BOOL Type_check(int char_type, int c)
		  PSTR ReadRule(HWND hWnd,LPSTR pFileName);	
  Regist32
	  - Added new rule processing logic.
	  - Added body and header support.
	  - Added New rule add dialog
	  - Added New Rule Editor Dialog
	  - New functions:
		  BOOL FileExists(LPSTR pFName)
		  int SaveRule(LPSTR pFileName, PSTR pS)
		  int DoRulesEditDialog(HWND hWnd,PSTR pTitle);
		  int DoNewRuleDialog(HWND hWnd,PSTR pTitle);
	  - Included the smtp32\Chkrules.c 
		  PSTR CheckFor(PSTR pLine,PSTR pSearch);
		  PSTR ReadRule(HWND hWnd,LPSTR pFileName);	
98.01.16 
  IMAP4D32 - Fixed literal size computation for fetch body[] responses.
	   - added double quotes around content-disposition fields in bodystructure
		response.
	   - Fixed status command for public folders and folders with spaces.
	   - Fixed status response for inbox when the folder does not exist.
	   - Fixed append command for folders with spaces.
	   - Fixed SEARCH with ALL, OR, and NOT compound searches.

98.01.14
  IADMIN -in Export User function inserted check for a valid HTREEITEM after a
            call to GetNextItem before trying to expand the item and continue 
            the export.
          -The Only method for exporting users is to export all users, aliases,
            and lists for a selected domain.
          -The selecting individual users, aliases, and/or lists for export
            will be added in the next version.

98.01.13
  IADMIN  - The RebuildUID function in the Mailbox object now sets a flag that
              says it has rebuilt the UID file.  If this flag is not set when
              DeleteAllBefore function is called a rebuild of the UID file is 
              forced to insure that the MessageDate field of the UID record is 
              filled in for all messages.
          - If the first message in the mailbox is already younger than the age
              of desired deletions the delete function is assumed to be complete 
              as the first message in the mailbox is also the oldest message in 
              the mailbox.

98.01.12
  POP3D32-
  PSERVE-
  IMONITOR - Will allow change password for NT user if Change Password is
               allowed

97.12.17  403
  IADMIN   - IAdmin Max length of a standard alias changed from 70 to 127.

  REGIST32 - An alias over the max length of 127 prompts the user to make it a list.

  IMAP4D32 - Fixed Using the "%" as the folder name with a directory spec that contains a space
	       didn't display the folder list properly.
	   - Fixed Public folder could not be seen properly by the LIST command.
           - Fixed the RENAME command worked when the target folder was not given in 
		quotes and contained spaces.
	   - Fixed  "SELECT" with a single double-quote would return a success, it now returns
 		an error
	   - Fixed The STATUS command for "Public" folders.
	   - Added check to make sure the initial UID for a mailbox will be today minus
		700000000

  SMTP32   - Added check to make sure the initial UID for a mailbox will be today minus
		700000000
	   - Fixed possible mail loop with peering.

  POP3D32  - Added check to make sure the initial UID for a mailbox will be today minus
		700000000

97.12.08
  IADMIN   - Limited text in Delete Msg's by Date dlg to 6 chars to eliminate crash when
	       text is too long for date functions.
	   - Modified standard alias editing to replace CR/LF with comas when alias is less 
               than 70 chars.
	   - Modified file mask used when browse is selected while creating/editing a
               program aliases to include *.exe *.bat *.com.
  PSERVE   - Restricted password changes to not allow anybody other than a system administrator
  	       to change the password of a system adiminstrator.

  IPNOTIFY - Modified the order in which the Comsetup dialog's controlls are filled to 
               eliminate the possibility of having the wrong value put in the Beeper 
               timeout field.

97.12.03
  IADMIN   - Fixed bug that caused the alias list box to disappear on NT 3.51 if a program
               alias is the first alias selected when entering the alias leaf of the tree
               control.
  IMonitor - Eliminated the ability of a Host Administrator to change access permissions
               for a system administrator.
97.12.02
  IMAP4D32 - Re-fixed endless loop problem with body[] fetches.  
	   - Corrected section processing for multipart message fetching single parts.
	   - Corrected the Envelope to look for Sender header instead of X-Sender and
	       it looks for return-path header now.
	   - fixed list response to quote any strings that contain spaces and return
	       "/" "" instead of NIL "" when a LIST "" "" is received.
           - fixed status, create, rename, delete, subscribe, unsubscribe, select and
	       subscribe to handle spaces in filenames properly.
	   - fixed fetch bodystructure to handle filenames in Content-Type & 
               Content-Disposition headers that contain spaces.

97.11.28 
  IMAP4D32 - Fixed Problem with BODY and BODYSTRUCTURE Fetches.  Both Fetches
         were unable to locate boundaries properly and could end up with the 
         server in an endless loop causeing high CPU utilization and clients 
         waiting forever for a response.


97.11.26
  IMAP4D32 - Modified the index/uid matching routine for searches, it was going into
	       a loop incrementing the low number in a range search until it matched 
	       the number it was looking for or until it became higher than the high
   	       number in the range.  Now it simply checks to see if the number being
	       looked for is inclusively between the low and high values of the range.
	   - Fixed problem with Appending message from local box to server box where
	       uid file would not be written correctly and then the UID file would get
	       re-written eliminating any READ flags that had not been written to the
	       status header in the message.
	   - Corrected security problem where userid and password were written in clear
	       text to the log file.
     - Fixed Problem with Eudora Pro crashing with the FETCH BODYSTRUCTURE command
         by changing the "Encoding" field to "7bit" instead of "NIL" when to 
         "Content-Transfer-Encoding" header exists in the message.
     - Modified handling of message comming in while responding to a wild card
         fetch, previously Fetch responses would be issued for the new messages with
         incorrect message sizes, now a wild card fetch will only return responses for
         the number of messages that existed in the mailbox at the beginning of the 
         fetch.
    
97.11.25
  SMTPD32 - Modified loop counter to look for "Received: From " and "by hostname.domain"
	      to more accurately look for the number of times this message has been to
	      this host.
  POP3D32 - Modified the return for the LAST command, it was returning the last message
	      number+1 instead of the last message number.

97.11.24  
  SMTP32,SMTPD32,POP3D32 - Fixed processing of mailboxes with '-'
              in them so digest processing for lists with '-' in
              the name will work properly.
  IMAIL.CPL-Remapped Accelerator key on POP3 page for Allow remote
              password changes from 'A' to 'P' to eliminate conflict
              with Apply button.
  POP3D32 - Eliminated problem with handle count increasing by 1 with
              each logoff.

97.11.20
  IMAP4D32- Modified the Updated information sending module to 
              keep track of whether it needs to send updated flags
              information for a message.
          - Modified the Updated information sending module to
              keep track of whether or not the UIDVALIDITY has changed.
          - Added Access security to use POP3d32.acc file for remote
              access control.

97.11.15
  IMAIL.CPL,BPSERVE,IMONITOR - Modified Notifications, Pager and Beeper
              routines to use the IPnotify.dll that ships with Whatsup,
              this incorporates SMS and NTT paging and Beeping.

97.11.13
  POP3D32,SMTPD32,IMONITOR,IMAIL.CPL - Removed the address limit for
              access control lists.
  SMTP32  - Fixed bug with automated responses when mail is sent by rule to "nul" 
	      mailbox.

97.11.12
  ILDAP   - Now returns users while using the NT User database.
	  - Still outstanding, will sometimes fail to return ALL matches
97.11.07
  imap4d32, smtp32, smtpd32, pop3d32, ILDAP will be in a v4.02d patch all further
    changes will be included in 4.03

  ListServ- Fixed Precedence header
          - Fixed the digest tabs when modifying an existing list.
  imontinor- Insured Web interface looks for proper file names for viewing 
              system log and syslog.
  imail.cpl- Removed checkbox for allowing POP clients to use the UIDL.
  imap4d32- Fixed problem with continuing to send after receiveing a reset
              which contributed to huge logs and server thrashing to add more
              to the log even though the connection to the client was lost.
          - Fixed problem with FETCH RFC822.HEADER returned more characters
             than the client expected which caused an "uknown taged response"
             error on the client.
          - Fixed erroneous UIDL file re-writes and validation.
          - Fixed UIDL re-write to pay attention to the date in the from line of the
             message.
  pop3d32 - Fixed erroneous UIDL file re-writes and validation.
          - Will not re-write mailbox just to set a read flag (performance issue),
             the UIDL file will be updated with the read flag and the mail message
             header will get updated next time the mailbox needs to be re-written
             to delete a message.
          - Fixed UIDL re-write to pay attention to the date in the from line of the
             message.
97.10.31
  pop3d32 - Fixed inserting of carraige return/linefeeds when sending long lines to clients.

97.10.27   
  smtp32  - Fixed inserting of carriage return/linefeeds when processing long lines
  imap4d32- Fixed extraneous CR/LF sent when doing a FETCH BODY[HEADER.FIELDS]
	        - Fixed non-rewrite of UID file and MBX when expunge is done.
  
97.10.24
  bpserve - Added support for NTT paging for testing

97.10.23   
  smtpd32 - Fixed inserting of carriage return/linefeeds when processing long
            lines.
  pop3d32 - Removed 1000 message limit for clients.
          - Removed requirement for client to send a list/stat command before
            retrieving messages.
          - Fixed problem where all messages in a mailbox were marked as read

  imap4d32- Fixed problem with FETCH BODY[HEADER.FIELDS] and BODY[#.TEXT]
              response.
          - Fixed problem with LIST command returning an INBOX in every
              subdirectory

97.10.20
   bpserve- Added support for SMS to server portion for beta testing.

97.09.30   Version 4.02c
   smtpd32 - added CRLF to the NOOP response to work with MS Exchange Server

97.09.29   Version 4.02b
   smtp32 - Fixed crash that could occur during rules processing if the source
	    Message contained multiple large To: lines in the header.

97.09.26   Version 4.02a
   smtp32 - Forwarding, strips CRLF from address.
	  - will add a From: line if non exists, to counteract Lotus
	    Notes non-compliance to RFC 1123
  IAdmin  - Forwarding, User forwarding field removed from Vacation Tab.
	  - Aliases, made alias edit box accept RETURN and added scroll
	    bar.
	  - Fixed conflict between Ldap Given/Surname fields and First/Last Name fields 
	    on user properties.
	  - Fixed List modification dialog to allow Subscribers only to be selected.
  smtpd32 - Adds hostname from HELO command to the Received by line to
	    maintain RFC compliance.
97.09.18
  IMail.cpl - Fixed the about box.
	    - added Install routine if the service is reported not installed.
  Setup   - if a service was not running prior to update it will copy the new executable,
	    but not attempt to install it.  If it was not previously installed a button 
	    will be available in the control panel to install the new service.
  smtp32  - Fixed rules processing for multiline To: header in incoming messages.

97.09.17
   Eliminated need for all .LRC files.
   IMAP4d32 - corrected high CPU utilization Error.
	    - modified UIDL validity checking and reconstruction routines
   IAdmin   - corrected problems with aliases over 70 characters to create a list alias
	    - made alias list edit control editable.
	    - modified UIDL validity checking and reconstruction routines
   POP3d32  - modified UIDL validity checking and reconstruction routines

97.08.08
  added IMail "peer" concept where users for a specific domain may
    be spread across multiple physical systems.  setup is performed
    in the "virtual host" configuration dialog by pressing the 
    "peer list" button.  each system in the list is queried to find
    the system that contains a userid if it is not found on the
    local system.  note that this ONLY works with real hosts or
    virtual hosts that are assigned an IP address.  this peer list
    should exist on each system that receives mail for a domain.
    the server does NOT have to be restarted after changing this
    setting.  NOTE: the default host field should be empty when
    using peer lists. 
  enabled ESMTP support for ETRN and SIZE
  modified IMONITOR and IWEBMSG to support settable "List Administrators"
    that can add or modify lists that they do not belong to.  A system
    administrator that is also a host administrator is a list admin.
    Only system administrators can enable this in a users configuration.
  corrected processing of rules sending mail to "NUL" (or the trashcan)
  added -export option to addusers.exe and corrected help display

97.06.12
  smtp server/client correction
  imail.exe mime decode correction
  imail1.exe registered header correction
  iadmin.exe registry backup/restore, log viewer, queue viewer

97.06.06
  correction of crash in imonitor
  correction of system log option in imonitor
  elimination of font name in web pages in imonitor

97.06.05
  correction of rcpt from in forwarded messages
  correction of loop counter in forwarded messages
  correction of From in pop3 delivered messages
  correction of Date: in smtp delivered messages

97.06.02
  changes to support specification and retention of reply to address 
    in imailsec, iadmin, imonitor (ALL MODULES MUST BE UPDATED!)
  correction of problems in iadmin

97.05.28
  correction of adding users with hyphens in adduser.exe, imonitor.exe
    and iwebmsg.exe
  correction of user count per host
  correction of timing in imonitor

97.05.27
  imap4d32.exe
   hierarchial folders fixed.
   Fixed bug that caused a UID fetch of a comma delimited set of messages
    delimited by commas would only return the first message and leave the
    client waiting for the rest.

  imail.cpl
   Added option to IMAP tab to allow administrator to determine if clients
    will have to subscribe to private or public folders before viewing.
    Because the standard says you will subscribe to all mailboxes, but
    few clients provide a method to subscribe to mailboxes.

  imail.exe
   fixed bug that caused a prompt for execution of attachment when
   both prompt for execution and automatic execution were turned off.

97.05.20
  imonitor startup changed

  iwebmsg list administration changed to match imonitor

  iadmin still changing.....

97.05.16
  support for user limiting per host (limited testing)

  iwebmsg changes to security, timeouts (re-added user management
    but really think it needs to be removed from this module)

  imail.exe changes to mime processing

  imonitor changes for sysadmin

97.05.14
  imail.exe
     corrected problem with new messages not appearing in mailboxes

97.05.09
  Control Panel - SMTP Security Tab
     added option to copy all inbound and outbound mail to an address
     (to meet government regulations for some people)
  Virtual Host configuration - added ability to have virtual hosts
    that have no IP address.  To pop into these accounts, users must
    use "user@virtualhost" as their userid and the specified password.
    (doesn't work with Web messaging yet, but does work with POP3,
    IMAP4 and IMonitor)  Requires an MX record for this type of
    virtual host that points to one of your real IP's.

97.05.02
  Control Panel corrections
  IMONITOR.exe
    Added access table pages and corrected user settings

97.05.01
  SMTPD32
    Correction of processing recipient <user@[ipaddress]>

97.04.30
  SMTPD32
    Support for Kill files to refuse to accept mail from specific
      users or hostnames (add "user@host" or "@host" lines in the
      MAILDIR\kill.lst file through control panel SMTP Security tab)
    Added flag for verifying valid from syntax (requires "user@host")
    Modified mail from parsing (corrects a parsing error with
      <user@host <mailto:user@host>> senders)
  Control Panel
    SMTP Security for above
  listsrv
    update (adds kill files)
  
Changes between 4.b2 and 3.04
   
  SMTPD32.exe (SMTP server)
    Changed (fqr) messages to only be displayed in debug mode.
    Support for IP address allow/disallow added.  Set in control panel
      for service via ACCESS button.  Must stop and restart service after
      change
    Added concept of "local systems" that is set in the control panel
      SMTP Security tab.  Can force only relaying mail to or from these
      local addresses or the local system itself.
    Support for Kill files to refuse to accept mail from specific
      users or hostnames (add "user@host" or "@host" lines in the
      MAILDIR\kill.lst file through control panel SMTP Security tab)
    Added flag for verifying valid from syntax (requires "user@host")
    Modified mail from parsing (corrects a parsing error with
      <user@host <mailto:user@host>> senders)
    Correction of processing recipient <user@[ipaddress]>

  SMTP32.EXE (SMTP deliver)
    Now sets the date field in the UIDL file when a message is delivered.
      If it has to create the UIDL file the initial UIDL value is a masking
      of the current date/time.  
    Fixed problem with forward loop.
    Modifications made to preclude possible data files being left behind.
    Fixed problem that caused a crash when reporting a WSA-Error.
    Speed increase and resource decrease
    UIDL correction
    Exception correction

  POP3D32.EXE (POP3 server)
    Fixed problem that could cause uids to get re-used if the uid file had
      to be re-built.
    Support for IP address allow/disallow added.  Set in control panel
      for service via ACCESS button.  Must stop and restart service after
      change

  IMAP4D32.EXE (IMAP4 server)
    Added IMAP server for IMAP4 and IMAP4rev1 support.
    Fixed Problem that could cause a crash if the in-memory msgflags were
      not in sync with mailbox msgflags.
    Fixed problem with out of sequence uids in a mailbox and problem that
      could cause uids to get re-used if the uid file had to be re-built.
    Fixed bugs that prevented server from working properly with Internet 
      Explorer 4.1 IMAP client.
    Added support for public mailboxes.  To gain access to public mailboxes 
      their must be a valid user of "public".  Any mailboxes in this users 
      directory will be available for reading by all IMAP clients.  User's 
      other than public can only read the public mailboxes.  A user must 
      first subscribe to a public mailbox before he/she will be allowed to 
      read it.

  LISTSRV.exe (List server)
    Added support for digests and much more
    Added kill file support
  
  ILDAP.EXE (LDAP server)
    Added for LDAP Server support.

  IMONITOR.exe (Monitor and remote admin web server)
    Fixed List administration function to support multiple domains.
    Fixed some formating problems with log entries.
    Added Optional hiding of user list. 
    Incorporated changes to allow use of LDAP server.
    Extensive changes, improving remote user, system and list admin
    Fixed problem with resizing netscape windows causing a logout.
    Support for IP address allow/disallow added.  Set in control panel
      for service via ACCESS button.  Must stop and restart service after
      change

  IMAIL.CPL (Control Panel)
    Extensive rewrite change to tabbed dialogs
    Added IMAP Service Control.
    control panel extensive changes
    Modified Monitor Web dialog on english version to add hiding user 
      list option.

  ICMON.exe (Imonitor viewer)
    Support for Imonitor changes
    Correction of dialog box numbering

  IMAILSEC.DLL (internal)
    Added support for LDAP Server.
    Changed Message box for renaming a domain.

  REGIST32.EXE (User Manager)
    Added support for LDAP fields

  ADDUSER.EXE
    Fixed crashing when trying to load.

  IMCSTEN.LRC
    Changed a couple of strings to match U.S. Only version.

  IMCSTEN.LRC
    Changed string to support the new messagebox in imailsec.dll

  IMAILSEC.DLL, IMSEC35.DLL

=====================================================================
CHANGES UP TO 3.04i

97.02.07 --

IMCSTJP.LRC
   Changed translated string for the monitor "Greetings" screen.

IMAILSEC.DLL, IMSEC35.DLL
   Fixed bug that could cause pop3d32 to constantly increase system resource usage when 
using the NT user database.

POP3D32
   Changed to non-async processing to increase system performance.

97.01.20 --

LISTSERV,POP3D32,SMTPD32,SMTP32,IMONIT,IMAIL.CPL
  Modified to set timezone based on machines configured Time Zone.  TZ info
in message headers will conform to the SMTP standard.  If TZ offset is between
-4:00(DLST) and -8:00(ST) the timezone will be displayed in 3-char abreviation
otherwise it will be the offset.  Changing the setting in the IMail Control
panel will only effect the IMail Client running on the server, not the Servers.

97.01.09 --

IMCSTEN.LRC, IMCSTJP.LRC -
  Modified some POP3 Log error messages that began with (E) to (%08X) maintain 
consistency  in Logs.

SMTP32 -
   Fixed eroneous TimeZone stamp on generated messages.

POP3d32 -
   Changed the ASYNC Processing to Match New Model

97.01.08 --

SMTP32, LISTSERV, IMONITOR -
   Changed encoding of Message bodies to be ISO-2022-JP vs Quoted Printable.

Setup -
   Changed translation in directory path dialog for "machine"

96.12.19 ---
   Fixed bug with password encoding and decoding that made it incompatible with
     previous versions.
   Updated the help files.

96.12.18 ---
   Changed Regist32 and Listserv domain drop down box sizes
   Fixed message box for non-matching passwords in Regist32 
	(Error loading string 11301)

96.12.17 ---

SMTPD32 -
   Changed the Menu on the Server's Debug Window
   Changed the ASYNC Proccessing to Match New Model and use CreateFile instead 
	of fopen
   Made (fqr) no prog string only appear when in debug mode

Setup -
   Made it stop and start (if necessary) IWebMSG

ALL Services
   Changed display names for the Service Manager to always be English

ALL
   Changed Log Messages that started with (4UINT) to (8HEX)


96.12.13 ---

Monitor -
   Fixed bug that could cause IMonitor to crash when viewing log files that were
      last Modified in the month of December.
