ChangeLog.txt
上传用户:woshihumen
上传日期:2013-07-18
资源大小:484k
文件大小:58k
源码类别:

Email服务器

开发平台:

Visual C++

  1. NAME
  2.     XMail Change Log as of Version 1.22
  3.     [top]
  4. CHANGE LOG
  5.   Oct 12, 2005 v 1.22
  6.     *   The POP3 before SMTP authentication is now correctly interpreted as
  7.         real SMTP authentication, by the mean of @@USERAUTH.
  8.     *   'ATTENTION': Fixed a possible cause of buffer overflow in the
  9.         XMail's sendmail binary.
  10.     *   Changed the DNS MX resolution to allow better handling of partially
  11.         broken DNS servers configuations.
  12.   Jan 9, 2005 v 1.21
  13.     *   Added a fix for 64 bits porting compatibility.
  14.     *   Added the ability to exclude filters from execution in case of
  15.         authenticated user. By pre-pending the filter command token with a
  16.         token containing "!aex", the filters won't be run if the user
  17.         authenticated himself.
  18.     *   Added @@USERAUTH macro even to standard in/out filters (before it
  19.         was only defined for SMTP ones).
  20.     *   Added a new "NoSenderBounce" variable inside the SERVER.TAB file, to
  21.         enable XMail generated bounce messages to have the empty SMTP sender
  22.         ('MAIL FROM:<>').
  23.     *   Added a new "SMTP-MaxErrors" variable inside the SERVER.TAB file to
  24.         set the maximum errors allowed in a single SMTP session (default
  25.         zero, unlimited).
  26.     *   Added a "LastLoginTimeDate" variable to the "userstat" CTRL command.
  27.     *   Added external aliases support in the CTRL protocol.
  28.     *   The MESSAGE.ID file is now automatically created, if missing.
  29.     *   Changed the logic used to treat domain and user MAILPROC.TAB files.
  30.         Before, a user's MAILPROC.TAB was overriding the domain one, while
  31.         now the rules are merged together, with domain's ones first,
  32.         followed by user's ones.
  33.     *   The maximum mailbox size of zero is now interpreted as unlimited.
  34.     *   Fixed XMail's sendmail to detect non-RFC822 data and handle it
  35.         correctly.
  36.     *   The IP:PORT addresses emission in spool files (and Received: lines)
  37.         has been changed to the form [IP]:PORT.
  38.     *   Added filter logging, that is enabled with the new -Qg command line
  39.         option.
  40.     *   Fixed an error message in the SMTP server, that was triggered by the
  41.         remote client not using the proper syntax for the "MAIL FROM:" and
  42.         "RCPT TO:" commands.
  43.     *   Fixed explicit routing through SMTPGW.TAB file.
  44.     *   Fixed a possible problem with file locking that might be triggered
  45.         from CTRL commands cfgfileget/cfgfileset.
  46.     *   Added a check to avoid the CTRL server to give an error when a
  47.         domain created with older versions of XMail does not have the domain
  48.         directory inside cmdaliases.
  49.     *   The SMTP server FQDN variable should be set to the value of
  50.         "SmtpServerDomain", when this is used inside the SERVER.TAB file.
  51.   May 30, 2004 v 1.20
  52.     *   Fixed a possible memory leak and a possible source of crashes.
  53.   May 29, 2004 v 1.19
  54.     *   Implemented the "filter" command for custom mail processing
  55.         (MAILPROC.TAB, cmdaliases and custom domains).
  56.     *   If "RemoveSpoolErrors" is set inside the SERVER.TAB file, messages
  57.         are never frozen. Before there was a special case (delivery failure
  58.         and delivery notification failure) that could have lead to frozen
  59.         messages.
  60.     *   Made "aliasdomainadd" to check for the existence of the alias domain
  61.         (and reject the command if existing).
  62.     *   Introduced a new environment variable recognized by XMail
  63.         (XMAIL_PID_DIR), to let the user to specify a custom PID file
  64.         directory (this is for Unix ports only).
  65.     *   Implemented ability to stop custom mail processing upon certain exit
  66.         codes from external commands execution.
  67.     *   The SPAMMERS.TAB check is now bypassable (see doc for details).
  68.     *   'ATTENTION': Changed the "aliasdomainlist" syntax and output format
  69.         (see doc for details).
  70.     *   Made (on Unix setups) the PID file name to be dependent on the
  71.         daemon file name.
  72.     *   Implemeted a domain-wise MAILPROC.TAB and extended its "redirect"
  73.         and "lredirect" commands to support account specific (USER@DOMAIN)
  74.         and domain targets (DOMAIN).
  75.     *   Implemented SMTP filters to allow users to reject the SMTP session
  76.         before and after the remote client data has been received.
  77.   Mar 27, 2004 v 1.18
  78.     *   Restructured the external program execution environment on Unix
  79.         ports. Simplified, as a consequence of this, the system dependent
  80.         portion of XMail (SysDep*).
  81.     *   Fixed a bug in the address range parsing (x.y.w.z/s).
  82.     *   Fixed the alias lookup to perform a better "best match" wildcard
  83.         selection.
  84.     *   Fixed a bug in the DNS resolved that made XMail to not correctly
  85.         handle domain CNAMEs.
  86.   Sep 14, 2003 v 1.17
  87.     *   Added Bcc: removal from message headers in XMail's sendmail.
  88.     *   Added PSYNC logging (-Yl).
  89.     *   Added domain completion to XMail's sendmail when the specified
  90.         sender address (-f or -F) does not contain one. The environment
  91.         variable (or registry in Windows) DEFAULT_DOMAIN is looked up to try
  92.         to complete the address.
  93.     *   Fixed a bug in the return code of SysAccept() in all Unix versions.
  94.     *   Fixed a bug that was triggered by external command and filter
  95.         exiting soon. XMail was not able to correctly sync with the child
  96.         process by losing it. This apply only to Unix versions of XMail.
  97.     *   A notification message is now sent to the sender if the message is
  98.         handled with "smtp" or "smtprelay" commands and a permanent error
  99.         happen when sending to the remote SMTP server.
  100.   Jul 8, 2003 v 1.16
  101.     *   Added a new configuration file "smtp.ipprop.tab" to be able to
  102.         specify peer IP based configuration option, like for example IP
  103.         white listing against IP checks.
  104.     *   'ATTENTION': The filter return code has been changed and new return
  105.         codes are expected to be returned by filters. Please che the
  106.         documentation and update your filters before starting to use the new
  107.         version.
  108.     *   Added the ability to specify a custom error message for filters.
  109.     *   Fixed a bug in the string quoting function that showed up when the
  110.         string was empty ("").
  111.     *   Changed the order used by XMail to check the mailer domain. Now MX
  112.         check is performed first, then A record check. This caused a slow
  113.         down for domains having MX records but not A records.
  114.     *   Added two new Received: types to give the ability to hide client
  115.         information if the SMTP client does authenticate with the server.
  116.     *   Added the rejection map name inside the SMTP log file in case of
  117.         SNDRIP=EIPMAP error.
  118.     *   Modified XMail's sendmail to add the RFC822 Date: header if missing.
  119.     *   XMail now uses the name of the executable ( without .exe ) to both
  120.         register the service name and fetch registry variables.
  121.     *   The POP3 server now picks up messages even from the Maildir's "cur"
  122.         subdirectory.
  123.   May 3, 2003 v 1.15
  124.     *   Implemented a new filters feature that enable the user to stop the
  125.         selected filters list processing upon receival of certain exit
  126.         codes.
  127.     *   Fixed the wrong log file name generation when the daylight time is
  128.         active.
  129.     *   Fixed a bug inside the DNS MX resolver.
  130.     *   Fixed a bug ( Windows OS bug ) that made XMail unable to create
  131.         domains starting with reserved device names ( COM#, LPT, PRN, CON,
  132.         ... ). So, for example, a domain named "com4.domain.org" couldn't be
  133.         created because of this naming conflict.
  134.     *   Fixed a bug that made XMail to not apply filters for local mailing
  135.         list.
  136.     *   Fixed a bug that made XMail to crash under certain conditions.
  137.   April 2, 2003 v 1.14
  138.     *   Added a "Server:" field to the notification message. It'll report
  139.         the remote SMTP server host name and IP that issued the error. It
  140.         will not be present if the error does not originate from a remote
  141.         SMTP server.
  142.     *   Added a new command line parameter -MD to set the number of
  143.         subdirectories allocated for the DNS cache files storage.
  144.     *   Messages with non RFC822 conforming headers are now handled by the
  145.         PSYNC code.
  146.     *   'ATTENTION': The filter architecture has been completely changed. To
  147.         correctly update to this version you have to create two empty files
  148.         "filters.in.tab" and "filters.out.tab" inside the $MAIL_ROOT
  149.         directory. Please refer to the documentation for more information
  150.         about the new filter architecture. If you are not currently using
  151.         filters, the simple creation of the two files listed above will be
  152.         sufficent.
  153.     *   'ATTENTION': The internal spool file format is changed with the new
  154.         line added ( the 1st one ) that contain various message information.
  155.         Filters that rely on the internal spool file format must be changed
  156.         to match the new structure.
  157.     *   Fixed a bug that made XMail to not correctly report zero sized files
  158.         inside the mailbox.
  159.     *   Added file size to CTRL's "filelist" command.
  160.     *   Fixed a connect-error reporting bug on Windows platform.
  161.   January 25, 2003 v 1.12
  162.     *   Better check for user/domain names.
  163.     *   Changed search pattern for filters. Now a domain name is scanned for
  164.         all sub-domains.
  165.     *   Fixed a boundary check inside the Base64 decoder.
  166.     *   Added the client FQDN inside the SMTP log file in case the RDNS
  167.         check is enabled.
  168.     *   Added a new SERVER.TAB variable "SmtpMsgIPBanSpammers" to set the
  169.         message that is sent to the SMTP client when the client IP is listed
  170.         inside the file SPAMMER.TAB.
  171.         = item *
  172.         Added a new SERVER.TAB variable "SmtpMsgIPBanMaps" to set the
  173.         message that is sent to the SMTP client when the client IP is listed
  174.         inside one of the "CustMapsList".
  175.     *   Added a new SERVER.TAB variable "SmtpMsgIPBanSpamAddress" to set the
  176.         message that is sent to the SMTP client when the client IP is listed
  177.         inside the file SPAM-ADDRESS.TAB.
  178.     *   Fixed a bug inside the custom account handling that made XMail to
  179.         pass the old password instead of the new one.
  180.     *   Added OpenBSD support.
  181.   November 9, 2002 v 1.11
  182.     *   Added a new command line parameter -QT to enable a configurable
  183.         timeout for filter commands.
  184.     *   Fixed a bug that made XMail to ignore cmdalias accounts when a
  185.         wildcard alias was matching the account itself.
  186.     *   Added the 'smtprelay' command to the MAILPROC.TAB processing.
  187.     *   Removed the 'wait' command from all custom processing.
  188.     *   Added a new macro @@RRCPT to filters commands to extract the real
  189.         local recipient.
  190.     *   Changed the way the EXTALIASES.TAB mapping modify the return path.
  191.         It now change the "Reply-To:" instead of the "From:" to avoid
  192.         problems with signature verification software.
  193.     *   Implemented logging on SMTP transactions rejected because of mapped
  194.         IP or failing RDNS check.
  195.     *   Added a new SERVER.TAB variable "SmtpServerDomain" to force the SMTP
  196.         domain used by XMail in its banner string ( for CRAM-MD5 ESMTP
  197.         authentication ).
  198.     *   Improved DNS resolution for not existing domains.
  199.     [top]
  200.   July 27, 2002 v 1.10
  201.     *   Added a variable 'CustomSMTPMessage' inside the server's
  202.         configuration file SERVER.TAB to enable the postmaster to set a
  203.         custom message that is appended to the standard XMail error
  204.         response.
  205.     *   Added log entries in case of relay lists mapped IPs.
  206.     *   Fixed a build error on FreeBSD.
  207.     *   Added a new SERVER.TAB variable 'DisableEmitAuthUser' to block the
  208.         emission the the header 'X-Auth-User:' for authenticated user.
  209.     *   Added a new USER.TAB variable 'DisableEmitAuthUser' to block the
  210.         emission the the header 'X-Auth-User:' for authenticated users (this
  211.         variable overrides the SERVER.TAB one).
  212.     *   Added command line driven mailbox delivery mode (-MM = Maildir , -Mm
  213.         = mailbox).
  214.     *   Added sysv_inst.sh shell script to help creating SysV boot scripts
  215.         for XMail.
  216.     [top]
  217.   June 15, 2002 v 1.9
  218.     *   Fixed a bug in HOSTNAME:PORT handing code inside the PSYNC server.
  219.     *   Fixed a bug introduced in 1.8 in the Windows version that made XMail
  220.         to have bad behaviour when used with external programs.
  221.     *   Fixed a bug that resulted in XMail generating frozen messages even
  222.         if the SERVER.TAB variable was set to not create them.
  223.     *   Fixed a bug that made it possible to send a 'MAIL
  224.         FROM:<@localdomain:remoteaddress>' and to have the message relayed
  225.         if the IP of the current machine was inside the smtprelay.tab of the
  226.         machine handling the MX of @localdomain.
  227.     *   Implemented internal mail loop checking (internal redirects).
  228.     *   Added a new MLUSERS.TAB permissions flags 'A', that is similar to
  229.         'W' by instead of checking the 'MAIL FROM:<...>' address check the
  230.         SMTP authentication address (this will prevent malicious users to
  231.         forge the address to gain write permissions on the list).
  232.     [top]
  233.   May 19, 2002 v 1.8
  234.     *   Changed XMail's behaviour upon receival on long (RFC compared) data
  235.         lines on SMTP and POP3 fetch inbound doors. Before the operation was
  236.         aborted while now data is accepted without truncation, that might
  237.         make XMail to behave non conforming the RFC.
  238.     *   Added @@RRCPT macro to the 'external' MAILPROC.TAB command to emit
  239.         the real recipient of the message (@@RCPT could be an alias).
  240.     *   Added HOSTNAME:PORT capability to POP3LINKS.TAB entries.
  241.     *   Added Linux/PowerPC port.
  242.     *   Added 'filelist' CTRL protocol command.
  243.     *   Added SMTP HELP command.
  244.     *   Changed bounce message format to add the last SMTP error and to make
  245.         it works with Ecartis mail bounce processing.
  246.     *   Changed the XMail's sendmail implementation to accept '-f FROM' and
  247.         '-F FROM' non standard sendmail paramenter specification.
  248.     *   Fixed a bug inside the PSYNC server code that made XMail to fail to
  249.         resolve POP3 server addresses.
  250.     *   Various code cleanups.
  251.     [top]
  252.   March 03, 2002 v 1.7
  253.     *   Fixed a bug inside the POP3 server that caused bad responses to UIDL
  254.         and LIST commands in case of certain command patterns.
  255.     *   Added support for HOSTNAME:PORT (or IP:PORT) for the
  256.         DefaultSMTPGateways SERVER.TAB variable.
  257.     *   Added domain aliases cleanup upon main domain removal.
  258.     *   Added 'MaxMessageSize' inside USER.TAB files to override the global
  259.         (SERVER.TAB) one.
  260.     [top]
  261.   March 03, 2002 v 1.6
  262.     *   Added a new USER.TAB variable 'UseReplyTo' (default 1) to make it
  263.         possible to disable the emission of the Reply-To: header for mailing
  264.         lists.
  265.     *   Fixed a bug that caused XMail to uncorrectly deliver POP3 fetched
  266.         messages when used togheter with domain masquerading.
  267.     *   Changed index file structure to use an hash table for faster lookups
  268.         and index rebuilding.
  269.     *   New files inside the tabindex directory now have the extension .hdx
  270.         and old .idx files can be removed.
  271.     *   Added X-Deliver-To: header to messages redirected with MAILPROC.TAB
  272.         file.
  273.     *   Added configurable Received: tag option in SERVER.TAB by using the
  274.         variable 'ReceivedHdrType'.
  275.     *   Added a configurable list of header tags to be used to extract
  276.         addresses for POP3 fetched messages by using the SERVER.TAB variable
  277.         'FetchHdrTags'.
  278.     *   History (change log) entries have been moved from the main
  279.         documentation file and a new file (ChangeLog.txt) has been created
  280.         to store change-log entries.
  281.     *   Removed RBL-MAPSCheck (currently blackholes.mail-abuse.org.),
  282.         RSS-MAPSCheck (currently relays.mail-abuse.org.) and DUL-MAPSCheck
  283.         (currently dialups.mail-abuse.org.) specific variables and now
  284.         everything must be handled with CustMapsList (please look at the
  285.         documentation).
  286.     *   Added NotifyMsgLinesExtra SERVER.TAB variable to specify the number
  287.         of lines of the bounced message to include inside the notify reply
  288.         (default zero, that means only header).
  289.     *   The message log file is now listed inside the notification message
  290.         sent to ErrorsAdmin (or PostMaster ).
  291.     *   Added NotifySendLogToSender SERVER.TAB variable to enable/disable
  292.         the send of the message log file inside the notify message to the
  293.         sender (default is off).
  294.     *   Added TempErrorsAdmin SERVER.TAB variable to specify an account that
  295.         will receive temporary delivery failures notifications (default is
  296.         empty).
  297.     *   Added a new SERVER.TAB variable NotifyTryPattern to specify at which
  298.         delivery attempt failure the system has to send the notification
  299.         message.
  300.     *   Fixed a bug that caused alias domains to have higher priority lookup
  301.         compared to standard domains.
  302.     [top]
  303.   February 05, 2002 v 1.5
  304.     *   Fixed a bug in wildcard aliases domain lookup.
  305.     *   Fixed a bug in CTRL command 'aliasdel' that failed to remove aliases
  306.         with wildcard domains.
  307.     *   Fixed a bug that caused XMail to timeout on very slow network
  308.         connections.
  309.     [top]
  310.   January 18, 2002 v 1.4
  311.     *   Fixed a bug that made XMail fail to parse custom maps lists in
  312.         SERVER.TAB.
  313.     *   Fixed a bug that prevented XMail to add wildcard-domain aliases.
  314.     *   Added a filter feature to the CTRL commands 'domainlist' and
  315.         'aliasdomainlist'.
  316.     *   Added an extra message header field 'X-AuthUser:' to log the
  317.         username used by the account to send the message.
  318.     *   Added Reply-To: RFC822 header for mailing lists sends.
  319.     *   Fixed a Win32 subsystem API to let XMail to correctly handle network
  320.         shared MAIL_ROOTs.
  321.     [top]
  322.   December 19, 2001 v 1.3
  323.     *   ORBS maps test removed due old ORBS dead, the SERVER.TAB variable
  324.         'CustMapsList' can be used to setup new ORBS (and other) maps.
  325.     *   Fixed a bug in XMail's sendmail that was introduced in version 1.2
  326.         and made it to incorrectly interpret command line parameters.
  327.     *   Fixed a bug that made XMail not correctly recognize user type
  328.         characters when lowercase.
  329.     *   Fixed a bug that caused XMail to not start is the MAIL_ROOT
  330.         environment variable had a final slash on Windows.
  331.     *   Added a new filter return code (97) to reject messages without
  332.         notification and without frozen processing.
  333.     *   Added two new command line options -MR and -MS to set the I/O socket
  334.         buffers sizes in bytes (do not use them if You don't know what
  335.         You're doing).
  336.     *   Changed system library to have a better performace, expecially on
  337.         the Windows platform.
  338.     *   Users that are using XMail mainly inside their local LAN are
  339.         strongly encouraged to switch to this version.
  340.     *   Fixed a bug that enabled insertion of aliases that overlapped real
  341.         accounts.
  342.     [top]
  343.   November 12, 2001 v 1.2
  344.     *   A problem with log file names generation has been fixed.
  345.     *   Added a new CTRL command 'userstat'.
  346.     *   Implemented Linux/SPARC port and relative makefile (Makefile.slx).
  347.     *   Extended the XMail version of sendmail to support a filename as
  348.         input (both XMail format that raw email format) and to accept a
  349.         filename as recipient list.
  350.     *   Added a new kind of aliases named 'cmdaliases' that implements a
  351.         sort of custom domains commands on a per-user basis (look at the
  352.         CmdAliases section).
  353.     *
  354.          ********************************************************************
  355.          * You must create the directory 'cmdaliases' inside $MAIL_ROOT
  356.          * to have 1.2 work correctly
  357.          ********************************************************************    
  358.     *   Fixed a bug that had XMail not check for the user variable SmtpPerms
  359.         with CRAM-MD5 authetication.
  360.     *   Fixed a bug in the XMail's sendmail implementation that made it
  361.         unable to detect the '.' end of message condition.
  362.     *   Fixed a bug in the XMail's sendmail implementation that made it to
  363.         skip cascaded command line parameters (-Ooet).
  364.     *   Implemented a new XMail's sendmail switch -i to relax the
  365.         <CR><LF>.<CR><LF> ond of message indicator.
  366.     [top]
  367.   October 09, 2001 v 1.1
  368.     *   Fixed a bug in the XMail version of sendmail that made messages to
  369.         be double sent.
  370.     *   The macro @@TMPFILE has been removed from filters coz it's useless.
  371.     *   The command line parameter -Lt NSEC has been added to set the sleep
  372.         timeout of LMAIL threads.
  373.     *   Added domain aliasing (see ALIASDOMAIN.TAB section).
  374.     *
  375.          ********************************************************************    
  376.          * You must create the file ALIASDOMAIN.TAB inside $MAIL_ROOT
  377.          * (even if empty)
  378.          ********************************************************************    
  379.     *   Added CTRL commands 'aliasdomainadd', 'aliasdomaindel' and
  380.         'aliasdomainlist' to handle domain aliases through the CTRL
  381.         protocol.
  382.     [top]
  383.   September 04, 2001 v 1.0
  384.     *   Added wildcard matching in the domain part of ALIASES.TAB (see
  385.         ALIASES.TAB section).
  386.     *   Changed the PSYNC scheduling behaviour to allow sync interval equal
  387.         to zero (disabled) and let the file .psync-trigger to schedule
  388.         syncs.
  389.     *   Solaris on Intel support added.
  390.     *   A new filter return code (98) has been added to give the ability to
  391.         reject message without notify the sender.
  392.     [top]
  393.   June 10, 2001 v 0.74
  394.     *   A stack shifting call method has been implemented to make virtually
  395.         impossible for attackers to guess the stack frame pointer.
  396.     *   With this new feature, even if buffer overflows are present, the
  397.         worst thing that could happen is a server crash and not the attacker
  398.         that execute root code on the server machine.
  399.     *   Implemented the SIZE ESMTP extension and introduced a new SERVER.TAB
  400.         variable 'MaxMessageSize' that set the maximum message size that the
  401.         server will accept (in Kb).
  402.     *   If this variable is not set or if it's zero, any message will be
  403.         accepted.
  404.     *   A new SMTP authentication permission ('Z') has been added to allow
  405.         authenticated users to bypass the check.
  406.     *   The SMTP sender now check for the remote support of the SIZE ESMTP
  407.         extension.
  408.     *   A new SERVER.TAB variable has been added 'CustMapsList' to enable
  409.         the user to enter custom maps checking (look at the section
  410.         'SERVER.TAB variables').
  411.     *   Fixed a bug in 'frozdel' CTRL command.
  412.     [top]
  413.   June 08, 2001 v 0.73
  414.     *   Fixed a possible buffer overflow bug inside the DNS resolver.
  415.     [top]
  416.   May 23, 2001 v 0.72
  417.     *   Fixed build errors in MkUsers.cpp and SendMail.cpp (FreeBSD
  418.         version).
  419.     *   Added the ability to specify a list of matching domains when using
  420.         PSYNC with masquerading domains (see POP3LINKS.TAB section).
  421.     *   The auxiliary program sendmail now reads the MAIL_ROOT environment
  422.         from registry (Win32 version) and if it fails it reads from the
  423.         environment.
  424.     *   Fixed a bug that made XMail to crash if the first line of
  425.         ALIASES.TAB was empty.
  426.     *   RPM packaging added.
  427.     *   Added a new feature to the custom domain commands 'redirect' and
  428.         'lredirect' that will accept email addresses as redirection target.
  429.     *   Fixed a bug in MkUsers.
  430.     *   Added system resource checking before accepting SMTP connections
  431.         (see 'SmtpMinDiskSpace' and 'SmtpMinVirtMemSpace' SERVER.TAB
  432.         variables).
  433.     *   Added system resource checking before accepting POP3 connections
  434.         (see 'Pop3MinVirtMemSpace' SERVER.TAB variable).
  435.     *   A new command line param -t has been implemented in sendmail.
  436.     *   A new USER.TAB variable 'SmtpPerms' has been added to enable account
  437.         based SMTP permissions.
  438.     *   If 'SmtpPerms' is not found the SERVER.TAB variable
  439.         'DefaultSmtpPerms' is checked.
  440.     *   A new USER.TAB variable 'ReceiveEnable' has been added to
  441.         enable/disable the account from receiving emails.
  442.     *   A new USER.TAB variable 'PopEnable' has been added to enable/disable
  443.         the account from fetching emails.
  444.     [top]
  445.   April 29, 2001 v 0.71
  446.     *   Removed the SERVER.TAB variable 'HeloUseRootDomain' and introduced a
  447.         new one 'HeloDomain' to specify the name to send as HELO domain
  448.         (look at variable documentation).
  449.     *   If 'HeloDomain' is not specified or if empty then the reverse lookup
  450.         of the local IP is sent as HELO domain.
  451.     *   Added a new SERVER.TAB variable 'DUL-MAPSCheck' to implement the
  452.         'dialups.mail-abuse.org' maps check.
  453.     *   Changed the meaning of the SERVER.TAB variables SMTP-RDNSCheck,
  454.         RBL-MAPSCheck, RSS-MAPSCheck, ORBS-MAPSCheck and DUL-MAPSCheck to
  455.         give XMail the ability to delay SMTP commands for clients that fail
  456.         the check.
  457.     *   The old behaviour (dropped connection) is obtained by setting values
  458.         greater than zero, while You can set the delay (in seconds) by
  459.         specifying negative values.
  460.     *   For SMTP-RDNSCheck and DUL-MAPSCheck variables the connection is no
  461.         more dropped at welcome time but a 'server use forbidden' message is
  462.         given at MAIL_FROM time.
  463.     *   In this way XMail give authenticated users the ability to get in
  464.         from 'mapped' IPs.
  465.     *   Fixed a bug that cause XMail to crash if there is an empty line in a
  466.         MLUSERS.TAB file.
  467.     *   Added a new SERVER.TAB variable 'ErrorsAdmin' that will receive the
  468.         notification message for every message that has had delivery errors.
  469.     *   The feature to force XMail to initiate a PSYNC transfer has been
  470.         added. This is implemented by making XMail to check for a file named
  471.         '.psync-trigger' inside MAIL_ROOT. When this file is found a PSYNC
  472.         tranfer is started and the file is deleted.
  473.     *   Added a new SERVER.TAB variable 'MaxMTAOps' to set the maximum
  474.         number of relay steps before to declare the message as looped.
  475.     *   Added SMTP after POP3 authentication and one new command line switch
  476.         (-Se) to set the expire time of the POP3 IP.
  477.     *   A new SERVER.TAB variable has been added to enable/disable SMTP
  478.         after POP3 authentication (EnableAuthSMTP-POP3).
  479.     *   Added the replacement for sendmail that will use the local mail
  480.         delivery of XMail (look at the sendmail section).
  481.     *   The ESMTP command ETRN has been added has long as a new SMTP perm
  482.         flag 'T' to give access to this feature and a new SERVER.TAB
  483.         variable 'AllowSmtpETRN' to set the default feature access.
  484.     *   Added a new CTRL command 'etrn' to support the same SMTP feature
  485.         through the CTRL protocol.
  486.     *   Fixed a bug in filters selection that made XMail to case-sensitive
  487.         compare user and domain filters.
  488.     *   Changed the name of the default filter to '.tab' instead of
  489.         'defaultfilter.tab'.
  490.     *   Finally, FreeBSD port added !!
  491.     [top]
  492.   April 08, 2001 v 0.70
  493.     *   Added the message ID to the received tag and extended the SMTP log
  494.         file with the username of the authenticated user (if any).
  495.     *   Fixed a bug in external authentication (POP3).
  496.     *   The USERDEF.TAB file is now checked inside $MAIL_ROOT/domains/DOMAIN
  497.         before and then in $MAIL_ROOT.
  498.     *   This permit per domain user default configuration.
  499.     *   Added a new CTRL server command 'frozsubmit' to reschedule a frozen
  500.         message.
  501.     *   Added a new CTRL server command 'frozdel' to delete a frozen
  502.         message.
  503.     *   Added a new CTRL server command 'frozgetlog' to retrieve the frozen
  504.         file log file.
  505.     *   Added a new CTRL server command 'frozgetmsg' to retrieve the frozen
  506.         message file.
  507.     [top]
  508.   February 22, 2001 v 0.69
  509.     *   Fixed a bug that made XMail to grant Read permissions to mailing
  510.         lists users.
  511.     *   Fixed a bug that made XMail to delete SMTP rights granted during
  512.         authentication when sending multiple messages.
  513.     *   Fixed a bug in SMTP CRAM-MD5 authentication.
  514.     *   Fixed a bug that caused XMail to break the header when an headers
  515.         tag is made by 'tag-name:[CR][LF]tag-string'.
  516.     *   Added the delete functionality to the CTRL command 'uservarsset' by
  517.         giving the string value '.|rm' the delete capability.
  518.     [top]
  519.   February 05, 2001 v 0.68
  520.     *   Fixed a buffer overflow vulnerability in CTRL server and added
  521.         command string validation to all servers.
  522.     *   Added 8BITMIME and PIPELINING support (it was already compliant).
  523.     *   Added a new SERVER.TAB option 'HeloUseRootDomain' to make XMail to
  524.         use the 'RootDomain' like HELO domain.
  525.     *   Added FINGER service access control based on the peer IP address. A
  526.         new file FINGER.IPMAP.TAB has been added to MAIL_ROOT with the same
  527.         meaning of the ones used with SMTP, POP3 and CTRL services.
  528.     *   Fixed a bug that caused XMail to drop the first character of the
  529.         headers if there was no space between the colon and the header
  530.         value.
  531.     *   Added extended SMTP log information by adding an extra (last) field
  532.         to the log file.
  533.     *   Added a new SERVER.TAB variable 'AllowSmtpVRFY' (default off) to
  534.         enable the SMTP VRFY command.
  535.     *   Added a new SMTP auth flag 'V' to enable VRFY command (bypassing
  536.         SERVER.TAB settings).
  537.     *   Improved the POP3 sync method to fetch and distribute mail that uses
  538.         an external POP3 mailbox to collect more accounts togheter. Before
  539.         the method failed if the user was not in the first 'To:' address,
  540.         while now all addresses contained in 'To:', 'Cc:' and 'Bcc:' are
  541.         checked. There is also a new SERVER.TAB variable
  542.         'Pop3SyncErrorAccount' whose use is catch all emails that has been
  543.         fetched but has had delivery errors.
  544.     [top]
  545.   January 04, 2001 v 0.67
  546.     *   Fixed a bug in 'poplnkenable' CTRL server command.
  547.     *   Changed the report of 'poplnklist' CTRL server command to include
  548.         the authentication mode and the enabled status.
  549.     *   Fixed a bug in 'poplnkdel' that left around the .disable file.
  550.     *   A new directory 'pop3links' has to be added to store POP3 links
  551.         disable files for non-local links.
  552.     *   This will fix also a bug in multi-account and masquerading POP3
  553.         sync.
  554.     *   A new way to retrieve the POP3 domain has been coded by doing a
  555.         reverse DNS lookup from the server IP. If the result of the lookup
  556.         will be xxxx.yyyy.zzzz then XMail will test if xxxx.yyyy.zzzz is
  557.         handled, then yyyy.zzzz and then zzzz.
  558.     *   The first of these domains that is handled by XMail will be the POP3
  559.         domain.
  560.     *   Added a new SERVER.TAB variable 'CheckMailerDomain' that, if on
  561.         ('1'), force XMail to validate the sender domain ('MAIL
  562.         FROM:<...@xxx>') by looking up DNS/MX entries.
  563.     *   Fixed the bug that made XMail to not accept users to add if a
  564.         wildcard alias were defined.
  565.     [top]
  566.   December 08, 2000 v 0.66
  567.     *   The SMTP command RSET no more clean the authentication status of the
  568.         client.
  569.     *   Improved MX records resolution and fixed a bug in MD5 algo.
  570.     *   A new USER.TAB variable (for Mailing Lists) 'ListSender' has been
  571.         added to hide real senders from SMTP protocol.
  572.     *   If this variable does not exist the 'MAIL FROM:<>' command will
  573.         contain the 'real' sender address.
  574.     *   This variable should be set to the email address of the mailing list
  575.         admin that will receive all the notification and error messages,
  576.         preventing this error to reach real senders.
  577.     *   Fixed an RFC conformance bug in SMTP protocol that made XMail to
  578.         accept the MAIL_FROM command even if the HELO (or EHLO) command was
  579.         not issued.
  580.     *   Fixed a bug in SysExec() in Linux and Solaris versions that made all
  581.         external programs to have a bad behaviour or fail. This bug was
  582.         introduced in 0.65 version.
  583.     *   Fixed a bug in the Windows version that results in a failure to
  584.         resolve MX queries.
  585.     *   This bug was introduced in 0.65.
  586.     [top]
  587.   November 25, 2000 v 0.65
  588.     *   Complete Linux library rewrite, now using PThread library instead of
  589.         forking.
  590.     *   Solaris/SPARC port added (HPUX/PARISC incoming).
  591.     *   Removed the -Ma flags for the maximum number of accounts coz it's no
  592.         more needed due the new Linux system library (now the memory shares
  593.         is given for free instead of having to rely on IPC).
  594.     *   Removed the -Mk parameter due the IPC stuff removal.
  595.     *   Extra domain aliases has been added (see ALIASES.TAB section).
  596.     *   A new feature has been added to XMail to enable XMail users to
  597.         prepare mail files in a given format, put them in /spool/local
  598.         directory and get them delivered by the server (see 'XMail local
  599.         mailer' section).
  600.     *   Two new directories 'local' and 'temp' must be created inside the
  601.         'spool' directory.
  602.     *   The meaning of the command line param '-Mr ...' has changed from
  603.         days to hours.
  604.     [top]
  605.   November 02, 2000 v 0.64
  606.     *   Added permissions to mailing list users (see MLUSERS.TAB section).
  607.         This enable You to have read only users as long as read/write users.
  608.     *   This is implemented by adding a new extra field to MLUSERS.TAB to
  609.         store permissions ('R' or 'RW').
  610.     *   The lack of this extra field (old MLUSERS.TAB files) will be
  611.         interpreted as 'RW'.
  612.     *   The command 'mluseradd' has been extended to hold the new permission
  613.         parameter (see section 'XMail admin protocol').
  614.     *   Added a new CTRL command 'frozlist' to list files that are in frozen
  615.         status (see section 'XMail admin protocol').
  616.     *   Fixed a bug in the new masquerading feature of XMail
  617.         (POP3LINKS.TAB).
  618.     *   Fixed a bug that makes XMail crashes when a mail loop condition is
  619.         detected.
  620.     *   Removed the strict RFC compliant check on messages.
  621.     [top]
  622.   October 27, 2000 v 0.63
  623.     *   Added a feature that makes usable the new POP3LINKS.TAB fetching
  624.         option by masquerading incoming recipient. This can be done by
  625.         replacing the domain part or by adding a constant string to the To:
  626.         address (see POP3LINKS.TAB section).
  627.     [top]
  628.   September 12, 2000 v 0.62
  629.     *   Added a new custom domain processing command 'smtprelay' that can be
  630.         used to route messages to other smtp servers (see section 'Custom
  631.         domain mail processing').
  632.     *   New search method for custdomains/ files : now the test to find out
  633.         if the domain sub1.sub2.domain.net will get a custom domain
  634.         processing is done by looking up sub1.sub2.domain.net.tab ,
  635.         .sub2.domain.net.tab , .domain.net.tab , .net.tab and then .tab.
  636.     *   There is a new POP3 sync method now that enables users that receives
  637.         mail for multiple recipients into a single external POP3 account to
  638.         get all mail to be distributed locally.
  639.     *   You've to be sure, to not create mail loops, that all recipients
  640.         domains are locally handled in a way or another (see section
  641.         POP3LINKS.TAB).
  642.     *   Added the random order option to SMTPFWD.TAB gateways to randomly
  643.         select the order of the try list (see section SMTPFWD.TAB).
  644.     *   Added the random order option to 'smtprelay' custom domain
  645.         processing (see section 'Custom domain mail processing').
  646.     *   The use of realloc() function has been removed to make place for
  647.         free()/malloc() due a glibc bug with such function.
  648.     [top]
  649.   September 12, 2000 v 0.61
  650.     *   Added a new CTRL command 'userauth' that helps to check users
  651.         authentication.
  652.     *   This command can be used by external modules that need to check
  653.         XMail username/password authentication (ex: external IMAP auth
  654.         modules).
  655.     *   A new file SMTPFWD.TAB has been introduced to supply customizable
  656.         mail exchangers for external domains (see section SMTPFWD.TAB).
  657.     *   Not local POP3 sync has been introduced to make it possible to
  658.         download external POP3 accounts without having to setup local
  659.         accounts (see section POP3LINKS.TAB).
  660.     *   This feature can be used, for example, to catch mails from a set of
  661.         remote accounts and redirect these to another SMTP server.
  662.     *   Now it's possible to set per IP server port in command line params
  663.         by specifying bindip[:port] PSYNC flags -Qx has been removed due the
  664.         new queue system.
  665.     *   A new global command line parameter -Mx has been introduced to setup
  666.         the queue split level even if my suggestion is to leave the default
  667.         value (23 , that means that the queue is splitted in 23 * 23 = 529
  668.         subdirectories).
  669.     *
  670.          ********************************************************************    
  671.          * A new spool format has been coded to enable XMail to handle very
  672.          * large sending queues.
  673.          * See section 'XMail spool design' for a description of how the spool
  674.          * works.
  675.          * Due to the new spool format the following directories can be
  676.          * removed:
  677.          *
  678.          * custdomains/spool
  679.          * spool/tmp
  680.          * spool/errors
  681.          * spool/logs
  682.          * spool/locks
  683.          *
  684.          * You've to leave XMail flush its queue (spool) before upgrading
  685.          * to this version.
  686.          * A more complex solution, if You've a lot of file pending into the
  687.          * spool, is :
  688.          *
  689.          * 1) Stop XMail
  690.          * 2) Upgrade to 0.61
  691.          * 3) Start XMail and wait it has created all the queue tree structure
  692.          * 4) Stop XMail
  693.          * 5) Move all old spool/ files into 0/0/mess
  694.          * 6) Rename all spool/logs/ files removing the .log extension
  695.          * 7) Move all spool/logs/ file into 0/0/slog
  696.          * 8) Now You can remove the above directories and restart XMail
  697.          ********************************************************************    
  698.     *   ORBS relays checking has been added and is activated by the new
  699.         SERVER.TAB option 'ORBS-MAPSCheck'.
  700.     *   A new SERVER.TAB variable 'AllowNullSender' (default true) has been
  701.         introduced to change the XMail default behaviour that reject null
  702.         sender messages. Now if You want null sender messages to be rejected
  703.         You've to set this variable to zero.
  704.     *   Fixed a bug in Linux XMail debug startup.
  705.     *   Now SMTP authentication does a previous lookup in mailusers.tab
  706.         using the complete email address as username (@ or : as separators).
  707.     *   Authenticated users will get the permission stored in the new
  708.         'DefaultSmtpPerms' SERVER.TAB variable.
  709.     [top]
  710.   August 31, 2000 v 0.60
  711.     *   The XMail executable filename has been modified to XMail.
  712.     *   A better (even if not perfect) Linux SysV startup script (xmail) has
  713.         been coded.
  714.     *   Fixed a bug in locking procedures (.lock file oriented) and
  715.         introduced a correct SIGPIPE handling.
  716.     *   Improved I/O performance due to a new way of sending files through
  717.         TCP/IP connections, to a more efficent way to copy message files and
  718.         to a reduced number of temporary files that are created by XMail.
  719.     [top]
  720.   July 30, 2000 v 0.59
  721.     *   DNS MX queries caching has been added to lower DNS network traffic
  722.         and to speed up message delivery.
  723.     *   A new directory dnscache must be added to MAIL_ROOT as long as the
  724.         two subdirectories dnscache/mx and dnscache/ns .
  725.     *   A possible buffer overflow error has been fixed.
  726.     *   Some code rewrites.
  727.     [top]
  728.   July 22, 2000 v 0.58
  729.     *   Maildir mailbox format has been introduced as an optional mail
  730.         storage other than the proprietary mailbox structure (You need to
  731.         change CFLAGS definition in Makefile.lnx to build the Maildir
  732.         version of XMail or edit SvrConfig.h defining CONFIG_MAILDIR for
  733.         both Linux and NT version).
  734.     *   If You want to switch to the new Maildir version You MUST convert
  735.         Your accounts and You MUST create a tmp directory inside
  736.         $MAIL_ROOT/spool.
  737.     *   The maximum number of recipients for a single SMTP message has been
  738.         made tunable by a new command line parameter (-Sr ... , default
  739.         100).
  740.     *   Fixed a small memory leak in SMTP server in case of multiple
  741.         recipients.
  742.     *   New POP3 username/domain separator (:) has been introduced other
  743.         than (@) that is not a valid char for Netscape mail system.
  744.     *   A buffer overflow bug has been corrected (the bug outcrop when a
  745.         line is longer than the supplied buffer and a newline char is
  746.         exactly placed at the buffer[sizeof(buffer)-1]).
  747.     *   Mail loop check has been introduced.
  748.     *   Fixed a bug that makes XMail unable to correctly handle SMTP lines
  749.         terminated by <CR><CR><LF>.
  750.     *   SMTP server 'Received:' tag has been changed to suite 'MAIL FROM:<>'
  751.         and 'RCPT TO:<>' addresses.
  752.     [top]
  753.   July 13, 2000 v 0.57
  754.     *   Fixed a SERIOUS bug introduced with the new indexing features of
  755.         XMail that makes names case sensitive. You must also empty the
  756.         tabindex directory to enable XMail to rebuild indexes in a case
  757.         insensitive way. Update SOON to this version.
  758.     *   The maximum number of accounts has been removed due the new locking
  759.         method.
  760.     *   Now the -Ma ... parameter give XMail a way to allocate locking
  761.         resources, but it's not as strict as it was with previous versions.
  762.     *   New CTRL commands has been added (cfgfileget, cfgfileset).
  763.     *   A new command line utility to create user accounts based on a
  764.         formatted text file has been added (watch at MkUsers section).
  765.     [top]
  766.   July 07, 2000 v 0.56
  767.     *
  768.          ********************************************************************    
  769.          *                            WARNING
  770.          * The MAIL_ROOT directory organization has been changed !
  771.          * A new directory  domains  MUST be created inside MAIL_ROOT to get
  772.          * a cleaner configuration for XMail installations that handle
  773.          * several domains.
  774.          * In order to use this new version You MUST move Your domains
  775.          * directories inside the new  domains  directory
  776.          ********************************************************************    
  777.     *   SMAIL scheduling times in sending messages has been changed (see -Qi
  778.         command line option).
  779.     *   The file domains.tab has been put under index.
  780.     *   Completely rewrited lock procedures.
  781.     *   New CTRL commands has been added (usergetmproc, usersetmproc,
  782.         custdomget, custdomset, custdomlist).
  783.     [top]
  784.   July 04, 2000 v 0.55
  785.     *   A syntax bug has been corrected, 'SMTP-RARPCheck' leave place to the
  786.         correct 'SMTP-RDNSCheck'.
  787.     *   Now the files mailusers.tab , aliases.tab and extaliases.tab are
  788.         indexed for a faster lookup in case of having several thousands of
  789.         users and / or aliases. For this need a new directory named tabindex
  790.         __MUST__ be added to MAIL_ROOT path.
  791.     *   As a consequence of this new feature You __CANNOT__ edit files under
  792.         index while XMail is running.
  793.     *   POP3 mailbox locking method is changed to speedup startup time in
  794.         case of thousand of users.
  795.     *   Remember to __ADD__ the directory pop3locks inside MAIL_ROOT path.
  796.     [top]
  797.   June 29, 2000 v 0.54
  798.     *   A user level grained control over incoming POP3 connections based on
  799.         peer IP has been added (see at the section dedicated to
  800.         POP3.IPMAP.TAB).
  801.     *   A new XMail command line parameter has been added to increase the
  802.         maximum number of accounts that can be handled by the server (now
  803.         defaults to 25000 while previous versions defaults to 7500).
  804.     *   Fixed a bug in XMail alias removal.
  805.     *   Some code rewrites.
  806.     [top]
  807.   June 21, 2000 v 0.53
  808.     *   The ability to setup a spammer protection based on sender address
  809.         has been added (see section dedicated to SPAM-ADDRESS.TAB).
  810.     [top]
  811.   June 18, 2000 v 0.52
  812.     *   The ability to disable PSYNC server by setting sync timeout to zero
  813.         (-Yi 0) has been added.
  814.     *   SMTP client authentication has been added (see SMTP Client
  815.         Authentication section).
  816.     *   SMTP server authentication (PLAIN LOGIN CRAM-MD5) has been added
  817.         (see SMTPAUTH.TAB description).
  818.     *   SMTP server custom authentication has been added (see
  819.         SMTPEXTAUTH.TAB description).
  820.     [top]
  821.   June 12, 2000 v 0.51
  822.     *   Added 'aliaslist' command to controller server.
  823.     *   Wildcard matching has been added in 'userlist' and 'aliaslist'
  824.         controller server commands.
  825.     *   Fixed a SERIOUS bug in SysExec() on Linux port - upgrade asap Your
  826.         version.
  827.     [top]
  828.   June 07, 2000 v 0.50
  829.     *   MD5 authentication has been added to CTRL server to enforce server
  830.         security (watch at XMail admin protocol section).
  831.     *   Users of CTRL protocol are ancouraged to use this new authentication
  832.         mode.
  833.     *   POP3 TOP command has been implemented.
  834.     [top]
  835.   June 06, 2000
  836.     *   Fixed a SERIOUS bug in custom (external) POP3 authentication
  837.         procedures, it always give auth :(( APOP POP3 authentication has
  838.         been added to POP3 server as long as to PSYNC server (POP3 client).
  839.     *   PSYNC server configuration file (POP3LINKS.TAB) IS CHANGED to enable
  840.         APOP authentication (watch at POP3LINKS.TAB section).
  841.     *   The command 'poplnkadd' of CTRL server has been extended to another
  842.         parameter that store authentication method to be used.
  843.     [top]
  844.   June 01, 2000
  845.     *   Correct handling of mail routing through 'RCPT TO: <>' has been
  846.         added (see Mail Routing Through Addresses section).
  847.     *   Added wildcard matching and complex mail routing in SMTPGW.TAB.
  848.     *   Fixed a bug in PSYNC server that makes XMail to test for '+OK '
  849.         response instead that for '+OK' (and '-ERR ' for '-ERR').
  850.     *   Added configuration steps in Part 7 of this doc.
  851.     *   The ability to handle custom (external) POP3 authentication
  852.         procedures has been added (see section External Authentication).
  853.     [top]
  854.   May 29, 2000
  855.     *   Bug fixes in controller server and in PSYNC server.
  856.     *   Added --install-auto to install XMail as an autostart service (NT).
  857.     *   Better reliability in custom domain processing has been coded
  858.         (REMEMBER to add the spool directory inside custdomains ).
  859.     *   Improved delivery error logs for a better problem understanding and
  860.         fix.
  861.     *   Some code rewrites.
  862.     [top]
  863.   May 27, 2000
  864.     *   CtrlClnt improved in error control and bug fixes.
  865.     *   Changes in controller protocol for commands that has output.
  866.     *   The command 'userpasswd' has been added in controller server to
  867.         allow user password changes.
  868.     *   Bug fixes in controller server.
  869.     *   Added wildchar (* ?) compare in aliases that allow to give a default
  870.         processing to group of users (ie users that does not have an
  871.         account).
  872.     *   XMail init.d startup script has been added (xmail).
  873.     [top]
  874.   May 26, 2000
  875.     *   Added CtrlClnt to give a access to remote administration of XMail
  876.         (see CtrlClnt section).
  877.     *   This permit You to add, delete, list users as long as many other
  878.         administration procedures (see XMail controller protocol).
  879.     [top]
  880.   May 24, 2000
  881.     *   Closed mailing lists has been added ('ClosedML' variable in
  882.         USER.TAB).
  883.     *   The concept of filtering as message content testing has been
  884.         extended to a message processing (address rewriting, attachment
  885.         purging, etc ...).
  886.     *   Now message filtering can have a 'per user' processing to give a
  887.         more fine grained control.
  888.     [top]
  889.   May 21, 2000
  890.     *   Added the way to specify a default domain filter with the presence
  891.         of the file defaultfilter.tab into the filters subdirectory.
  892.     *   Improved PSYNC error handling.
  893.     *   Improved shutdown condition sensing (read Server Shutdown section).
  894.     [top]
  895.   May 08, 2000
  896.     *   Fixed a bug in SysDepLinux.cpp in function SysMakeDir() - permission
  897.         mask changed to 0700.
  898.     *   Improved external programs execution behaviour under NT (no console
  899.         is displayed).
  900.     *   Added the option to setup domain message filters with external
  901.         programs exection (remember to add the filters subdirectory if
  902.         You're upgrading an existing XMail).
  903.     *   This can help to filter messages based on its content to avoid mail
  904.         worms and viruses that travel in attachments with given dangerous
  905.         extensions.
  906.     [top]
  907.   April 26, 2000
  908.     *
  909.          ********************************************************************    
  910.          *                             WARNING
  911.          * The spool file format is changed !
  912.          * In order to use this new version You MUST flush the spool before
  913.          * starting the new version of XMail.
  914.          ********************************************************************    
  915.     *   Modified SysRename() to MscMoveFile() to avoid errors in all cases
  916.         where files are positioned on differents mount points (Unixes
  917.         versions).
  918.     *   Added log files rotate function as long as a new command line
  919.         parameter (-Mr ndays) to specify the rotate delay.
  920.     *   Added message-id to SMAIL and SMTP log file.
  921.     *   Added @@MSGID macro in custom mail processing (external commands).
  922.     *   Added @@MSGREF macro in custom mail processing (external commands).
  923.     *   Now messages coming from external POP3 links are pushed into the
  924.         spool and not directly into the target user mailbox - this enable
  925.         custom user mail processing also on this kind of messages.
  926.     *   Added 'lredirect' command to MAILPROC.TAB that makes XMail to
  927.         impersonate the local domain when redirect messages.
  928.     *   Added 'lredirect' command to custom domain mail processing that
  929.         makes XMail to impersonate the local domain when redirect messages.
  930.     [top]
  931.   April 04, 2000
  932.     *   A @@TMPFILE macro has been added to MAILPROC.TAB syntax as long as
  933.         to custom domain processing syntax. It will create a temporary file
  934.         which hold the copy of the message.
  935.     *   It's external program resposibility to delete such file when it has
  936.         finished its processing.
  937.     *   Messages generated as response to a delivery failure has target
  938.         address remapped with the meanings of the file EXTALIASES.TAB.
  939.     *   Fixed a bug that makes XMail write a bad 'Received: ...' message
  940.         tag.
  941.     *   This error cause mail readers to display bad message's datetimes.
  942.     *   Added 'uservars' command to the controller protocol to list user
  943.         defined variables.
  944.     *   Added 'uservarsset' command to the controller protocol to set user
  945.         defined variables.
  946.     [top]
  947.   March 21, 2000
  948.     *   IP access control has been added to POP3, SMTP and CTRL servers
  949.         (pop3.ipmap.tab , smtp.ipmap.tab , ctrl.ipmap.tab). I suggest You to
  950.         setup at least ctrl.ipmap.tab.
  951.     *   Permanent SMTP error detect has been added to avoid to send N times
  952.         a message that will be always rejected.
  953.     *   Some code rewrite.
  954.     [top]
  955.   March 18, 2000
  956.     *   Linux daemon startup code has been added.
  957.     *   Modified the means of 'smtprelay.tab' and 'spammers.tab' with the
  958.         introduction of a netmask (MODIFY YOUR FILES EVEN IF FOR NOW THE OLD
  959.         VERSION IS STILL SUPPORTED !).
  960.     *   Service threads limit has been added to POP3 and SMTP servers.
  961.     [top]
  962.   March 16, 2000
  963.     *   Fixed a bug in new Linux semaphore code.
  964.     [top]
  965.   March 13, 2000
  966.     *   Added 'POP3Domain' configuration variable that gives the possibility
  967.         to set the default (primary) POP3 domain.
  968.     *   Users of such domain can log to the server using only the name part
  969.         of their email address.
  970.     *   Enached daemon (or service) mode with no messages printed onto
  971.         console.
  972.     *   A -Md flag has been added to activate the debug mode that will
  973.         restore verbose behaviour.
  974.     *   Error messages, in daemon mode, will be now printed to syslog()
  975.         (Linux) or to EventViewer (NT).
  976.     *   Improved semaphore handling in Linux that prevent from allocation a
  977.         great number of semaphores. SysV semaphore array capability of Linux
  978.         is used to reduce the number of allocated semaphores.
  979.     *   Code rewrite.
  980.     [top]
  981.   March 10, 2000
  982.     *   Fixed other possible points of buffer overflow attacks.
  983.     *   My Co. XMail server has reached 100000 messages exchanged without a
  984.         single crash ! Custom domain mail processing has been added.
  985.     *   MAIL_CMD_LINE environment (or registry) has been added to give XMail
  986.         a way to get a command line even when it's started as service.
  987.     *   Command line option -?I xxx.yyy.zzz.www has been added to bind to
  988.         specified server interfaces.
  989.     [top]
  990.   March 08, 2000
  991.     *   Added UIDL POP3 server command to make XMail work with clients that
  992.         needs that feature.
  993.     *   Fixed a bug that prevent to send mail introduced with the previous
  994.         version.
  995.     [top]
  996.   March 06, 2000
  997.     *   Fixed a bug that can cause XMail to fall in a long CPU eating loop.
  998.     *   Added a delay to bad POP3 logins to prevent POP3 mailboxes attacks.
  999.     *   Added the option to shutdown the connection in a bad POP3 login
  1000.         case.
  1001.     *   Fixed a bug that makes XMail (as NT service) shutdown at user
  1002.         logoff.
  1003.     *   Fixed a bug that makes XMail unable to work with machine that are
  1004.         unable to RDNS its own socket addresses.
  1005.     *   Fixed some possible points of buffer overflow attacks.
  1006.     [top]
  1007.   March 03, 2000
  1008.     *   Added 'poplnkenable' controller command.
  1009.     *   Added RSS maps check option (relays.mail-abuse.org).
  1010.     [top]
  1011.   March 01, 2000
  1012.     *   Added VRFY SMTP command.
  1013.     *   Coded a better Service exit under Windows NT.
  1014.     *   Added MAILPROC.TAB that enable custom processing of user messages.
  1015.     [top]
  1016.   February 29, 2000
  1017.     *   Fixed a compilation bug under certain distributions of Linux.
  1018.     *   The ability to make a dynamic DNS registration has been added with
  1019.         the 'DynDnsSetup' configuration option in SERVER.TAB.
  1020.     [top]
  1021.   February 28, 2000
  1022.     *   'SmartDNSHost' option added to redirect all DNS queries to a list of
  1023.         DNS hosts. This option can be used to avoid MSProxyServer-WS2_32.DLL
  1024.         bug that not allow to send UDP packets out of the local net.
  1025.     *   User mailbox size check has been added.
  1026.     [top]
  1027.   February 27, 2000
  1028.     *   Added UDP DNS query support when searching MX records.
  1029.     *   This fixes a bug that makes XMail unable to send its mails if it
  1030.         deals with name servers that works only in UDP.
  1031.     [top]
  1032.   February 25, 2000
  1033.     *   Fixed a bug that prevent XMail POP3 server to handle multiple
  1034.         domains if there are more nic-names over a single IP address.
  1035.     *   Improved controller protocol.
  1036.     *   Added RBL maps check option (rbl.maps.vix.com).
  1037.     *   Added 'spammers.tab' file that control SMTP client connections.
  1038.     [top]
  1039.   February 24, 2000
  1040.     *   Added controller login check.
  1041.     [top]
  1042.   February 23, 2000
  1043.     *   Fixed a bug caused by a case sensitive compare in domain and users
  1044.         names.
  1045.     *   Improved controller protocol for remote admin.
  1046.     [top]
  1047.   February 22, 2000
  1048.     *   Fixed a Linux compilation bug and implemented controller protocol
  1049.         for remote admin.
  1050.     [top]
  1051.   February 18, 2000
  1052.     *   Log locking and some code rewrite.
  1053.     [top]
  1054.   February 16, 2000
  1055.     *   Added DNSROOTS file to avoid to repeat queries for roots domains.
  1056.     *   Fixed a bug that can lead to a infinite loop under DNS queries.
  1057.     [top]
  1058.   February 15, 2000
  1059.     *   Some code rewrite.
  1060.     *   Improved DNS search for MX records (bug fix).
  1061.     [top]
  1062.   February 07, 2000
  1063.     *   Some code rewrite.
  1064.     *   Now if there are no MX records for destination domain, it'll be
  1065.         tried an SMTP connection to that domain directly.
  1066.     [top]
  1067.   February 05, 2000
  1068.     *   Some code rewrite and SMTP RDNS check added.
  1069.     [top]
  1070.   January 31, 2000
  1071.     *   Bug Fixes, some code rewrite and added NT service startup.
  1072.     [top]
  1073.   January 26, 2000
  1074.     *   Bug Fixes.
  1075.     [top]
  1076.   January 18, 2000
  1077.     *   Bug Fixes.
  1078.     [top]
  1079.   January 13, 2000
  1080.     *   Bug Fixes.
  1081.     [top]
  1082.   October 11, 1999
  1083.     *   Initial Revision.
  1084.     [top]