Anda di halaman 1dari 98

-----------------------------------------------------------------------------

MDaemon Server v2.8 Release Notes


-----------------------------------------------------------------------------

Note: This file is available in English only.

-------------------------------
MDaemon v2.8.7.5 - August, 2000
-------------------------------

SPECIAL CONSIDERATIONS
----------------------

o None.

MAJOR NEW FEATURES


------------------

o None. This is a standard maintenance release.

ADDITIONAL CHANGES AND NEW FEATURES


-----------------------------------

o DomainPOP parsing engine was smartened to handle situations in which


certain mail clients add strange text within the addresses.

o WorldClient has two new keys in the [Session] section of


WorldClient.ini that attempt to improve the security of WorldClient
sessions and make sure that only the user who logged in to a session
is able to access that session.

CheckCookie (Yes/No) : All WC requests for a session must send the


correct cookie value for that session (the cookie is generated by
the server when the session is created).

CheckIP (Yes/No) : All WC requests for a session must be from the same
IP that was used when the session was created.

If either of the checks fail, the log on screen is presented to the


user trying to access WorldClient.

FIXES
-----

o fix to potential crashing problem with some strangely formatted message


collected via DomainPOP

----------------------------
MDaemon v2.8.7.4 - Apr, 2000
----------------------------

SPECIAL CONSIDERATIONS
----------------------

o None. This is a standard maintenance release.

MAJOR NEW FEATURES


------------------
o None. This is a standard maintenance release.

ADDITIONAL CHANGES AND NEW FEATURES


-----------------------------------

o DomainPOP parsing engine was smartened to handle situations in which


certain mail clients add the text '\(E-mail\)' to the addresses inside
the message!

FIXES
-----

o Many fixes to errors resulting when a sender fails to include a domain


name in the SMTP MAIL command during a mail session.

----------------------------
MDaemon v2.8.7.3 - Mar, 2000
----------------------------

SPECIAL CONSIDERATIONS
----------------------

o None. This is a standard maintenance release.

MAJOR NEW FEATURES


------------------

o None. This is a standard maintenance release.

ADDITIONAL CHANGES AND NEW FEATURES


-----------------------------------

o None. This is a standard maintenance release.

FIXES
-----

o Additional tweaks for the message parser to increase stability when


processing strange message files under heavy loads.

----------------------------
MDaemon v2.8.7.2 - Feb, 2000
----------------------------

SPECIAL CONSIDERATIONS
----------------------

o None.

MAJOR NEW FEATURES


------------------

o None. This is a standard maintenance release.

ADDITIONAL CHANGES AND NEW FEATURES


-----------------------------------
o None. This is a standard maintenance release.

FIXES
-----

o Fix to potential crash when processing message with certain mail


header configurations.

----------------------------
MDaemon v2.8.7.1 - Dec, 1999
----------------------------

SPECIAL CONSIDERATIONS
----------------------

o None.

MAJOR NEW FEATURES


------------------

o None. This is a standard maintenance release.

ADDITIONAL CHANGES AND NEW FEATURES


-----------------------------------

o None. This is a standard maintenance release.

FIXES
-----

o Fix to DoS attack from using a long URL in WebConfig and WorldClient
Standard.
o Fix to 100% CPU lockup when using mail queue directories that contained
a period char (sometimes would happen but not always).
o Fix to MDConfig accepting more than one connection at a time.
o Fix to 100% CPU when forwarding a message sometimes. This problem also
resulted in huge message files being created in the mail queues.
o Fix to 100% CPU when processing RAW messages that were somehow deleted
during their processing.
o Fix to DomainPOP address parsing problems with certain strangly formed
address sequences.
o MDConfig will use these settings for the window font (MDConfig.ini)
[LogWindow]
DefFontFace=MS Sans Serif
DefFontHeight=10
DefFontWidth=4

------------------------------
MDaemon v2.8.6.0 - Nov 9, 1999
------------------------------

SPECIAL CONSIDERATIONS
----------------------

o None.
MAJOR NEW FEATURES
------------------

o Added a screen off the Setup menu to configure WorldClient.

ADDITIONAL CHANGES AND NEW FEATURES


-----------------------------------

o MD will be more tolerant of improperly formatted MXCACHE.DAT files.

o Move IP Cache menu selection out of the Security section and into the
Setup main menu.

o You can have MD add a header to list messages by setting the following
key in the MDAEMON.INI file by hand:
[Special]
BulkMailHeader=Precedence: bulk
You can change this value if needed. It's purpose is to provide a value
that will cause downstream autoresponders to not send back an auto-
response. Please be aware that this value must be a complete RFC822
legal message header (in legal 'Header: Value' format)

o Hitting ALT-F4 will not shut down the server. It will minimize it to the
system tray.

o If a message arrived via an SMTP session which specified a NULL return


path (ie.. MAIL From: <>), and the message didn't have a Reply-To:
header, but the 'Force Reply-To' switch was set, MD would form the
forced Reply-To header correctly, but in a way incompatible with certain
MS mail client products. This has been corrected.

o One misconfigured server I found responded to the end of a messages


transmission with 220 rather than 250. 220 is the signal to start the
message transaction process. This confused MD and resulted in strangeness.
I've patched MD to handle delivery to these sorts of troublesome sites.

o MD will not auto-prune a list member on a 500 error if the message


transmission has taken place. 5xx errors after the transmission begins
will no longer trigger an autopruning event.

o Messages created for the "Archival" feature will now be exempt from
the content-filter system. This was causing some problems.

o MD will strip 'R:' from the beginning of list message subject headers.

o Changed default full size log window font to MS Sans Serif unbolded from
old ugly compiler default. You can control the font used by setting the
following keys:

[LogWindow]
DefFontFace=MS Sans Serif (or Times Roman, or whatever you like)
DefFontHeight=10 (or whatever, 10 is default)
DefFontWidth=4 (or whatever, 4 is default)

FIXES
-----

o Fix to router window scrolling problems on sites with hi-rez monitors


o Fix to potential crash when editing or adding a user (rare but possible)
o Fix to rare problem wherein multiple RCPT TO command could be given in
an SMTP session errantly.
o Fix to messages forwarded using advanced forwarding options not working.
o Fix to some forwarded messages not being properly locked while being
constructed.
o Fix to MDConfig not sending a list's autoprune setting back to MDaemon.
o Fix to WorldClient Properties dialog not always saving/retrieving it's
settings to/from the right WorldClient.ini file.
o Fix to RAS sub system sometimes displaying the wrong result string when
a disconnection event occurs.
o Fix to small memory leak when importing NT users from the SAM database.
o Fix to real names not being imported from NT SAM unless MD was running
on the PDC.
o MD was not cleanly exiting an SMTP session in the event of a serious
problem which required a session termination.
o Fix to a bug which caused MD to not properly byte-stuff a period on a
line by itself in some cases.
o Fix to accelerator conflict related to the Content Filter selection.
o Fix to MD sometimes not cleaning up it's work files from the SMTPIN
queue when a session abnormally terminates.
o Fix to list footer being applied to messages that are base64 encoded.
List headers and footers are incompatible with this sort of mail.
o Fix to bug wherein the Content-Type header would be mishandled when MD
extracts attachments from messages.
o Fix to MD not locking the message file as it moved it into the users
directory.
o Fix to MD using 100% CPU when filtering a message through an MBF and
when shuffling messages into other queues (including user's mail dir).
o Fix to autoprune feature not working correctly under some conditions.
o Fix to a problem wherein subject text contained in { and } chars might
be stripped from list messages needlessly.
o Fix to content filter disclaimer always being added as a separate
attachment.
o Fix to crash when using the outbound domain conversion feature along
with RAW messages that do not contain a domain name in the FROM header.
The content filter feature generates such messages.
o Fix to MD sometimes not sending notifications when auto-pruning removed
a list member.
o Fix to IP Shield not allowing WC Standard users to send mail sometimes.

--------------------------------
MDaemon v2.8.5.0 - Sept 14, 1999
--------------------------------

SPECIAL CONSIDERATIONS
----------------------

o The documentation accompanying this installation is in Adobe Acrobat 4.0


format. Previously, documentation has been provided in MS Word format.
You will need to download and install the Adobe Acrobat reader from
http://www.adobe.com in order to access the documentation file.

If you wish to download documentation in MS Word 2000 format you may do


so via ftp://yoda.altn.com/MDaemon/md2850word2000.zip.

MAJOR NEW FEATURES


------------------

o There are no major new features introduced in 2.8.5.0. This is a


standard maintenance release.

ADDITIONAL CHANGES AND NEW FEATURES


-----------------------------------

o Some slight MDaemon GUI and speed optimizations.

o Change to content filter editor GUI to make setting up new rules a lot
easier.

o MDaemon's version numbering scheme has been changed to a DCI standard


format like this: X.X.X.X (Major.Minor.Revision.Language).

o Moved the immediate local mail processing switch from the Misc. Options
screen to the Scheduler where it belongs.

o If the "Force Reply-To" switch is set and a message arrives with a blank
Reply-To header MD will add double quotes like this:

Reply-To: ""

This is to combat a bug in MS mail client software.

o MD will remember the lockout password across reboots, it will ask you
to confirm the password when you create it, and the password will appear
as stars when you enter it.

o If you use MDConfig to access the content filter GUI you will now be
prompted that changes may have been made and should be uploaded back
to the server.

o Adaptation to MD's parser so that it will accept messages formatted


with quoted strings for mailboxes like this: "Arvel Hathcock"@altn.com.
Although the RFC does allow for this sort of addressing I strongly
discourage it's use. MD will not allow you to setup mailboxes that
contain space chars.

o MD's mailbox alias editor will now allow you to setup mailbox aliases
that contain spaces if you enclose the entire alias inside quotes.
Like this: "Arvel Hathcock" = arvel. Without the quotes around the
alias MD will replace the space with an underscore.

o Sometimes when forwarding a message the forwarded addressee can't be


reached. In such cases MDaemon returns delivery notifications or even
the entire email itself back to the ORIGINAL sender of the message.
This behavior is desirable in some cases but not others. If you do not
wish MDaemon to return this sort of mail or to send DSN messages about
such mail you can manually set the following switch in the MDAEMON.INI:

[Special]
DeleteBadForwardedMail=Yes (default NO)

This switch will cause such mail to simply be deleted so use with
caution.

o When processing list mail MD will only strip bracketed information from
the subject line if the information is equal to the name of the list.
For example, if the list is called "MD-BETA" then "[MD-BETA]" will be
stripped from the subject line on certain list messages.
o MDaemon will always remove any file called WATCHDOG.SEM from the APP
directory with approx 10-20 seconds or so depending on the current mail
workload being processed. Therefore, if you have an app that places a
file called WATCHDOG.SEM into the APP directory and 20 or more seconds
later that file is still there then you will know that MDaemon is not
running.

o Removed redundant DomainPOP size limit from misc. options screen.

FIXES
-----

o Fix to looping under certain combinations of content filter usage and


mail forwarding
o Fix to crash when importing NT users if NT domain was a full 15 chars
o Fix to MD not matching case in content-type headers when forwarding a
multipart message that was collected via MultiPOP. For some mail clients
this was rendering attachments in these forwarded messages unusable.
o Fix to problem where first account in userlist could never be deleted.
o Fix to problem where having multiple accounts selected for deletion did
not actually delete all of them.
o Fix so that receipt confirmations will not be sent back to senders when
a message is copied to another person using the content filter rules.
o Fix to UIDL algorithm not working correctly when POP sessions ended with
an error.
o Fix to account editor sometimes losing multipop entries
o Fix to WC sometimes not showing logon.html or error.html
o Fix to multipop editor sometimes allowing other account info to show up.
o Fix to windows not restoring from tray back to original window position
o Fix to daily or day-of-week style logging not rolling over at midnight
o Fix to bug which let the everyone group be listed twice in the list
selection window.
o Fix to MD not allowing mailing list messages to be forwarded to someone
else on the local domain.
o Fix to DomainPOP refusing messages to local gateway domains if the
"Ignore unknown local addresses" switch was set.
o Fix to list editor leaving auth-sub and auth-unsub switches set even
when sub and unsub support disabled.
o Fix to WebConfig not saving forwarding address at times.
o Fix to MD improperly handling the sending of email addressed like this:
arvel@[192.168.0.1]

---------------------------------
MDaemon v2.8.4.0 - Aug 10th, 1999
---------------------------------

SPECIAL CONSIDERATIONS
----------------------

o Why 2.83 and not 2.80? The 2.8 series is starting at 2.83 rather than
2.80 in order to maintain compatibility with certain third-party and
Alt-N created add-on products. Some add-on software will not operate
correctly if the revision number is less than three.

o What is this WP2WC.EXE file in my APP directory? This is a utility to


convert your WebPOP address books and custom folders to WorldClient
Standard format. To use it run WP2WC from the APP directory and note
the instructions which will appear.
o We added a setting to the mailing list editor to allow you to specify a
Reply-To: address for list mail. This field will default to being
blank which means that replies will be directed back to the list message
poster. If you have lists configured to direct replies back to the list
then you need to put the mailing list's name into this new ReplyTo field.

o MDaemon now uses the UIDL command rather than LAST to detect and down-
load only unread mail from DomainPOP and MultiPOP servers. As a result
of this change your MDaemon may download and re-process previously
collected mail from your DomainPOP and MultiPOP servers. Read the
topic *UIDL RATHER THAN LAST* in the MAJOR NEW FEATURES section below for
complete details on this new feature and how to avoid downloading old
mail.

o The DomainPOP switch "Ignore Local Addresses Sent To Undefined Accounts"


has been changed. Previously this switch was tied to use of the Domain
Name Replacement Engine. However, it is sometimes useful to ignore
such addresses even when the DNR engine is not being used. Therefore
this setting has been reworded to "Ignore Unknown Local Addresses Parsed
From Messages" and will operate independantly. If selected, all unknown
local addresses parsed from DomainPOP collected mail will simply be
ignored. Click this switch and MDaemon will no longer generate any
"No Such User" warning messages.

MAJOR NEW FEATURES


------------------

*GUI UPGRADE*

- Router window has been redesigned as a pane window. This will allow
you to expand the router window to the full size of the screen. You
will be able to see more information now.
- One pane of the router window will contain a treeview which itemizes
the important server statistics. Right clicking on the queue entries
within this treeview will bring up a context menu from which you can
elect to process the queue or load MDSTATS. You can move this pane
to the left or right side of the screen by manually setting the
following key in MDaemon.ini:
[Special]
RightSideToolWindow=Yes (or no)
You need to restart MD to have changes to this key take effect.
- Right clicking the log pane of the router window will bring up a
context menu with functions for manipulating the log text.
- The slide gauge which governed the number of minutes between processing
intervals has been moved to the scheduler dialog.
- The selection dialog will allow multiple selections for deleting.
- Added some additional configuration file editing options to the
FILE | OPEN menu.
- Some functionality improvements made to the list editor.
- Removed unneeded "Close All" option from Window menu
- Added "Restore All" option to menu. This option will redraw any hidden
session windows.

*INTEGRATED WEB-BASED REMOTE CONFIGURATION SERVER*

- Integration of a Web-based administration server giving the admin full


access to remotely configure MDaemon across the web. The server is
controled via the FILE menu and when active can provide access for users
to edit their account settings or administrators to edit all the
configuration files of MDaemon. See the MDAEMON.DOC file for further
details.

*INTEGRATED WORLDCLIENT STANDARD SERVER*

- Integration of WorldClient Standard for mail access. This gives us


a good web-based mail access and authoring component. This feature
is activated/deactived via the FILE menu. See the MDAEMON.DOC file for
further details.

*INSTANT MAIL DELIVERY*

- Added switch to Misc. Options screen to force a local queue run after
each inbound SMTP session completes. This will have the effect of
instant local mail delivery since the queue is checked and processed
right after a potential local message is delivered. Click this option
and you will have instant local message delivery.

*UIDL RATHER THAN LAST*

- MDaemon has been converted to the UIDL method of unread message


detection. Previously MD relied on the LAST command to distinguish
unread mail and download only new messages. This was problematic
at best since the LAST command is an optional server implementation.
The UIDL method is far more reliable. Therefore several changes
have been made to accomodate this new way of detecting unread messages:

- Use of the LAST command has been completely done away with for the
purposes of checking DomainPOP and MultiPOP mailboxes. MDaemon's
POP server will continue to honor LAST command requests from POP
client's but MDaemon itself will no longer send the LAST command to
POP servers when it checks for new DomainPOP/MultiPOP mail.
- The POP command sequence has been changed to include requests for
UIDL information.
- UIDL information will be stored in the UIDL.DAT file for DomainPOP
and within an account's HIWATER.MRK file for MultiPOP.
- The DomainPOP and User Editor screens have been changed to remove
references to the LAST command and an edit control has been added
for specifying the max number of messages MDaemon will allow to be
kept in the remote mailbox. This number defaults to 0 which means
no limit. Once MDaemon detects that the number of messages in the
mailbox exceeds this maximum limit it will subsequently delete
any further messages that it downloads.
- The format of the MULTIPOP.DAT file has changed but you do not need
to rebuild the file or re-enter your MultiPOP accounts. The last
parm in the file (the "Use LAST" setting) will simply be ignored by
this version of MDaemon.

Since MultiPOP UIDL information is now stored within the account's


HIWATER.MRK file care should be taken to not capriciously delete this
file. Doing so will result in the re-downloading of previously read
messages the next time MultiPOP collection takes place for the account.

Since we are converting from LAST to UIDL it is possible that your next
DomainPOP and/or MultiPOP collections will re-download previously
processed mail. To prevent this from happening you should delete
previously processed messages which you may be retaining in your ISP's
mailbox(es).
In the event that a remote POP server doesn't honor the UIDL command
MDaemon will:

- Download everything in the mailbox


- Refuse to leave mail in the mailbox regardless of your "leave
messages on server settings".

If the remote server does not honor the UIDL command (which is not RFC
legal) then MD will not support leaving mail on that server.

*REPEATING DNS LOOKUP TO DEAL WITH ROUTERS THAT DROP UDP PACKETS*

- In the event of a DNS timeout while looking up an A or MX record host,


MDaemon will retry the lookup a specified number of times (default=3).
You can configure the number of attempts MDaemon will use by setting
the following key manually in the MDaemon.ini file:

[Special]
MaxDnsLookupAttempts=3

You no longer need to issue a PING command to fire up your router


prior to processing mail. If the first DNS attempt fails or times out
the second/third/fourth etc.. will succeed.

*WILDCARD SUPPORT IN KEY AREAS WITHIN MDAEMON*

- Added support for using ? and * wildcards in gateway domain names


and updated the gateway editor GUI to reflect this.
- Added support for using ? and * wildcards in domain aliases and updated
the domain alias editor GUI to reflect this.
- Added support for using ? and * wildcards in kill files and updated
the suppression file and list editor to reflect this.

*NEW INTEGRATED MDSTATS QUEUE MANAGEMENT TOOL*

- A complete rewrite of MDSTATS in now a part of the MDaemon standard


installation. The new MDSTATS 3.0 is substantially faster than the
old one and has several new capabilities. See the MDSTATS section
of the MDAEMON.DOC file for a complete discussion.

*RFC-1870 ESMTP SIZE CLIENT-SIDE SUPPORT*

- If the "Use ESMTP.." switch is enabled in Misc. Options screen MD will


use the SIZE (RFC-1870) parm when sending SMTP mail. This will help
cut down on the number of redundant sessions needlessly sending mail
to servers that have a master cutoff limit (such as AOL).

*NEW SECURITY FEATURES*

- Added switch to IP Shield editor which will allow you to refuse SMTP
mail sessions from local senders if the IP which they are connecting
from has not accessed a POP mailbox within the last XX minutes. This
will provide another measure to stop people from mascarading as a local
user in order to send spam through your system. With this switch active
a user must have checked his/her POP mailbox before they are allowed
to send SMTP mail through the server.

*AUTOMATIC LIST PRUNING*


- Added switch to List Membership tab which will auto-prune lists when
activated. If a message expires out of the retry queue or results in
500 errors for all MX hosts the member being sent the message will be
automatically removed from the list membership.

*NEW AND IMPROVED MDSTATS ENGINE*

- MDStats, our queue management tool, has been integrated into our
standard installation routine. You no longer need to download this
as a separate add-on.
- This new version is much faster and can do alot more. See the MDAEMON.
DOC file for more information.

*SUBSTANTIAL OVERALL PERFORMANCE ENHANCEMENTS*

- Overall performance has been increased due to several internal code


changes.

*LARGE SITE PERFORMANCE ENHANCEMENTS*

- Added new code to speed up processing account additions and edits. As


a result adding, editing, and deleting accounts now takes approximately
the same amount of time on a 10 user site as it does on a 10,000 user
site. Previously MDaemon took too long to process account changes
on very large sites.

To aid sites with 10,000+ accounts I have changed the way the selection
dialog box appears. It uses a combobox now rather than a listbox. This
is a slight inconvenience in that you see less on the screen at once
but it is a major speed improvement.

ADDITIONAL CHANGES AND NEW FEATURES


-----------------------------------

o If a DNS timeout occurs the secondary DNS server will be used on the
next lookup attempt if one is configured.

o Added the following switches to MDaemon.ini:


[Domain]
BindOutboundSockets=Yes (or No)
OutboundSocketIP=xxx.xxx.xxx.xxx

If an IP is specified and the bind option is enabled then MDaemon


will bind all outgoing sockets to that IP address.

o Sometimes an MX lookup will also produce the A records for the MX entries.
When this is the case MDaemon will use the A records returned during the
MX lookup rather than issuing subsequent A record lookups needlessly.
This should greatly cutdown on the number of DNS queries performed. If
for any reason this causes problems for your site you can switch this
feature on and off via [Domain] UseMXARecords=Yes (or No) - default is
Yes.

o The POP "TOP" command can generate alot of logging activity. A new
switch has been added to the log editor to toggle whether or not data
sent in response to a TOP command should be logged (default is NO).

o When a message arrives for a mailing list via SMTP, MDaemon can use
the address in the message's FROM header to determine if the sender
is a member of a private list or not rather than the message passed
in the SMTP envelope. If you'd like your list posts authenticated
based on the content of the FROM header you must set the following
switch in the MDaemon.ini file:

[Special]
AuthListViaFromHeader=Yes

o Some SMTP/POP servers are placing ">From " lines in the header section
of email messages. This causes problems for MDaemon when such messages
are collected via MultiPOP or DomainPOP. MDaemon will strip these lines
from the header section when it collects messages via MultiPOP or
DomainPOP. If you require these headers for any reason you can set the
following switch manually in the MDaemon.ini file to override this
behavior:

[Special]
StripInvalidFrom=Yes (or No)

o When MDaemon computes the number of files and the amount of diskspace
being consumed by an account it normally only processes the mailbox
folder and the FILES directory. This information is used when computing
disk quotas restrictions for your accounts. If you want the mailbox
directory, and all sub-dirs thereof, to be recursed you may set the
following switch in the MDaemon.ini file: This switch applies to all
accounts.

[Special]
StrictQuotas=Yes (default NO)

If you wish quota calculations to include hidden files and sub-directories


set the following switch:

[Special]
CountHiddenFiles=Yes (default NO)

o MD will properly handle mal-formed RCPT addresses provided by


Microsoft Outlook mail clients. Sometimes MS Outlook illegally provide
the recipient's real name during the SMTP transaction, like this:

RCPT TO: address@domain.com (Real Name)

This is in violation of accepted Internet standards and practice.

o Previously, refusing to allow relaying of mail through your server also


blocked the acceptance of mail delivered via SMTP to invalid local
users. This prevented the use of the "Unknown Local User" message
dispensation controls. Therefore a separate switch has been added
to the Relay Control screen to govern whether mail for invalid local
users is accepted or refused during the SMTP session.

o When an account configured for "Local Mail Only" sends a message to


another local account which in turn forwards that mail outside the
domain, MDaemon will allow this to take place. Previously MD was not
considering the forwarded message as originating from the account that
forwarded it. MD assumed the forwarded message was sent from the
restricted account.
o The max message size limit previously shared by DomainPOP and MultiPOP
sessions has been split up. Now you can specify separate max downloadable
size limitations for DomainPOP and each account using MultiPOP. The
DomainPOP and MultiPOP editors have been changed to provide edit controls
for the purpose of setting this limit.

o Previous versions would not allow you to configure an account that


forwarded mail to a local address when the "Advanced Forwarding"
options were employed. This prevented you from forwarding mail to
another server using the same local email address. Now you can specify
local addresses in conjunction with the "Advanced Forwarding" controls.

o The misc option "Check for and use Semaphore files" has been removed.
For some time the accurate operation of some of Mdaemon's features has
required this flag to be set. v2.8 is dependant upon semaphores to such
a degree that their use is no longer an optional issue.

o When header/footer text is applied to mailing list messages which are


multipart MIME format the header/footer text will be applied to all the
text/* parts of the message. If the part is text/html, header/footer
text will be inserted within the <BODY> and </BODY> tags and will be
wrapped with <PRE> and </PRE> tags.

o Added option to log editor "Track Sessions In Real Time". With this
switch enabled .log files for each session window will be created
while the session window is active. Once the session window is closed
the .log file will be removed. This is useful to see what a session
window was doing if a crash occurs. If MDaemon crashes and there are
active sessions there will be .log files left in the log directory and
you will be able to see what each session was doing at the exact
moment of the crash. Although MDaemon rarely crashes this could be a
useful debugging tool. It will effect performance so don't enable it
unless you need it.

o MDaemon will strip out the new Pegasus Mail x-pmrqc: header within list
messages since this can result in read confirmations being sent back to
the list.

o MDaemon will form RECEIVED headers which span multiple lines. This is
to solve some problems with certain mail clients that crash when a
header line exceeds a certain length.

o Changed the way the logging algorithm updates the log files in order
to increase performance.

o When MD processes list mail it creates a SENDER: header (as it should).


In this circumstance any existing SENDER: headers will be stripped out.

o Added switch to the prepost processing controls to run the process in


a hidden background window.

o When using the "Insure Sender's Address Is Valid..." function within


the IP Shielding feature-set, MDaemon will insure the address is valid
if it claims to be from a local domain alias to the primary domain.
Previously only addresses claiming to be from the primary domain
directly were being checked.

o When MDaemon shuts down a RAS connection some additional text as to


what prompted the shutdown will be added to the log.
o When MD creates the PREDIAL.SEM file it will check for and remove any
orphaned POSTDIAL.SEM file.

o If an account's directories are missing when a delivery attempt to that


account is required MDaemon will attempt to create the account's mail
and file directories on the fly.

o Added new email command "BEGIN AUTORESPONDER" which will let a user
send a message to MDaemon and record a new autoresponder file. Check
the MDaemon.doc file for complete instructions.

o The GET ADDRESS command will return all the IP's and host names assigned
to the MDaemon computer.

o Added some additional checks to make sure that only non-hidden files
are available for downloading during a POP session.

o Added some descriptive text to the log telling what sort of connection
an outbound session is attempting to create.

o Added some descriptive text to the log telling what ISP the dialup
engine is attempting to reach and the redial attempt currently being
used.

o Catalog directories will now include the size in bytes of the file.

o DNS Lookup tool:


Added horz scroll bar.
Defaults to "Lookup" rather than "Close" when you hit ENTER.

o List header/footer text will not be applied to "multipart/related"


message forms or base64 encoded single part message forms. Attempting
to do so will result in too great a performance drain.

o The address mask "mailer-daemon@*" will no longer be able to send


mail to any MDaemon hosted mailing list.

o When you create a new account you will get a warning if the message
and/or files directory already exists.

o If an error occurs during reception of a message via SMTP or during


collecting of a message via DOMAINPOP or MULTIPOP the temporary work
files related to the incomplete message will be removed from the
SMTPIN directory.

o If you do not want MDaemon to warn you when creating new accounts that
the account's mail/file directories already exist you can set this
switch:
[Special]
WarnIfDirectoryExists=No (default is Yes)

o MDaemon will no longer send messages that have route slips to the ISP
regardless of the settings in Setup->Primary Domain. Previously, MDaemon
would potentially send route slipped mail to the ISP if attempts to
connect the the host specified in the route slip failed. For example,
if you have a mailing list set to use the ROUTE TO SMART HOST method
of delivery and the smart host is down MDaemon would send the mailing
list mail to the ISP. This is an error. Now MDaemon will leave it in
the queue or retry queue until it can be delivered according to the
route slip properties.

FIXES
-----

o Fix to potential crash processing badly formatted RAW messages.


o Fix to potential memory leak when using gateway domains with the ETRN option.
o Fix to potential buffer-overrun crash during SMTP session.
o Fix to potential buffer-overrun and userlist.dat corruption when
importing from the NT user database on accounts with very long real
name fields.
o Fix to potential crash processing POP sessions that FD_CLOSE during
an internal critical processing event.
o Fix to potential buffer overruns when translating domain names.
o Fix to potential crash when processing EDITUSER.SEM or changing a user's
mailbox or realname values.
o Fix to crash when processing RAW messages that have addresses with
multiple @ signs.
o Fix to potential 100% CPU when processing the $PARTBOUNDARY$ command.
o Fix to potential buffer overrun processing some MX and A record packets.
o Fix to scheduler problem leading to potential skipped processing sessions.
o Fix to digest dispatch algorithm sometimes missing scheduled times.
o Fix to domain name replacement being case sensitive.
o Fix to MD not sending message to next host or gateway host on certain
error codes during SMTP session.
o Fix to bug causing the "Can't remove directories" error to appear when
deleting some accounts.
o Fix to account editor allowing account real names to end with blank
spaces thus preventing the account from being edited in the future.
o Fix to having sessions flagged as hidden and then having them restore
to full screen size when coming up out of the system tray.
o Fix to RCPT TO address with multiple spaces being accepted as a blank
recipient during SMTP sessions!
o Fix to a problem wherein some SMTP session windows refuse to transact
mail and give a "command out of sequence" error after the initial
greeting from the remote server.
o Fix to wasted CPU time when processing RAW mail.
o Fix to bug allowing user's file and mail dir's to not end with a backslash.
o Fix to RAW system not carrying thru the real name in the FROM header.
o Fix to USERLIST.SEM not always being detected.
o Fix to Auto-decode engine only allowing 9 copies of the same file to be
present in the FILES directory before croaking. Now an unlimited number
can be present.
o Fix to MD using 221 code rather than 421 code when "Server Too Busy" message
sent.
o Fix to MDCONFIG not deleting catalogs properly.
o Fix to lengthy multiline POP commands blocking server operations.
o Fix to outbound domain replacement not working properly in SMTP delivered
mail that splits header information up into multiple lines.
o Fix to MDaemon's list engine sometimes parsing the wrong part boundary
in multipart MIME messages. This caused errant formation of mailing
list messages that contained attachments.
o Fix to non-moderated private lists refusing posts from non-members even
when the list's password was properly employed.
o Fix to LAN Domain mail being processed when processing the bad message queue.
o Fix to local process being executed when processing the bad message queue.
o Fix to MDCONFIG Supervisor level being able to toggle the SMTP, POP, and
DomainPOP servers on and off. This is not something the supervisor
level should be able to do. Only MultiPOP should be switchable for
a supervisor level.
o Fix to problem wherein gateway domains were not always considered as
local mail. This problem only came up when a gateway was configured
to forward mail to another server.
o Fix to bug wherein long CC lists including ProcNow@ or GetAddress@
were causing subsequent addresses to be skipped.
O Fix to "Max SMTP Messages Spooled Per Thread" not always being honored.
o Fix to MD sometimes putting two Content-Type: headers within RAW generated
messages.
o Fix to archived RAW messages not always parsing properly.
o Fix to errant SMTP/POP Rcvd: counts sometimes occuring.
o Fix to outbound domain conversion not applied to local addresses in the
TO: header for outgoing mail.
o Fix to potential crash associated with using the "Insure Sender's Address
is Valid If It Claims To Be From The Primary Domain" switch in the IP
Shielding screen.
o Fix to IP Shield local user verification failing if no domain passed
as part of address in SMTP MAIL FROM <> command. Now, the primary
domain is assumed in such cases.
o Fix to MD not honoring changes to Relay settings made via MDConfig.
o Fix to Domain Alias screen not splitting the alias list window evenly
in MDConfig.
o Fix to MDCONFIG not displaying accounts in alpha order at times.
o Fix to MDCONFIG rebuilding entire tree when user edited/added.
o Fix to bug causing some SMTP "abnormal termination" messages to contain
bogus "bytes transferred" reading.
o Fix to allowing multiple "Are you sure boxes" appearing when closing a
session window.
o Fix to bug in encrytion method leading to long password and DomainPOP
names being truncated. This bug also leads to some list un-sub
authorizations failing.
o Fix to split subject lines not inserting the list names and thread
numbers properly.
o Fix to potential crash when message containing a space as part of the
filename is processed by MD during a POP session.
o Fix to DomainPOP not being collected when the POP engine was switched
off. DomainPOP has it's own master cutoff switch.
o Fix to lookup editor causing server to block operations until answers
returned.
o Fix to potential list messages not containing subject text.
o Fix to possible mail loop problem processing preference values in MX
records.
o Fix to MDConfig improperly allowing access to the RAS editor at times.

-----------------------------------------------------------------------------
MDaemon Server v2.7 Service Pack Notes
-----------------------------------------------------------------------------

SERVICE PACK 5
--------------

SPECIAL CONSIDERATIONS

o The documentation accompanying this installation is in Word 97 format.


If you require documentation in Word 6.0/95 format visit the MDaemon
download site at http://www.mdaemon.com.

o If you are using a router or other interface that performs a demand-


dial operation to connect you to the internet you may be experiencing
DNS timeouts due to the router dropping packets sent from MDaemon.

To solve this problem make sure you place the following text into the
Setup->Primary Domain->Prepost Processing screen:

Under "Just Before Processing The Remote Mail Queue Run This Program"
place the following text:

PING myisp.com

Replace the "myisp.com" part in the above example with the domain name
of your ISP.

o Greatly shortened the Subscribe/Unsubscribe confirmation subject text.


This was causing alot of failed sub/unsub confirmation return mails
due to some mail clients truncating the subject line. Due to this
change all current pending Sub/Unsub confirmations will fail.

o Fix to digest messages showing the list password:

You need to change DIGEST.MBF from: $HEADER:SUBJECT$ which always shows


the literal subject value to just $SUBJECT$ which shows the subject
minus the list's password information. You can either load DIGEST.MBF
into a text editor and make this change yourself or simply delete the
file and MD will rebuild a correct one for you when it restarts.

o The MDCONFIG software has been changed so that it uses the same version
number as MDaemon - therefore MDCONFIG version 2.75 is required to
remotely configure MDaemon v2.75 etc.. This might be a bit confusing
at first but it's more confusing to have separate versions for each
program.

CHANGES/ADDITIONS:

o Support for RFC-1870 added. You can specify your max message size in
the Misc. Options screen. This ESMTP extension allows you to set a
limit on the size of a message coming into MDaemon. MDaemon will use
the ESMTP SIZE command as described in RFC-1870 in an attempt to refuse
large messages before they are delivered. If the sending agent does
not support RFC-1870 then MDaemon will have to begin acceptance of the
message, test it's size periodically during transfer, and finally refuse
to accept delivery if it exceeds the maximum allowable size.

o Some systems with very fast connections were getting "Error writing
to socket" messages when processing POP UIDL and LIST commands on
large mailboxes. This problem was traced to MDaemon processing the
POP requests far faster than the recipient could handle receiving
the data. Until a fully buffered approach to handling this issue
is realized a setting which will control latency has been added to
the Setup->Primary Domain->Timeouts tab. This is a timeout setting
in milliseconds. It basically forces MDaemon to wait XX milliseconds
after sending one POP or SMTP protocol string before sending the next
one. This takes effect only during protocol dialog - the actual
sending and receiving of a message file itself is already fully
buffered.

o When a message arrives to MDaemon via SMTP the remote client will be
released and then MDaemon will create the message(s) resulting from
the session. Previously MD was creating the message(s) first while
keeping the remote SMTP client "on hold". This was leading to the
client sometimes timing out and then redelivering the same message
again later in the day causing duplicates.

o Added support for the MXCACHE.DAT file. You can edit this file with
a text editor and add entries for MX hosts so MD will not need to
query a DNS server to obtain the MX addresses associated with certain
domains. For more information start MDaemon 2.7 SP5 and then load
the MXCACHE.DAT file into a text editor - read the top of the file.
The MXCACHE.DAT file will be created by MDaemon and placed in the
\app\ directory.

o You can set the following key in the MDaemon.ini file with a text
editor:

[Timeouts]
PreDial=xxx (a number in seconds)

MDaemon will wait this many seconds for the PREDIAL.SEM file to clear
(be deleted from disk) when it initiates a RAS dialup process. If you
are using RelayFax and you have RelayFax setup to share the same modem
with MDaemon you should set this value to 5 or so. This way MDaemon
will wait a few seconds for RelayFax to clear the port.

o Added switch to fix the MS Outlook missing "From" field bug to the
Misc. Options screen. When this switch is set MD will force a "From"
field if it is missing by copying the data from the "Sender" field.

o Added setting to the DomainPOP editor to warn the postmaster whenever


a message is encountered that exceeds the max download size limit.

o Added setting to the DomainPOP editor to delete messages that are


larger than the max download size limit.

o Added Max Downloadable Message Size control to Misc. Options. This


mirrors the control in the DomainPOP Editor but is placed here for those
who do not use DomainPOP.

o Added support for limited customization of SMTP and POP protocol dialog
strings. See MDAEMON.DOC for complete details.

o If a file called POLICY.DAT is found in the \app\ directory the contents


of this file will be sent to remote SMTP agents during the initial SMTP
connection phase. This will allow you to send a short annoucement or
statement of policy to the sending SMTP agent. See MDAEMON.DOC for
complete details.

o When MD processes the HOSTS file it will accept aliased entries like
this:

111.222.333.444 domain.com alias.domain.com

Previously this would have to be setup in the HOSTS file as:

111.222.333.444 domain.com
111.222.333.444 alias.domain.com

o When importing from a text file MDaemon will create TIMPORT.LOG


detailing the import results and CIMPORT.LOG which will contain the
names of anyone who could not be imported.

o The Local, Remote, and RAS prepost process command lines no longer
require a complete path to the executable in order to operate. If
complete path information is not specified MD will search for the
executable in the following locations and order:

(1) The MDaemon APP directory

(2) The Windows System directory

(3) The Windows directory

(4) The directories listed in the PATH environment variable.

o When "No Such User" warning message is sent the text of the NOSHUSER.DAT
file will also be included in the warning message.

o When an account forwards mail to an MDaemon gateway domain the mail


will be kept local and will not be forwarded outside the local server.

o When a mailing list contains members which are aliased to the primary
domain MD will properly convert these members to the primary domain.

o The log file rollover has been reworked for speed and to prevent
multiple accesses to the file by separate threads at the same time.

o The USERS command will not display accounts flagged as hidden.

o When the postmaster receives a "No Such User" warning and he/she
replies to it the reply will be directed to the sender of the
original message.

o When MD sends a quota violation warning it will include the original


message as an attachment rather than simply importing the text of
the original message.

o Added switch to IP Shield screen for verifing the sender of a message.

o Enhancement to DomainPOP parsing routine to allow it to handle badly


formed addresses from Microsoft mail products.

o RAW mail which generates parsing errors will be sent to Postmaster


rather then to BadMessageQueue.

o When retrieving the catalog listing MD will mask out path information.

o Autoresponder will send response to the ReplyTo address if one exists.

o Autoresponder will not send response to local mailing lists.

o Change to the Mailing List Editor's Membership tab.

o Added a max of 3 errors that can be encountered during an SMTP session


before MD will terminate the session.

o When MD moves a message into the retry queue it will also move that
message's route slip if present.
o When sessions are flagged to remain hidden MD will not display them
when maximizing from the system tray.

o Removed the log settings editor from MDCONFIG. This has never worked
since it is not possible to change the very thing that is logging the
changes as they are being made. Allowing MDCONFIG to alter the log
file settings would lead to system crashes.

o Text of NOCOMD.DAT will be returned to sender if message to MDaemon


contains no valid commands to be processed.

o Added edit check to prevent assigning the "postmaster" alias to the


MDaemon system account.

o A box will pop up when MD loads if you have not assigned someone to
be the "postmaster".

o RCF 821 states that the SMTP RCPT command can contain only a single
address. To comply with some older mail clients MDaemon was processing
multiple addresses from the RCPT command if they were separated by a
comma. This causes a security concern so this behavior has been
conformed strictly to RFC 821.

o MDaemon will not recognize a recipient as valid during SMTP RCPT command
processing if the address starts with a "@" character (no mailbox
specified). This is to further secure against routed mail.

o MDaemon was allowing routed addresses in the SMTP RCPT to escape


detection under some conditions. This has been fixed. Mdaemon does
not support relayed addressing.

o Added switch to Setup->Primary Domain->Ports & DNS to automatically


return mail when DNS server reports that a recipient's domain does not
exist. This will prevent such mail from needlessly going into the
retry queue.

o If you are storing hidden files in your mailbox directory, these will
be ignored by the POP server when an account collects mail.

o When using the Advanced options to forward Unknown User mail a domain
must be specified. An edit check has been added to insure this.

o Edit check added to prevent using [ and ] in gateway names. This caused
the gateway editor ALOT of problems.

o The IP Screening feature now only applies to SMTP and POP port connections.
If you want to restrict MDCONFIG connections you must do that through the
MDCONFIG screen.

o When a list message without a SUBJECT: header comes in MD will add


an appropriate default.

o MDaemon will apply the outbound domain name conversion to any address
found in the "Disposition-Notification-To:" header when appropriate.

o Added a year field to several date stamps that previously contained only
the month, day, and time (this will effect digest datestamps and digest
auto archiving and also the LastAccess flag in the user's HIWATER.MRK
file).

FIXES:

o Fix to 100% CPU and buffer overrun when importing accounts from a text file.
o Fix to crash when importing from NT domain's with 15 char domain names.
o Fix to potential buffer overruns while processing mail commands.
o Fix to crash when using a domain name approaching 40 or more characters.
o Fix to memory leak when processing mail from suppressed list members.
o Fix to several potential crash bugs when changing account settings via email.
o Fix to MD not creating the POSTDIAL.SEM file at all times.
o Fix to seeing unwanted MIME information when auto-extracting attachments.
o Fix to MD not iterating through the complete MX host list when encountering
certain errors.
o Fix to MD improperly moving to the next MX record when previous matched to
gateway domain name.
o Fix to MD not being able to send auto-generated messages to aliased accounts.
o Fix to LIST command sometimes returning strange error message.
o Fix to adding new user not updating the EVERYONE.GRP mailing list.
o Fix to DomainPOP "Strip This Text" not allowing more than 20 or so chars.
o Fix to MDConfig changes to suppression file not being honored by MD.
o Fix to SMTP sessions sometimes logging twice.
o Fix to low disk space threshold not always being honored.
o Fix to MD's RAW system not properly parsing subject in list mail.
o Fix to MD not spooling all remoteq mails under some configurations.
o Fix to MD not spooling LAN Domain mail under some configurations.
o Fix to MD's RAW parser not always applying outbound domain conversion to RAW
generated mail (WebPOP mail mainly).
o Fix to POP DELE command sometimes returning errant string results.
o Fix to $ENCRYPTMAIL$ macro returning wrong result when processed.
o Fix (cosmetic) to icons in MDConfig.
o Fix to MDConfig "System Message" window getting stuck open when host could not
be resolved.
o Fix to the SMTP/POP Rcvd: count on the router window not reflecting the true
number
of messages received - it was only counting sessions.
o Fix (edit check) to prevent use of spaces in domain names.
o Fix to endless SMTP send loop when gateway does not accept undeliverable mail.
o Fix to digest messages showing the list password.
o Fix to Dequeue system sometimes executing twice in a single mail check.
o Fix to sometimes confusing messages when MD re-initializes it's ports.
o Fix to Prepost process sometimes executing twice in a single mail check.
o Fix to MDaemon sometimes getting an invalid handle value when loading the RAS
api DLL file.
o Fix to accounts with commas in the real name field screwing up the
MultiPOP editor.
o Fix to DEQUEUE feature not working properly when Dequeue host is the
same as the Gateway Domain specified in Setup->Primary Domain.
o Fix to Dequeue session windows attempting to deliver SMTP mail after the
dequeue session completes.
o Fix to Priority Mail Engine enabled without the "Use Semaphores" switch set.
This switch will be automatically enabled when the PM features are active
since PM depends upon semaphore files.
o Fix to MD handling tabs in the HOSTS file improperly.
o Fix to blank entries sometimes being written out to the GATEWAYS.DAT file.
o Fix to installer not retaining old directory and template settings across
upgrades.
SERVICE PACK 4
--------------

CHANGES/ADDITIONS:

o In order to solve the slow manner in which Windows processes DNS


A-record lookups MD now includes it's own A-record resolution engine.
As a result of this you must now specify a DNS server in Setup->
Primary Domain. The installer will attempt to read the IP address
of your DNS server from the Windows registry but this procedure is
not always successful. MDaemon will prompt you for the IP address of
your DNS server if the installer fails to find one in the registry.

MDaemon's A-record resolver will first attempt to resolve the address


by processing the local HOSTS file. The location of this file can be
edited through a new control in "Setup->Primary Domain->Ports & DNS".
MDaemon will attempt to use the following values as defaults:

Drive:\windows\hosts - for Windows 95/98 machines


Drive:\windows\system32\drivers\etc\hosts - for NT machines

o If you are having problems with accounts configured for NT dynamic


authentication you can try setting the following switch manually in
the Mdaemon.ini file:

[Advanced]
LogonType=Network or LogonType=Interactive

The default is to use the Interactive type. This type is the most
secure but is restrictive and may not work correctly unless MDaemon is
running on the PDC. The Network type seems to work well but Windows
NT allows any value at all to be used as the domain in an account's
password field when authenticating accounts. The correct password for
the account is required in all cases.

o Windows NT 3.51 has a bug in the Win32 API which does not allow proper
dynamic authentication using this platform. Hopefully MS will fix this
bug in the near future. Until then dynamic authentication using the NT
3.51 version of MDaemon will no longer be possible without the setting
of a special key:

[Special]
NT3LogonUser=Yes

Set this key once MS has fixed the bug.

o When a POP client connects to MD it creates an in-memory database of the


messages in the account's mailbox in order to answer all the POP commands
sent to it. This method has been redesigned to improve speed on mailboxes
with large amounts of stored mail. It has also been changed to present
messages to the POP client IN CHRONOLOGICAL ORDER. Previously MD was
presenting these in FAT/NTFS order which caused problems for third party
software such as new mail notification software.

o Added a "Maximum List Members" setting to the list editor Security tab.
This will allow you to set an upper limit on the number of people who
can subscribe to a given list. Subscriptions made through the inter-
face or with a subscribe command complete with the list's password
are not subject to this limitation.
o The Router window will not auto-scroll unless the last line is currently
in view. This will allow you to scroll back and review the log without
new entries throwing you to the end of it.

o The permanent delivery error message will contain a small transcript


showing why the delivery was unsuccessful. It will also be used when
an SMTP route-back is called for. As a result of this dual purpose
the wording of the older DELERR.DAT file needs to be changed. Delete
this file so MD can rebuild it.

o You can edit the following switch to control the charset MD will use
when it self-generates a mail message:

[Special]
CharSet=US-ASCII

o PROCRETR.SEM semaphore added to force processing the retry queue.


o PROCBAD.SEM semaphore added to force processing bad message queue.
o Added buttons to MDCONFIG toolbar for processing retry bad message queues.
o Added help button to MDCONFIG toolbar.
o Added separate timer for A record lookups.
o Tray icon will show remoteq/localq counts respectively.
o MD will better observe the Return-Path when sending auto-generated messages.
o MD will add a bit more information to the "No address survived parsing"
message to help the admin deal with these messages more efficiently.
o MD will create PREDIAL.SEM immediately before starting to dial and
POSTDIAL.SEM immediately after a connection made by MDaemon is taken
down.
o MD will properly handle addresses when a Microsoft product incorrectly
delivers them like this: RCPT TO: <Arvel Hathcock <arvel@altn.com>>.
All MS mail clients are capable of this RFC violation.
o Changes to the RAW mail parser to help with third party software
integration.
o MD will create a PREDIAL.SEM semaphore file just before trying to use
RAS/DUN. This will allow other software to detect when it should free
the dialup port so MD can use it.
o MD will use {01}, {02}, etc.. rather than {1}, {2}.. etc when using
thread numbers in list messages. This allows mail clients to properly
sort on the subject field.
o Support for specification of more than one archive recipient added.
o Toggle addition of "(Archive Copy)" in archive mail.
o Switch to turn off "XXX List Member" being added to the TO: field of
mailing list mail.
o Switch added to Mailing List editor which toggles sending of the list
subscribe/unsubscribe completion notification.
o Daily logs will be named YYYYMMDD.LOG to facilitate sorting.
o The Log Settings Editor will accept log file size in terms of K-Bytes
rather then bytes. This makes it easier to read and work with.
o Mailing list option added to allow NO CHANGES to the TO: field on
cracked list messages.
o POP engine will respond with "access denied" rather than "invalid password"

FIXES:

o Fix to MD's auto extraction algorithm sometimes not pulling all the
text from a quoted-printable attachment.
o Fix to some timezones computing incorrect daylight savings times.
o Fix to auto-extraction engine not always extracting all attachments.
o Fix to access violation errors after deleting an account which had
MultiPOP entries. The MultiPOP entries remained valid for such
ghost accounts!
o Fix to potential buffer overrun when using TOP on very long messages.
o Fix to tray icon sometimes showing wrong waiting message count.
o Fix to MD allowing short records in USERLIST.DAT
o Fix to MDCONFIG not allowing for toggling the SMTP,POP,etc.. servers
on and off properly.
o Fix to Domain Name Replacement sometimes creating errant values.
o Fix to MD not applying the list route-back address on digest dispatches.
o Fix to Remote Configuration Engine enabled without the "Use Semaphores"
switch set. This switch will be automatically enabled when the
Remote Configuration Engine is active since some features of the latter
depend upon semaphore files.
o Fix to MD potentially sending auto-generated messages to a mailbox that
is and alias for the "MDaemon" system account.
o Fix to MD ignoring priority mail sub-string text if it was included
inside brackets. Same thing for PM exceptions sub-strings.
o Fix to MD allowing you to enter a complete address in the outbound domain
conversion editor.
o Fix to several account macros returning incorrect results when an
accounts name has several components to it.
o Fix to MD not removing irrelevant MX entries as per RFC-974.
o Fix to list suppression files generating "No Such User" messages to
postmaster rather than suppressed user warning messages.
o Fix to MD not CC'ing a copy to all recipients when one of them is to a
routed list message.
o Fix to MD not archiving MultiPOP messages. A switch has been added
to the Archival tab to control this.
o Fix to MX resolver not working when returned packet had CNAME RR
first followed by MX RR(s).
o Fix to MD returning mail to the sender when the last attempted host
gives a permanent delivery error even when an earlier host gave a
transient delivery error. If any one of the attempted hosts issues
a transient error code MDaemon will leave the message in the queue and
try again to deliver it later.
o Fix to MD deleting messages when out of disk space. Now a button in
the Misc. Options editor will allow you to set parameters on how MD
should react to low disk space situations.
o Fix to auto-responder ping-pong by allowing you to define addresses
which will not trigger the autoresponder message. Controls for this
have been added to the Auto Response Editor.
o Fix to MD and MDConfig allowing RAS edits when no RAS system is present!
o Fix to MD sending subscribe/unsubscribe STATUS messages back to the
entire list when the original subscribe message was received with the
parameters out of order.
o Fix to MD not processing password protected list unsubscription requests.
o Fix to encrypted messages being improperly handled by MDaemon.
o Fix to Remote/Local process not running when only 1 message in the queue.
o Fix to DomainPOP allowing you to add "Received" to the list of headers
to process.
o Fix to MD adding incorrect addresses to mailing lists in response to a
subscription authentication request sent back from a Pegasus mail client.
Pegasus truncates the subject of list-authentication messages and as a
result MD can no longer process this type of mail if sent from Pegasus.
o Fix to MDCONFIG allowing too many mailing lists to be created than your
key allows.
o Fix to MDCONFIG allowing supervisor access to modify primary domain settings.
o Fix to inconsistency in enabling/disabling "Retry Queue Settings" button.
o Fix to PROCREM.SEM not working.
o Fix to DomainPOP routing rules not working when "Stop Parsing..." switch set.
o Fix to session windows starting minimized when set otherwise.
o Fix to RAW system not converting to the outbound domain on all headers.
o Fix to MD crashing when SMTP server disabled and a POP request comes in.
o Fix to MD not immediately honoring +ERR from other POP servers.
o Fix to MDaemon not processing DomainPOP collected mail destined for
remote systems during the same RAS session that collected the mail!
o Fix to MD locking up when using the Active Delete option in Misc. Options.
o Fix to MD rebuilding an internal outbound message database unnecessarily.
o Fix to the queued mail count not correct on tray icon
o Fix to messages from MDaemon being refused by remote servers yet staying
in the mail queue(s) forever.
o Fix to "Spool Undeliverable Mail To Gateway Host" not working when mail
aborted by remote server with error code >= 500.
o Fix to delivery notification messages being sent to the address specified
in the FROM header when the SENDER header is present for this purpose.
o Fix to DUN/RAS error running MD as service with "Process At Startup"
switch set. This switch will not be allowed when running as service.
o Fix to MD running as service without the "Use Semaphores" switch set.
This switch will be automatically enabled when running as service.

SERVICE PACK 3
--------------

o Fix to $HEADER:XX$ MBF macro not working properly in custom MBF files.
If you are not using customized MBF files with your MDaemon then you
can skip this bug fix report; otherwise -

THIS IS IMPORTANT SO PLEASE READ:

In previous versions the $HEADER:XX$ macro stripped the resulting value


of text within parenthesis and text within quotation marks. It also
stripped all text to the left and right of any < and > characters found.

Thus if a FROM field in a message looked like this:

From: "Development Team" <development@altn.com>

Then the $HEADER:FROM$ macro would return only:

development@altn.com

The remainder being stripped according to the above mentioned criteria.


This was a bug. The $HEADER:XX$ mechanism was designed to provide the
full unaltered value of the requested message header. This has now been
fixed but I fear many sites may have created special MBF formatting
schemes to work around this bug which will now cause other formatting
problems! Please check your custom MBF files!

o Fix to bugs in the NT integration feature set.

a) Firstly, the opening screen of the importer asks for the NT domain
name when it should ask for the machine name of the PDC or BDC.

b) The default "NT Domain Name" on the importer screen was defaulting to
the machine name of the PDC and not the domain name of the NT network!

c) Leading "\\" characters were not being stripped when read from a
dynamic account's password field unless the domain was enclosed in
< and > characters! This caused dynamic authentication to fail in
some cases.

d) Due to error (b) some imported users have the PDC or BDC machine name
as their password value when they should have the NT network domain
name (preceded by two slash characters). These will have to be
changed by using the account editor on each account or by editing the
USERLIST.DAT file directly with a text editor.

e) The documentation needed major revision to reflect the proper way to


accomplish dynamic authentication across a LAN.

f) The documented procedure for granting the SE_TCB_NAME privilege


on page 97 of the MDaemon User's Manual is correct and must still be
observed but it needs to be extended to cover the situation of a
large deployed enterprise. When MDaemon is running on a LAN
workstation which IS NOT a domain controller for the NT domain then
the account under which the workstation is operating must have the
SE_TCB_NAME privilege set locally. For example, assume a LAN called
ALTN has a workstation logged in as "Arvel" which is running MDaemon.
The workstation (not the domain controller) must have the SE_TCB_NAME
privilege set locally for ALTN\Arvel.

g) Fix to security problem wherein passwords were improperly accepted


when sending mail to MDaemon to change account settings.

o Fix to undeliverable messages being left in the remoteq forever. A


configurable retry system has been installed which is simplistic but
functional consisting of the following elements:

a) Process Retry Queue button added to toolbar

b) Set of configuration controls added to Setup->Primary Domain

c) RETRY directory will be maintained off the REMOTEQ directory

d) \app\delwarn.dat file returned when transient delivery error occurs

e) \app\delerr.dat file returned when fatal delivery error occurs

Many thanks to Marck Pearlstone and Norbert Unterberg for their


invaluable assistance with date routines and other helpful pointers.
They were both instrumental in getting this functionality implemented.

o Fix to people being able to spoof mail off an MDaemon server. I will
not stand for that. There's a new group of settings off the SETUP menu
called "IP Shielding". For a complete discussion of how to apply
these settings to your configuration and totally secure your site
see the updated MDAEMON.DOC file.

o New semaphore PROCDIG.SEM will force digest mail processing.

o Switch installed to list editor to toggle use of real names in the TO


field when sending list mail.

o Entries in the IP Cache with a "Time To Live" equal to 9999 will never
expire. This will allow you to setup IP's that are permanent. As a
result of this change DNS lookups which return a "Time To Live" greater
than 9999 will only be cached for 9998 minutes (approx 7 days).

o MD will use "BadMsgQ@domain.com" in the Sender: field on mail that does


not specify a return address - previously MD used Sender: <> which was
causing problems for some other SMTP mail servers.

o MD will create a semaphore called IMPUSERS.SEM in the \app\ directory


anytime changes to the userlist file are written to disk by MDaemon.
This is to synchronize with other applications which keep MD's user
database in memory at all times (such as WebPOP 2).

o Fix to MD giving away clues to mailing list names when processing EXPN
requests.
o Fix to MD's DomainPOP not recognizing mail to Gateway domains as local
mail!
o Fix to 12 char limit being applied to NT dynamic authentication account
using NT domain as password.
o Fix to MD not using the same auto-generated Message-ID value on carboned
message copies (a problem for Pegasus Mail).
o Fix to MD locking up (100% CPU) when a message arrives for a mailbox
that already has 100,000 message in it. When this happens the oldest
message will be trashed to make space for the new one. Admins, don't
let your users pile this many messages in a mailbox - the performance
of MD (not to mention the user's mail client) will be very poor under
such conditions. Also watch the ARCHIVE queue and DomainPOP Security
directory for excessive amounts of old mail.
o Fix to MD not detecting End-Of-Message CRLF.CRLF properly in all cases
(most notably in a telnet session).
o Fix to MD using .MSG as the extension when it returned messages as
attachments to the postmaster. This was causing some mail clients to
incorrectly handle the attached message. The new extension will be
".MD" for such attachments. This type will be appended to the
MIMETYPE.DAT file automatically as "message/rfc822".
o Fix to MD routing back messages that had transient delivery errors.
Now MD will route back messages only when the error code is 500 or
greater.
o Fix to long VRFY and EXPN commands causing buffer overruns when no
domain specified.
o Fix to RAW mail sent to a mailing list ignoring the "Send All Mail
Returned To This List To" setting.
o Fix to some installer problems.
o Fix to MD not closing file handles when sending mail that times out.
o Fix to MD allowing invalid FROM values when it sends mail. This is
called "Strict" FROM interpretation and can be switched off if it is
causing problems through the [Advanced] StrictFromField=No setting.
o Fix to MD throwing DOS app users back into Windows when the dialer activated.
o Fix to double header problem on mails with extremely long non-folded headers.
o Fix to double header problem from MultiPOP mail with no message body.
o Fix to no X-Mdaemon-Deliver-To header in MultiPOP forwarded mail that
has no message body.
o Fix to lockup's when deleting an account.
o Fix to MDConfig allowing improper account aliases to be created.
o Fix to MDConfig not allowing you to use UNC paths in edited catalogs.
o Fix to MDAEMON.LOG file being created in APP directory at times.
o Fix to MD's built in print routine using too small font and printing
unnecessary lines and sometimes causing a system crash.
o Fix to autodecoder only handling filename0-filename9 when extracting
files which already exist.
o Fix to MDCONFIG not sending list moderation settings back to MDaemon.
o Fix to MD not processing Multipart MIME messages for control commands
(such as subscribe/unsubscribe instructions etc...) MIME Multipart
messages containing such instructions were not being processed.
o Fix to Gateway ETRN command not working when "@domain.com" issued
- the "@" sign was throwing it off.
o Fix to Gateway ETRN reporting incorrect number of messages spooled.
o Fix to Gateway ETRN engine not using extension specified by the Gateway's MBF
file.
o Fix to Gateway Editor allowing blank Gateway domain names in GATEWAYS.DAT.
o Fix to server crash on receipt of a "RETR -1" POP command.
o Fix to buffer overrun when parsing certain queued mail messages.
o Fix to prepost/raspost processes not executing if located in the root dir.
o Fix to Subscribe/Unsubscribe command not working unless an address to
add/remove is specified.
o Fix to messages having no domain to send to not being put in bad message
directory.
o Fix to problem when MD encounters an SMTP error while acting as a client.
It was sending the server "503 ..." rather than the client "QUIT" sequence.

SERVICE PACK 2
--------------

o Full "Year 2000" compliance.


o Fix to crash error when processing mail for gateway domains.
o Fix to UIDL command not skipping over messages flagged for deletion.
o Fix to Multipart MIME messages being mishandled when forwarded to a mailing
list.
o Fix to HIWATER.MRK file slowly growing in size over time.
o Fix to EVERYONE mailing list sending system welcome file to new members.
o Fix to buffer overrun on some extremely long SMTP command sequences.
o Fix to DomainPOP's "Delete Unless" settings being saved to the "Deliver
Unless" file.
o Fix to MDaemon not continuing execution when MDSTATS is invoked.
o Fix to MDCONFIG allowing Supervisor access to create Gateway domains.
o Fix to MDCONFIG not using Account Templates with Supervisor level access.
o Fix to MDCONFIG "Save These Settings" not working when unchecked.
o Fix to RAW mail not displaying FROM when specified in a HEADER macro.
o Fix to RAW mail not forming the MessageID attractively.
o Fix to the illogical way MD was saving the List Moderation settings.
o Fix to new mailing lists defaulting to routed delivery rather than cracked.
o Fix to buffer overrun error generated adding users with more than three names.
o Fix to Netscape mail problem with messages ending with a period.
o Fix to list engine not sending digests out if list set for moderation.
o Fix to MD not retaining the SMTP Expansion Threading value.
o Fix to MD sending an extra suppression notification triggered by archiving
messages.
o Fix to Account Template editor missing default for enabling quota system.
o Fix to MD allowing you to create a gateway with the same domain as the primary
domain name.
o Fix to SMTP out-of-sequence commands not allowing RSET or other appropriately
sequenced commands thereafter.
o Fix so you cannot add a mailing list to it's own membership list.
o Fix to MDaemon not creating the DomainPOP security directory if it didn't
exist.
o Fix to problem with mail control MULTIPOP ON/OFF command.
o Fix to list subscribe/unsubscribe messages failing when domain name used like
this:
subscribe mdsupp@altn.com address@domain.com
o Fix to MD saying "Lines starting with ; are comments" when it should be "Lines
starting with # are comments"
o Added a switch to Misc. Options screen which will allow MDaemon to ignore
EHLO requests from clients if you so desire.
o Added basic support for UNC directory/file naming for both MD's directory
structures and user mailboxes.
o When MD generates the "Sender:" field with list mail the address used will
reflect the address where delivery notifications should be directed.
o New algorithm applied to counting messages lets us update counts lots faster.
o When unpacking attachments that already exist MD will now add a suffix to the
name of
the file rather than to the extension.
o Added GRPLIST.SEM and CATLIST.SEM to reload mailing list names and catalog
names dynamically.
o The default configuration for the EVERYONE mailing list will no longer allow
EXPN requests.
o When MD "cracks" mailing list mail it will place the recipients address in
the "TO:" field rather than the name of the mailing list itself.
o When MD is processing system account mail sent to it processing will stop
when an unknown command is encountered and/or on the first blank line
following a valid command.

SERVICE PACK 1
--------------

o Fix to 100% CPU when auto-decoding MultiPOP downloaded mail.


o Fix to buffer overrun error when routing back some undeliverable mail.
o Fix to buffer overrun when processing the TOP command.
o Fix to buffer overrun when retrieving account's POP password from the
database!
o Fix to duplicate messages getting into digest archives.
o Fix to messages larger than allowed size getting into digest archives.
o Fix to MDaemon not remembering the Sub/Unsub confirmation time to live.
o Fix to a problem where gateways were not being properly converted over from a
prior version.
o Fix to a GPF when using $BODY-AS-TEXT$ MBF macro.
o Fix to DNS timeouts causing mail to spool to last known host.
o Fix to failure to forward mail to local mailing lists properly.
o Fix to a problem MultiPOP downloading mail without TO: headers.
o Fix to the LIST command not working in all cases.
o Fix to route slip delivered mail always using port 25.
o Fix to MDCONFIG reported that mailing lists must contain at least 2 members.
o Fix to MDCONFIG not keeping changes to relay settings.
o Fix to MDCONFIG not settings list to "cracked method" when only local users
present.
o Fix to MDCONFIG corrupting account password field when using dynamic
authentication.
o Fix to MultiPOP not honoring some entries properly.
o Fix to MD attempting to route undeliverable auto-generated mail back to itself
- this wastes processor time.
o Fix to MD improperly handling the rare SMTP 251 command.
o Fix to non-extended selection in NT importer's account listboxes.
o Fix to lack of edit checks in the scheduler editor.
o When MD returns mail as undeliverable it will insert the original message as
an attachment.
o The $NTACCOUNTNAME$ macro has been added to the account template system
to allow the Windows NT Account Name to be used when importing users.
This macro ONLY works when importing NT accounts using MD's built-in
importer.
o The [Special] MaxSessionLines=250 setting governs the number of lines
an session window will accumulate before dumping it's contents to the
router. This is to prevent large virtual memory use under some
circumstances.
o Sometimes MD was allowing session to timeout when sites responded
incorrectly to SMTP commands rather than ending the errant session
immediately.
o Setting the following key in the MDAEMON.INI file will allow MD to
process the next scheduler timeout even if mail is still being sent
from the last timed event:
[Advanced]
ReentrantSmtp=No (or Yes)
Use of this key will increase the amount of memory MDaemon consumes but
it will deliver mail a bit sooner than it otherwise would.

-----------------------------------------------------------------------------
MDaemon Server v2.7 Release Notes
-----------------------------------------------------------------------------

The following concerns have been addressed with MDaemon v2.7.

NEW FEATURES
------------

Windows NT Security Account Integration

o Support for NT integration has been added. This support consists of


an NT user database import engine available through the Accounts->Import
menu selection. Additionally, support for dynamic authentication of
POP users has been embedded into the MDaemon user management code.
It's now possible to specify an NT domain or server in an account's
password field. MDaemon will dynamically authenticate such accounts in
real-time using the specified domain or server's NT security system.
Under such a scheme, changing the account's password in the NT User
Manager will have the effect of automatically updating MDaemon and your
users will only have to remember one set of authentication credentials.
This also makes for very easy account setup for new installations.

IMPORTANT: The security context of the account running MDaemon MUST have
the SE_TCB_NAME privilege. If the process is a service running in the
Local System account, it will have this privilege by default. Other-
wise it must be set by following this procedure:

Run the "User Manager" (NT Administration tool) and select "User Rights"
from the "Policies" menu. Note: You must select the "Show Advanced
User Rights" check box to see the SE_TCB_NAME privilege. The correct
privilege, SE_TCB_NAME, is labeled "To Act as Part of the Operating
System". Select this and "Add" this right to the account under which
MDaemon operates. If you must add this right then you may need to
restart MDaemon before it takes effect. See Microsoft articles Q101366
and Q131144 for more detailed information.

Full MX Record Resolution Engine

o MDaemon now has a complete MX record processing system which allows


it to deliver mail even while extreme network difficulties would cause
other servers to fail. MDaemon will detect and iterate across every
single MX host available until one of them accepts the message. An
optional switch in the MX record processing controls will even allow
you to configure MDaemon to send a message to the next MX host if
delivery to the current one generates an SMTP error (such as "we don't
relay" or "user unknown").

As a consequence of these changes reliance on a mail gateway to handle


undeliverable mail is no longer required. If a message still can't
be delivered after exhausting all a host's MX entities then the message
*can* be spooled to a smart host or simply requeued for later delivery.

Name Matching

o There's a new tab in the DomainPOP editor called "Name Matching".


This tab allows MDaemon to determine who should receive a DomainPOP
downloaded message based not upon what the email address is but upon
what the text portion (typically a person's real name) is. For
example, a messages TO: header might read:

TO: "Arvel Hathcock" <common-mailbox@altn.com> or


TO: Arvel Hathcock <common-mailbox@altn.com>

Name matching does not care about the "common-mailbox@altn.com"


portion of the address. It instead extracts the "Arvel Hathcock"
portion and attempts to lookup this name in the MDaemon user database.
If a match is found to an account's real name field then that
account's local email address is used for delivery purposes. If no
match is made then MDaemon reverts to delivering the message to email
address parsed from the data (common-mailbox@altn.com in this example).

IMPORTANT: The real name portion of the address cannot contain a


comma, semi-colon, or colon character.

There are also controls on this new tab which will allow you to specify
an email address that must be present in the extracted data in order
for the real name matching process to proceed. This allows you to have
a high level of control over when this feature should be employed. For
example, you can specify an address such as "mailbox@isp.net" and then
only addresses matching this value will be candidates for real name
matching. For example, if "mailbox@isp.net" is the triggering address
then:

TO: "Arvel Hathcock" <mailbox@isp.net>

will be a candidate for real name matching while

TO: "Arvel Hathcock" <arvel@altn.com>

would not.

Windows 95 System Service Support

o MDaemon will now run as a service under Windows 95. MDaemon will
detect if you are running Windows 95 and present a different Service
Setup Dialog if you are. Although much less sophisticated than under
NT, services in Windows 95 will still allow you to operate the soft-
ware without anyone being logged on.

Dequeue Settings

o There's a new tab in the Setup->Primary Domain screen entitled


"DeQueue". In this tab there are controls for automatically sending
ETRN or QSND or other commands to your ISP. See MDAEMON.DOC for
complete details.

Threaded MultiPOP

o MultiPOP is threaded now like SMTP delivery is. For example, if you
have MDaemon set to use 5 POP session threads at the same time and you
have 15 MultiPOP entries then each thread will pickup mail for 3
MultiPOP entries - one right after the other. It is now safe to have
an unlimited number of MultiPOP entries and Mdaemon will collect them
all in a fixed number of threads (this will solve the "ObjectWindows
Exception - Create Fail For Window" issue). A good value to set your
session limit would probably be 5.

Fully Programmable Mailing List Digest Engine

o A new tab in the Mailing List Editor will allow you to create digests
for your mailing lists. Consult the latest MDAEMON.DOC file for
complete instructions on the various controls on this screen.

Subscribe/Unsubscribe Confirmation System

o Confirmation of subscribe/unsubscribe requests for mailing lists has


been added. You will find the controls for this in a new tab within
the mailing list editor. The "(Un/Sub)scribe" tab will allow you to
configure your mailing list to honor subscribe and unsubscribe commands.
You can also set MDaemon to confirm subscribe and unsubscribe commands.
When you switch on confirmation MDaemon will create a unique password
string and save it to the AUTHLIST.DAT file in the \APP\ directory.
MDaemon will also send a special message to the address subscribing or
unsubscribing to the mailing list. This special message will contain
the unique password string. If the user replies to the special message
and sends the password string back to MDaemon then the action will be
considered confirmed. There are also controls in this tab that you
can use to set a time limit on outstanding confirmation requests.

Improved Mailing List Administration Support

o Several functions within MDaemon have been altered with an eye to


allowing a List Administrator better control over his mailing list.

1) The "Moderation" tab within the mailing list editor has been
renamed to "Security" and the features here have been enhanced
slightly. The "List Password" field can be used to perform
subscribe and unsubscribe operations even when support for these
functions has been switched off. Basically, anyone who knows the
list's password can subscribe and unsubscribe users at any time
regardless of the list's settings governing these operations.

The new syntax is: SUBSCRIBE LISTNAME ADDRESS (PASSWORD) the


password must be provided inside ( and ) characters. See the
latest MDaemon.doc for complete details.

2) You can specify an optional set of parameters to the LISTS command.

LISTS - retrieves a list of all mailing lists that are configured


to respond to LISTS commands.
LISTS LISTNAME - retrieves the membership of the list LISTNAME if
it is configured to respond to LISTS commands.
LISTS LISTNAME (PASSWORD) - (parens are required) retrieves the
membership of the list LISTNAME even if it is configured
to ignore LISTS commands (the list's password must match
first).

Gateway Hosting with Forwarding, Secure ETRN, and DomainPOP Support

1) The "Sub-Domain" feature has been replaced by the "Gateways"


set of features. It will continue to provide the same functionality
but under a more appropriate and much more powerful suite of
features.
4) The Gateway Editor will allow you to setup forwarding of Gateway
mail.
5) The Gateway Editor will allow you to easily create an account which
can access the mail being stored using DomainPOP.
6) You can specify ETRN settings for the Gateway domain. See the
MDAEMON.DOC file for complete information on this feature.

Sub-String Priority Mail Matching

o Sub-string matches are allowed for priority mail settings. There's a


switch in the priority mail screen for this. Sub-string matches are on
a per-entry basis so just setting this switch won't do anything for you.
You need to set this switch and then ADD then entry to the priority
mail entries. This creates entries that look like this:

X-MSMail-Prioity = High ; This is NOT a sub-string match


From = arvel, (Sub-string match) ; This IS a sub-string match

You may need to remove, then re-add, your priority mail entries to
take advantage of this feature.

Microsoft Internet Mail Bug

o In an attempt to deal with the Microsoft Internet Mail problem of


messages not appearing on the display after they are downloaded, there
is a switch in the Misc. Options screen called "Cope With Microsoft
Internet Mail Bug". No telling when they are going to fix this. With
this switch turned on MDaemon will strip consecutive CRLFCRLF sequences
from the end of the message body. Three sets of CRLF pairs at the tail
end of a message file is the cause of the Microsoft problem.

Intranet Only Accounts

o There's a new entry in the Account Editor->Options tab that will let
you set an account so that it can only send local (Intranet) mail.
This includes LAN and sub-domain mail as well. A corresponding change
to the Account Template editor lets you set the default for this
setting.

"Smart" DomainPOP Message Deduping

o The behaviour of the "Dedupe Collected Mail Using The MESSAGE-ID Field"
has been enhanced. Now MDaemon will remember the last XX values of this
field and maintain them in a database. This database will be checked
during all DomainPOP sessions. Previously this feature only worked on
a "per-session" basis making it impossible for MDaemon to remember
messages downloaded in earlier DomainPOP sessions. This is to guard
against downloading and processing the same message over and over
again due to an ISP or other phone-line dropping error that may occur
during a session. By default, Mdaemon will remember the last 100
values of the dedupe field. You can change this value by editing the
following MDAEMON.INI key:

[Pop]
MaxDedupeDepth=100

For speed purposes this list is kept in memory at all times. You can
force a reload using the MSGID.SEM semaphore file.

Threaded Expansion Code

o The "Threading" tab within Setup->Primary Domain has two new options.

1) Enable SMTP Expansion Threading

This setting will allow MDaemon to continue processing other sessions


while cracking large mailing list messages that arrive via SMTP.

NOTE: MD does not release the SMTP mail client until all messages
have been expanded; thus it's possible, depending on the server's
workload at the time, that your mail clients may receive a warning
message indicating that the server has not responded within xx seconds.
You should increase the server timeout values within your mail clients
or disable this setting if you experience these warnings.

2) Enable POP Expansion Threading

This will allow MDaemon to continue processing other sessions while


cracking large mailing list messages that arrive via DomainPOP.

RAW Engine Enhanced For Custom Gateway Support

o As is well known the RAW engine within MDaemon will strip out comments
from within the TO and FROM macros. If you explicity need to have
a series of comments within these macros you must construct the RAW
file WITHOUT a them at all and then use the HEADER macro to
explicitly enter them into the RFC-822 message. For example,
suppose you have a fax gateway that requires you to form TO headers
in an outbound message like this:

To: FaxGateway (123,123-4567) <arvel@altn.com>

You *cannot* create a RAW file using this syntax:

TO <FaxGateway (123,123-4567) <arvel@altn.com>>

This is due to the way the RAW engine handles the expansion of it's TO
macro. You *can* however leave the TO macro completely out of the RAW
file entirely and specify a TO header this way:

HEADER <TO: FaxGateway (123,123-4567) <arvel@altn.com>>

Similar syntax is possible for creating FROM headers.

Improved Logging
o The Log Settings dialog has been changed and a new log option has been
added. The log settings say and mean this:

1) Log Each Day In It's Own File

The name of the log file will be the day's date with a ".LOG" added

2) Log Each Day By Day Of Week

You will have Sunday.log, Monday.log etc..

3) Log Everything In One File - self explanitory

Miscellaneous Changes and Additions

o The /b command line switch will suppress not only the "You have XX
Days To Register" screen but also the shutdown confirmation screen.
This will allow for automatic processes that reset the server.

o MultiPOP downloaded mail will now be translated according to the


account's MBF file.

o The date of the last POP access to an account will be recorded in the
HIWATER.MRK file found in the account's mail storage directory.

o Catalogs are no longer required to use a password if you don't want


to assign one. Also you can create a catalog shell and not put any
files into it if you don't want to. When you wish to GET a file from
a catalog that doesn't use a password just specify it like this:

GET catalog, , Magic Name

Note the blank password specified here.

o Some ISP's are setting a limit to the number of RCPT TO instructions


they will accept per message. When an MDaemon mailing list with many
members is set to "Route" list mail to such an ISP not all recipients
will receive a copy of the message due to this imposed limit. To deal
with this situation there is a new setting on the "Routing" tab within
the mailing list editor. The new control allows you to enter the max
number of recipients your ISP will allow per message. When a list
message needs to be routed to a large number of recipients MDaemon will
route a copy of the message to several subsets of list members so as
to not exceed the ISP imposed limit on any one message.

o Although it is a blatant violation of RFC-821 regulations to do so, some


hosts on the Internet are refusing to accept mail from MDaemon when the
MAIL FROM: <> does not contain an address. It's no accident that MD
uses null reverse-paths on auto-generated messages; the reason is MD
cannot have the upstream mail servers sending delivery status
notifications back to it! Imagine receiving delivery status notifications
concerning the state of a message which is itself just a delivery
status notification! This is the very reason why RFC-821 states to
use null reverse-paths in such circumstances. Nevertheless by editing
the following key in MDAEMON.INI you can override MDaemon's use of
null reverse-paths:

[Special]
ForceFrom=address@domain.com
If used this key simply MUST contain an email address THAT DOES NOT
point back to the MDaemon system account or any alias of the MDaemon
system account (such as: mdaemon@domain.com, list-serv@domain.com,
etc..) In short, this address had better be just an ordinary mailbox
or you're asking for trouble. And remember, it's not Alt-N that's
forcing you to take these measures - it's ISP's who don't care about
RFC-821. I suggest that you use "bagmsgq@domain.com".

o Some ISP's will not relay mail for your server if your domain name
is not registered with a valid DNS server on the Internet. Yet it's
not practical to setup your server with such a domain name. To
handle these situations a new control has been added to the Setup->
Primary Domain screen. The control is:

"When Sending Mail Use This Domain In SMTP HELO Instruction"

This settings allows you to specify any domain name you care to use
and MDaemon will identify itself as this domain to the remote host.

o Setup->Directories has been expanded to allow editing of two new


directories; the digest mail queue and the digest archive path.

o "No Such User" mail will contain the bad address in the subject line.

o Removing a user will remove the user's entire mail and file directory
structure including any sub-directories thereof. They will also be
removed from all local mailing lists and various other .DAT files in
the \app\ directory.

o A message will be placed in the log telling you what circumstance


triggered a mail run.

o I have tried to speed up the mailing list editor when there are large
memberlists or large userlists involved.

o In the past, mailing list mail would display:

"From: (sender not specified)"

on the router window. Now the sender will be displayed if that field is
present in the message file.

o There is no longer a minimum membership limit for mailing lists.

o Some hosts insist on placing NULL characters (Hex 0) into mail messages.
This causes MDaemon to stall when transferring mail. MDaemon will now
replace NULL characters with spaces if the "Allow For SUN OS
Compatibility" switch is set in the Misc. Options screen.

o There's a new switch in the MultiPOP Editor called "Replace Entry".


Click an account in the list and it will present itself for editing.
Once your edits are complete click the "Replace Entry" button to
update the list.

o A new option in the Misc. Options screen will allow you to force a
DATE: header in all messages that don't already have one. There are
some mail clients that don't put a DATE: field into messages even
though this is required by RFC 822. Some mail servers refuse to honor
such messages. If a date is forced into a message it will be the
date when MDaemon first received the message. It will not be the date
the mail client created the message but at least something will be
present and the message will be delivered.

o The RAS engine will send a dialup failure message to the postmaster
only when all redial attempts fail rather than once per dialup failure.

o You can toggle whether you want thread numbers in the subject lines
of mailing list messages via a control in the list editor.

o I added an "Enable DomainPOP Server" switch to the FILE menu along


with the other global toggle switches for the sake of convenience.
This switch is a mirror of the one in the DomainPOP editor so there's
no need to set both switches to control DomainPOP mail.

o Two additional semaphore files have been added. PROCLOC.SEM forces


a local mail processing event while PROCREM.SEM forces a remote mail
session.

o The character limit for mailing list names has been increased from 8
characters to 128 characters. Please note that if your platform does
not support long file names you will still need to restrict yourself
to 8 characters or less.

o Relay control has been enhanced. The screen has been altered and you
can now specify "Trusted IP Addresses". Mail being delivered from
these IP addresses will be exceptions to the No-Relay rule regardless
of who these messages are FROM or TO.

o The LISTS command has been renamed to just LIST.

BUG FIXES
---------

o MDaemon was not stripping out the "X-Confirm-Reading-To:" headers from


outbound list mail.

o A bug in SMTP delivered list mail was allowing delivery confirmations


to pass through to mailing list members.

o A bug in the STATUS command was returning 0 bytes free space on drives.

o Template account auto-generation was at times allowing blank spaces to


occur in POP User and POP Password fields.

o MDaemon will not create the DNS UDP MX socket when a POP session is
processed. This was causing some routers to fire-up inadvertantly.

o Problem with long header lines causing Mdaemon's parser to not work
correctly.

o Fix to a problem with Netscape Mail. When messages end with the
sequence "\r\n." then Netscape Mail freaks out. MDaemon will adjust
for this.

o Sometimes the Scheduler Editor was not saving trigger times to disk.

o The POP3 command TOP was not working when mail was stored encrypted.
o It is now possible to use aliases as mailing list members. Previously
doing so would generate "No Such User" mail to the postmaster.

o Autoresponders were not adding or removing members from mailing lists


if the list name was greater then 10 characters.

o Some mail clients were sending data in the SMTP tranaction without
placing that data inside < and > characters! MDaemon will tolerate
such non-rfc-compliant mail clients now.

o Several MultiPOP editor fixes - especially under NT 3.51.

o Fix to RAW system when attaching files to multiple recipients. At


times, only the first recipient in the list was receiving the attached
file.

o Fix to a rare scheduler timing problem that resulted in MDaemon not


tiggering a mail session when it should.

o You can't use your own domain name in the Outbound Domain Conversion
feature. What would be the point anyway? There's an edit check to
prevent this now.

o Computers without RAS services installed were encountering an error


when MDConfig connected to MDaemon.

o MDaemon was not applying mailing list header/footer files if the


line did not end with a CRLF.

o RECEIVED headers that had "by my-domain-name.com" in them were not


being counted toward the max message hops setting.

o An error in the accuracy of the CPS rate computation was fixed.

o An error preventing inactivity timers from working at all points during


a transaction was found and fixed.

o A problem was corrected in which very long subject lines (255+ chars)
would cause a GPF or 100% CPU utilization.

o An error was fixed that caused unwanted data to be parsed from the FOR
section of RECEIVED headers. This resulted in strange addresses some-
times being formed from RECEIVED header data.

o MDaemon was not removing the QLOCK.LCK file from the Mdaemon mail
directory at times. This was resulting in Mdaemon no longer processing
any requests sent to it.

o SMTP byte count received was being incorrectly reported when the
session closed.

o An SMTP "RCPT TO" instruction led to errors if the address given


contained more than one "@" symbol (such as arvel@izzy.com@altn.com).
This sort of addressing was made obsolete when the MX system was
developed. MDaemon will now politely refuse to accept these sorts
of addresses during the SMTP negociation stage of a mail session.

o Fix to the age-old problem of session windows not being visible when
MD is maximized out of the system tray.

o The DomainPOP session window will not count toward the "Max POP3
Outbound Session Threads" limit.

o The tray icon should behave a bit better when you logon to your
computer. The icon should now appear within 5 seconds after logging
in.

o MDaemon will count messages in the waiting mail queues once per minute
now rather than once every 5 seconds. When thousands and thousands of
messages are present in the queue checking at 5 second intervals puts
to high a strain on performance. The counts on the Router windows will
be accurate to within 1 minute.

o MDaemon will no longer send software generated messages to accounts


called "Mailer-Daemon".

o I've added some additional edit-checks to the IP Cache code so that


when DNS problems return bogus data the IP Cache will detect this and
clean itself up.

o It was possible to put the server into an endless loop if a mail client
requested a message larger than the total number of messages available.

o If an account is auto-extracting attachments MDaemon would crash when


very strange filenames were provided for the attachment. MDaemon will
now just give a polite warning that it couldn't create an auto-
extracted version of the attachment.

o A parsing error on a queued REMOTEQ message could keep a session window


from closing. This has been fixed.

o MDaemon was crashing when receiving very long VRFY or EXPN requests.

o In the Mailing List editor, Mdaemon was not enabling the "Apply" button
when various settings were changed.

o MDaemon will no longer dispatch a "No Such User" warning back to the
sender of an MDaemon hosted mailing list.

o If you are using the outbound domain conversion feature Mdaemon will
use the outbound domain name when it generates messages in response
to user inquires. Formerly some messages would be generated using
the primary domain name.

o MDaemon was not sending the rejection notification when an address


matched against the suppression file.

o RAW file header values with a : character in them were not being
processed correctly.

o List subscription messages were not being handled properly if there


was an extra space between the "subscribe" command and the name of
the mailing list itself.

o Mdaemon would allow you to enter BIG numbers into an account's quota
settings. This would sometimes crash the server.
o Fix to the Setup Editor asking you: "Bind To These New Values?"
too many times.

o Using the scheduler options of "Always Send Mail If There's More Than
XX Messages" and "Send Mail If A Message Has Been Waiting For XX
Minutes" was at times overwhelming MDaemon with routing events!
Now if the scheduler triggers a routing event the event will be ignored
if MDaemon is still processing mail from the previous routing event.

o When auto-extracting attachments MDaemon was overwriting existing


files in the account's FILES directory. MDaemon will now modify the
attachment's filename rather than overwrite an existing file.

o The RAW system was not generating unique Message-ID values when multiple
addresses were specified in the TO or CC headers.

o The Alias Editor was allowing invalid alias values to be assigned to


addresses.

o DomainPOP was always reporting a successful rule match as being made


with Rule 0 even though it could be different rule that matched.

o DomainPOP was not processing the Routing Rules if the "Stop Parsing
If Received Yields Local Address" switch was selected and triggered
parsing to stop.

-----------------------------------------------------------------------------
MDaemon Server v2.6 Release Notes
-----------------------------------------------------------------------------

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

Release A Build 6

MDAEMON:

o If a DNS timeout occured and the packet arrived later in the session
MD was not always dealing with this situation correctly. This was
leading to the RCPT TO: <250 <arvel@altn.com> problem.

o If a RAW message was sent to a local mailing list while the Outbound
Domain Conversion feature was being used MD was not properly computing
the Reply-To line.

o MDaemon was not properly handling RAW messages which contained more
than one recipient listed in the TO header. Now MD will handle these
properly if they are separated with either a , or ; character.

o When auto-decoding attachments from mail MD will retain the attachment's


original file extension if the ; attach-ext = ??? macro is placed in
the MBF file.

o MDaemon will complain if you change it's listening ports and don't
rebind server operations to them.

o MDaemon will remember the last edited account, list, and catalog so
that the next time you edit one of these your old position in the
selection box will be retained.

o When you click the "Enable MultiPOP Server" switch from the FILE menu
a screen will appear that will allow you to set a frequency for how
often MultiPOP mail should be checked. Although it's not a fully
schedulable option it should help a bit.

o The wording of one of Mdaemon's SMTP response strings has been changed
from "Hey, stop that! There's no <address> here" to the more friendly
"<address> is not a valid maildrop. Please check the address and try
again."

o An edit check will prevent you from entering your primary domain name
into the Advanced Forwarding "host" field for Unknown User Mail. This
can lead to mail loops.

o Some parser enhancements were made to the RECEIVED line address


extractor.

o The account editor had some confusing text describing the "Allow Changes
To Account Settings Via Email Messages" switch.

o Mdaemon was leaving .WRK (temp work files) in the SMTPIN dir.

o The DomainPOP feature will now accept mail for LAN domains if you have
the LAN domains feature active and if you have elected to relay
mail for those domains.

o When MDaemon sent mail to a user in response to some request it was


placing a blank Reply-To: into the message (this was on purpose to
redirect replies away from the "mdaemon" account). This caused problems
for MS Outlook (surprised?). Such mail will now have a Reply-To of
"BadMsgQ@domain.com". The point is to redirect replies away from the
"Mdaemon@domain.com" address which is just a robot account. You can
define a "BadMsgQ" mailbox if you want to trap these messages or you
can just allow such mail to go into the Bad Message directory which
is what is implied in the address.

o An error was fixed which would cause a GPF if the DomainPOP feature
pulled down a message for an account which was forwarding mail and
the account's forwarding address did not contain a domain name. This
error was previously fixed but only for mail delivered to MDaemon via
SMTP transactions (not DomainPOP).

Release A Build 4 & 5

MDCONFIG:

o Modifications to MBF files made while using Administrator access were


not being transmitted back to MDaemon while modifications made using
Supervisor access were not transmitting the $BODY$ macro within the
RFC822.MBF file in some cases.

MDAEMON:
o When one of Mdaemon's configuration screens is left open people could
not gain access to their mailbox - they would get a "Mailbox Already
Locked" message.

o The "Real Name" property of an account must be unique. The fact that
you could create multiple accounts with the same real name was causing
database corruption of USERLIST.DAT.

o When running an external program prior to a queue run or after a dial-


up MDaemon was not freeing the process's window handles.

o I added one more switch to the DomainPOP Parsing tab. The switch let's
you config MD to parse the Subject: header for an address within ( and )
characters. For example, if the switch is turned on and the downloaded
message has a subject line that reads:

Subject: (arvel@altn.com) How are things going?

The address "arvel@altn.com" will be added to the message's recipient


list along with any other address which might be parsed according to
your other parsing rules setup on this screen.

o One additional Routing Rule has been added. It allows you to NOT
deliver the parsed message to certain addresses.

o The default directory for attachments in the RAW system's X-Flag=Attach


header will be the RAWFILES directory itself. If a full path to the
attachment is not provided MD will assume the attachment to be in this
directory.

o The $BODY$ MBF file macro has been changed. In an attempt to preserve
character sets for different languages MDaemon will read the message
body as stream binary data rather than pure text. This will allow for
a byte-for-byte copy of the body of a mail message. As a result the
ability to position text on the left and right of each line of the
message body through a macro like this one has been removed:

LEFTSIDE TEXT $BODY$ RIGHTSIDE TEXT

If you need to place specific text on the left and right sides of each
line within a message body use the macro $BODY-AS-TEXT$ rather than
just $BODY$. $BODY-AS-TEXT$ may not be compatible with all charsets.

o When Mdaemon auto-extracted attachments from message files it changed


the resulting message's MIME Content-Type header to reflect this.
However it always forced charset="us-ascii" into the new MIME
header. Now if there is a different charset in the original MIME
header MDaemon will use that one instead.

o The algorithm that computed MDaemon's UIDL's for each message was not
foolproof. The new one is; however as a result of a change to this
alrogithm the UIDL's for each message will be different. This will
result in mail being downloaded from the server again (this applies
only when mail clients are set to "Leave a copy of the message on the
server").

o I rewrote the method MDaemon uses to replace the domain names when
converting to a different domain name for outbound mail. It's alot
faster and more efficient. This new algorithm fixes the Build 3
limitation in that you _can_ now convert from "altn.com" to
"mail.altn.com". In Build 3 the outbound domain name could not
contain the primary one as a sub-string.

o When an account is setup to Auto-Decode MIME attachments MDaemon was


previously limited to a maximum of 25 attachments per message. This
limit has been increased to 1000.

o A bug was fixed which was preventing MDaemon from decrypting mail when
an account has elected to "Store Mail In An Encrypted State".

o It was not possible to scroll the entry in the Mailing List editor
for the Notification control.

o MDaemon will handle addresses parsed from POP3 Downloaded mail that
are of this form: To: arvel@altn.com [extra text]. Previously, the
"[extra text]" part was confusing the parser.

o The "Results To" command will redirect the output of list subscription
messages.

o Several corrections to MDaemon's account template engine have been


completed.

o I added an Edit button in the Account Editor which will allow you to
easily modify the account's MBF file.

o There's a new switch in the RAS editor that tells MD to send a message
to the Postmaster when a dialup event fails due to some error.

o The MBF capabilities have been extended to allow you to use specific
headers like this:

$HEADER:TO$ This will expand to the value of the TO: field in the
reformatted message. It's possible to specify any header in this way.

o When you create a user the MultiPOP settings are not retained. You
must create the user first, then go back into the editor and add any
needed MultiPOP settings. This inconvenience cannot be fixed at this
time but a messagebox warning about it will be displayed so that
you will know what to do.

o MDaemon was not forwarding mail correctly when the forwarding address
was an alias for another local account.

o I added a switch to the Mailing List Notifications tab that lets you
return a message to non-members when they try to post to a private
mailing list. The note states that the list is private and provides
subscription instructions.

o The global suppression file is kept in memory now so that access to


large suppression lists will be much faster. The KILLFILE.SEM
semaphore can be issued whenever you wish to force MDaemon to reload
this file.

Release A Build 3

o Messages which contained addresses that lacked a domain name in the


FROM field where generating a GPF error.
o The Outbound Domain Conversion feature will not let you specify an
outbound domain that is the same as or that contains the primary one
(the one specified in Setup->Primary Domain). Such conversions
cause endless problems for MDaemon. To use this feature the domain
you are converting from and the domain you are converting to must
be completely different.

o Mdaemon was incorrectly reporting to MDConfig a free drive space of


zero bytes in the Status Report section.

Release A Build 2 (9/23/97)

o An error sometimes occured when routing unknown local user mail to a


remote host.

o One of the detailed error strings caused a buffer overrun.

o If an error connecting to a remote site during a direct delivery


resulted in an error, Mdaemon would properly spool the message to the
gateway BUT it would delete the .LCK file for the message. If the
message was still being delivered when the next delivery cycle occured
then MDaemon would start a new session and try delivering the message
again in another window resulting in two deliveries of the same
message!

v2.6 Release A Build 1 (9/18/97)

MDCONFIG:

o MDConfig was losing it's userlist information after an update was


performed.

o Tool tip for Process Now button.

o MDConfig will start up with SW_SHOWDEFAULT rather than Maximized.

o Alt-F4 was a shortcut to two different functions! One of them, Exit,


has been changed to Alt-X.

o Status information on the condition of MDaemon will be sent to MDConfig


and displayed on the screen at the start of a remote config session
(administrator access level only)

o The MDCONFIG protocol has been updated to specify version information


during the handshaking session. As a result, only certain versions of
MDConfig will work with certain versions of MDaemon. This is mainly
for compatibility.

o When a mailing list or catalog was deleted the treeview controls


were not being updated.

o Attempting to add a file to a catalog was causing an exception error.


This has been fixed but remember that the files you add using MDconfig
must be accessible to MDaemon in order to be accessed! In other
words, don't add a file to a catalog using MDConfig that can't be
accessed from the computer running MDaemon.

MDAEMON:
o The Outbound Domain Conversion feature was not being applied when mail
was forwarded from a local account to the outside world.

o An error was fixed that caused problems downloading mail when more than
one client accessed the same MDaemon mailbox at the same time.

o Messages with attachments which did not define an explicit filename


parameter within the Content-XXX fields of the MIME headers where
not being decoded properly when accounts were setup for "Auto-Decode".

o If a local message somehow gets into the remoteq (accidentally placed


there by a third party process for example) Mdaemon will recover from
this situation by connecting to and delivering the message to itself
if required.

o By default, when using the "Enable Domain Name Replacement Engine"


feature, messages to unknown mailboxes downloaded from an ISP POP
mailbox where ignored so that the postmaster would not be drowned
in "No Such User" mail. Now there's a switch for this in the
DomainPOP screen's Processing tab.

o When specifying a forwarding address without a domain name (ie.


forwarding to a local account on the same server) MDaemon would
generate a GPF. This has been fixed.

o MDaemon was incorrectly applying account quotas at times. This has been
fixed.

o The Auto-Detect IP switch has been removed. This was causing nothing
but problems for most customers. If you don't specify an IP address
manually then one of 127.0.0.1 (localhost) will be used automatically.

o There's a new daemon control macro called STATUS that will allow you
to send an email to Mdaemon@[domain.com] and get mailed back a status
report of how the server is operating. It basically duplicates the
information available on the router screen. This feature is password
protected and uses the MDconfig Administrator logon and password.
For example, if you want to receive the status of the server at
altn.com you could send a message to "mdaemon@altn.com" and place
"administrator, password" on the subject line. Then place the word
STATUS on the first line of the message body. If the credentials
match up then the status report will be sent.

o Sometimes when alot of RAW mail was set to be processed MDaemon would
generate the same MessageID for multiple RAW files. This has been
fixed by including the time to the hundredth of a second when construct-
ing this field.

o Messages collected with more than one address in the FROM field was
causing buffer overruns!

o MDaemon was at times stripping what it thought were comments from the
Subject line when no Subject line processing should be occuring.

o A problem leading to a Winsock (not RAS) error 10055 - Out of Buffers


was found and fixed.

o It is possible to specify arguments to prepost and ras process programs


within the editors themselves now rather than having to write batch
files for this. That is you can now specify your prepost and ras
process programs with arguments like this if you need to:

c:\windows\telnet.exe 192.168.0.1 8082

You still must continue to specify the complete path to the program
you want to execute.

o The maximum message size entry control in the list editor has been
increased from 4 to 7 characters. This should be sufficient for any
size list mail. Also you can put a 0 in the control now and no size
limitations will be applied.

o There's a new notification option in the mailing list editor. You can
have Mdaemon send a notification when a message arrives for a list
that exceeds the max message size limit set for the list.

o The Archival tab has a new switch that control whether or not mail for
your mailing lists are archived.

o A bug was fixed which was preventing the use of an alias as an archival
mail recipient.

o A problem wherein MDaemon could change the mail gateway host was found
and corrected.

o The method MDaemon uses to generate it's "random" file names has been
altered in order to greatly increase performance. As a result of this
change you will occasionally find a HIWATER.MRK file in your mail
queues. The maximum amount of messages within a mail queue or mailbox
continues to be 9999.

o MDaemon will no longer block when processing RAW and Daemon Control
mail messages. This was a problem for system making heavy use of these
features.

o Click on the picture of the computer on the Router Window to clear the
event tracking window.

o In the past, when a mailbox was accessed Mdaemon would create an on-
the-fly database (stored in POPLOCK.LCK) which provided MDaemon's
POP engine with information commonly requested by POP clients. This
activity has been changed such that this database will be created
in memory rather than on disk so as to speed up the process. The
need for this becomes apparent when you have mail accounts containing
hundreds of mail messages. Due to disk access limitations the old
method was much too slow.

o A buffer overrun error in the POP3 TOP routine was found and corrected.

o An error in the logging algorithm was causing MDaemon to report


incorrect times for transaction events. This has been fixed by
including a datestamp in each SMTP and POP packet transaction. You
will see this in the session windows. As a result of increased
string lengths within the session windows the "Use Small Font"
Misc. Options pick will apply to session windows as well as the
main router window.
o The "Attempting TCP Connection To [host]" log entry will now contain
the port being connected to for debugging purposes.

o Additional information will be provided when some Winsock errors are


reported.

o A strange problem was fixed related to the DNS system. MDaemon was not
set to ignore DNS responses arriving after the DNS timeout countdown
had completed. This was leading to DNS packets being parsed out of
sequence with the normal flow of the mail session!

o MDaemon will no longer put out the X-MDMail-Server line into every
message. The same information is contained in the Received stamp at
the top of the message so this header was wasting space.

o A problem was fixed which caused the FROM address on list mail to be
converted to the local domain name when messages were sent to lists
using SMTP and the Outbound Domain Conversion feature was enabled.

o A problem with the POP engine was fixed where downloaded mailing list
mail was being treated as invalid when the Outbound Domain Conversion
feature was enabled.

o The POP3 Mail Source feature has been given the name "DomainPOP" and
the POP3 Mail Source screen has been altered to reflect these changes.

o You can specify the maximum message size that DomainPOP will download
through a new control in the DomainPOP editor.

o Fix to the "Mdaemon Error 6: SetServiceStatus" message within the


Event Log.

o The timers within the mail delivery process were not being reset
properly in some rare cases.

o Three errors were fixed in the special addressing rules available when
sending Internet mail to sub-domains. If your primary domain is
altn.com and you have a sub-domain called virtual.com you can get a
message to arvel@virtual.com even when virtual.com is a nonregistered
domain name by addressing the Internet message to:

arvel{virtual.com}@altn.com

(this assumes altn.com is a registered domain name)

This address will be converted to arvel@virtual.com. The problems were:

1) ...the resulting message was being placed in the wrong queue


sometimes.
2) ...if the domain altn.com had a mailbox for "arvel" then the
message was not being passed on to the virtual domain's mailbox.
3) ...none of these special addressing rules were applied to POP
downloaded mail from the ISP - only to SMTP delivered messages.

o LoadLibrary calls for RAS function handles were generating a heap leak
problem!

o MDaemon will use the more proper RCPT TO:<host@domain.com> and MAIL
FROM:<host@domain.com> rather than placing a space in there like this:
RCPT TO: <host@domain.com>. Since the RFC doesn't explicitly allow
the extra space some mailers were having problems accepting mail from
MDaemon! Imagine, MDaemon not following the RFC? :)

o A problem was fixed which led to improper attachment numbering when


auto-extraction is used for an account and a message had multiple
attachments embedded within it.

o If a parsed address from a POP downloaded message does not contain a


mailbox portion the message will not be delivered. For example, if an
address is parsed that looks like this:

"arvel"@altn.com (note the quotes)

then this address will be converted to simply @altn.com once the comment
within the quotation marks is removed. This resulting address does not
contain a mailbox and will thus not be delivered.

o The NT 3.51 failure to hangup the modem problem was fixed.

o The state of the "Enable Multipop" setting from the FILE menu will be
retained when MDaemon is restarted.

o The MDCONFIG settings have been modified to allow you to specify a


user and password combination for both an Administrator and a Super-
visor user. The Administrator logon has complete access to all of
MDaemon's configuration settings while the Supervisor access can
only alter account related settings (accounts, forwarding information,
account aliases, auto-responders etc..)

o LAN DOMAIN mail will no longer be mixed in with other local mail in the
LOCALQ as this was leading to some problems. LAN DOMAIN mail will be
placed in it's own separate queue called LNDOMAIN which stems off the
LOCALQ directory.

o The "Refuse To Accept Mail For Non Supported Users" switch has been
removed from the Misc. Options screen. This feature has been expanded
on and is located in it's own dialog off the Setup Menu. The "Relay
Control" dialog allows you to specify that your server will not relay
mail - and it lets you enter a list of domains that are exceptions to
this rule.

o Mailing lists that specify the "Route A Single Copy To This Host" method
of mail delivery must contain at least one foreign list member otherwise
the list will revert to the "MDaemon Will Crack List Mail" delivery
method. This is to avoid some unusual and infrequent problems.

o A problem with the Multipop file which occured when you changed an
account's real name or mailbox was fixed.

o There's a new control in the "Remote Configuration" screen that lets


you set a backup directory which stores old configuration files.

o The behavior of the LAN DOMAINS tab in the RAS editor has been changed
as follows:

1) The entries listed here will continue to be accessed without


initiating a dialup event.
2) Mail for a LAN Domain will NEVER be spooled to the ISP gateway
regardless of the setting in the Setup->Primary Domain screen for
mail spooling.

3) An MX record resolution will be performed on the domain but if


this fails or returns "unknown domain" then an A-record resolution
will be performed (this will use the IPCACHE and HOSTS or LMHOSTS
file as necessary). If this lookup fails the delivery attempt will
be aborted and reattempted on the next scheduled local queue run.

There is no maximum retry setting for this sort of mail so if you have
a LAN Domain specified you should attempt to ensure that it isn't out
of service for a long period of time or this type of mail could pile
up on you in the localq.

o A new switch has been added to the LAN DOMAINS tab called "Relay Mail
For These Domains?". If enabled MDaemon will consider mail either to
or from a member of these domains as local mail to defeat the "Refuse
To Accept Mail Form Non-Supported Users" setting. The default is to
enable this feature.

o Reworked the way domain aliases are applied in order to fix several
bugs in this part of the code. As a result of these changes care must
be taken with domain aliases to insure that they are working as you
expect them to.

o The "Outbound Domain Conversion" feature was not working on mail that
was POP downloaded for distribution.

o An error in the way the RAW system attached and encoded files to
messages was causing MSIM to generate a GPF error.

o MDxxx.LCK files were piling up in the SMTPIN (work) directory rather


than being deleted properly when they were finished being used.

o MDxxx.WRK files were being placed in the APP directory and left there
when processing sub-domain mail. Now they are placed in the SMTPIN
directory and are deleted properly.

o Mdaemon was not stripping out quoted comments when parsing "Received"
headers from POP downloaded mail. This was sometimes causing problems
when other hosts used the word "for" inside these quoted comments.

o Sending a message to "procnow@my-domain.name" will create a PROCNOW.SEM


and generate a processing event. Thus, you can't have a user called
"procnow".

o The pulldown boxes on the router window for accounts, lists, and
catalogs have been removed and a much more friendly system has been
put in place. Now when you edit one of these items a list of
entries will be presented from which you can choose the particular
account, list, or catalog you are interested in.

o A problem was fixed in which if you were forwarding an account's mail


and not keeping a local copy then only one message at a time was being
sent out!

o When people were joined or removed from mailing lists via the auto-
responder mechanism the welcome files were not being sent nor were
the notification messages being sent.

o The cause of a potential buffer overrun was found and removed. This
error would manifest itself when hosts replied to the initial SMTP
greeting usually with a lengthy diatribe against spam and mail
relaying.

o A parsing enhancement (as always) to handle strange mail.

o If an account was setup to forward mail and not retain a local copy
of the forwarded message then any autoresponder set on that account
was not functioning.

o If the "Enable Disk Checking For Waiting Message Counts" was disabled
MD was not sending the mail out at times. This has been fixed.

o A new switch in the RAS editor (Post Connection tab) allows you to
force the post connection process to terminate after the elapsed
interval has expired. This allows you to shut down processes which
don't exit on there own.

o The User Editor has been converted to a tabbed style dialog box.

o The "MultiPOP" feature has been removed from the SETUP pulldown
menu and placed in the "MultiPOP" tab of the new User Editor.
As a result of this change you will need to go through your accounts
and enable MultiPOP processing for the account's that should use
it. MultiPOP is now applied on a per account basis rather than
globally.

o Changes to the dialup schedule made via MDConfig were not being
applied when transmitted back to MDaemon.

o Additions and subtractions to mailing lists and catalogs made through


MDConfig were not being honored once transmitted back to MDaemon.

o There's a new tab in the POP3 Mail Source screen called "Routing
Rules" which allows you to define groups of users that should receive
a message based upon the value of the parsed address. Details on
how to operate this screen can be found in the MDAEMON.DOC file.

o The Scheduler has been slightly changed to aid in setting up event


times.

o You can toggle MD's SMTP, POP3, and MultiPOP functions on and off
through the FILE menu.

o MD will call the RAS HangUp() function even if the RAS session is
killed by a program or process other than MDaemon itself.

o A problem causing the mailing list engine to send list notifications


incorrectly at times has been fixed.

o There are a new set of controls in the User Editor Forwarding tab
that allows you to specify the Host, Envelope Identification, and
Port that forwarded mail should be sent on. This results in a
change to the FORWARD.DAT file format. MDaemon will autoconvert
this file to the new format when it starts.
o The "Unknown User Mail" settings have been removed from the Misc.
Opts. screen and placed in a tab under Setup->Primary Domain.
Along with the existing settings there are some new controls that
allow you to specify a Host, Envelope Identification, and Port.
These settings let you forward mail which arrives for unknown local
users on to another server for processing.

o A major change to the way MDaemon sends email has increased it's
efficiency GREATLY. As you know, the number of SMTP session windows
that can be created at once is controled by the "Max SMTP/POP3
Outbound" setting found in the "Time/Connection Settings" tab from
the "Setup->Primary Domain" screen (there's a mouthful). This
setting places a maximum upper limit on the number of simultaneous
delivery sessions MDaemon will attempt to make. In previous versions,
each session delivered only a single message. Now the behaviour of
MDaemon's SMTP session windows has been altered so that each session
window will continue to deliver messages - one right after the other
- until there are no more left in the queue or until a "per thread"
limit is reached (you can set this limit via new controls on the
Time/Connection Settings tab). For example, say you have MDaemon
configured to process remote mail once an hour and your remoteq has
60 messages waiting to go out and your "Max SMTP/POP3 Outbound"
setting is 20. In previous versions it would take you 3 hours to
deliver all these messages (using just simple scheduling for example).
Now, rather than 20 sessions being created that deliver only a
single message - 20 message threads will be created - each thread
continuing to process the queue until it is empty or until each
thread has processed a maximum number of messages that you can
set yourself!

You should experiment with the number of threads that yields the
best performance for your bandwidth. It's possible to specify
so many threads that your bandwidth will be overloaded or your
Windows machine will run out of resources and you will lose the
performance gains possible with this new version. Remember that
each thread will deliver messages one right after the other so 4
threads delivering 2 messages each might perform better and faster
than 8 threads delivering 1 each. I can say that on a 128k ISDN
I can easily support 20 threads (think about that a minute - 20
threads each delivering _only_ 5 messages each will move 100
messages in no time at all). A good place to start would be 5
threads with a 28.8K modem and 20 for ISDN. A practical absolute
limit would be 100 with a T1 and an NT machine with *LOTS* of
memory (at least 128k).

o You can set the maximum number of POP3 outbound (MultiPOP, POP3
Mail Source sessions for example) sessions and SMTP inbound
sessions that MD will allow via direct manipulation of the
MDAEMON.INI file (default for both is 100):

[Sessions]
MaxOutboundPop=100
MaxInboundSmtp=100

The max inbound POP and outbound SMTP can be set through the Setup->
Primary Domain screen. Inbound SMTP sessions will now be counted
separately from outbound SMTP sessions so that if your max outbound
SMTP sessions are in progress (processing list mail for example)
your mail clients will still be able to connect and deliver mail to
MDaemon (inbound SMTP) across your LAN. Likewise with POP sessions.

o Applying disk and message quotas is now on a per user basis. The
controls for this setting have been moved to a tab in the User
Editor and removed from the Miscellaneous Options screen.

o The "LAN Domains" feature was not being applied to forwarded mail.

o The "Auto Detect Domain Name" switch has been removed. It was just
causing confusion.

o The text "(MultiPOP forward)" will no longer be added to the subject


line on this sort of mail.

o The "Prepost Process" feature has been split up allowing you to specify
separate programs for local and remote mail processing events.
As a result of these changes any prepost process settings you may
already have configured will have to be reentered.

o The "Convert Outbound Domain" feature has been expanded to include


the CC line. Now when your domain sends mail to the outside world
local addresses on the CC line will also be switched to your Internet
domain name.

o The RAW specification has been updated as follows:

A new macro command called "header" has been added so that you can
force explicit headers into the RFC822 message that will be generated
from the RAW file. For example, if you need to explicitly insert an
"Errors-To: arvel@altn.com" field into mail generated from a RAW
file then just add the following line to your RAW file:

header <Errors-To: arvel@altn.com>

This will be carried through to the RFC822 generated message. Note


that you must specify both the RFC822 field header and value inside
the brackets. You can specify as many of these "header" commands as
are needed.

In view of this new command the old "X-Flag" system has been removed
with the exception of it's use with specifying attachments. If you
are using the "X-Flag" command in RAW mail note that you can still do
the same thing using the new "header" command thus:

header <X-Flag: some_value>

o Several parsing enhancements have been made so that MD can handle


mail from yet more non-RFC compliant mail systems.

Release B Build 2 (July 1997)

o For purposes of working with MDConfig you can no longer store your
MDaemon.ini file in the c:\windows or c:\winnt directories. This
file must be kept in the \app\ directory where MDaemon.exe is
located. If MD detects that you have MDaemon.ini in the WinSys
directory and NOT in the \app\ directory MD will move the file at
startup.

o "No Such User" mail will not be generated due to using the Domain
Name Replacement Engine on POP downloaded mail. This was stupid of
me.

o The "Strip This Text" features were not being applied to addresses
parsed from "Received" headers.

Release B Build 1 (July 1997)

o Local and Remote mail no longer share the same message queue. The
MLSPOOL directory is no more! Local messages will be stored in
\mdaemon\localq and remote messages will be stored in
\mdaemon\remoteq. You can remove the MLSPOOL directory. This
should help increase the efficiency of MDaemon greatly since it
will help control unnecessary message parsing.

o MDaemon's dependancy on RAS services has been overcome (finally).


MD will now dynamically determine the existance of RAS and adjust
it's internal states accordingly. This means that MD can run on
non-RAS machines without forcing them to install RAS support.

o All known problems with running MD as a service have been found


and fixed. MD no longer needs any dependancies in order to operate
as an auto-starting pre-logon system service. For those of you
who are upgrading from a previous version and wish to enable
service support under this version simply go to the NT System
Service screen off the setup menu and make the appropriate
adjustments or take the defaults. NOTE: You can remove any
dependancy that may be present due to a previous configuration.

o In order to provide seamless service support for the Windows NT


3.51 version of MDaemon one tradeoff was required. The dialup
engine under this version has been converted to synchronous
operation. This should not pose a problem if your dialup event
takes a relatively short period (say 1-2 minutes or so). Under
the NT 3.51 version MDaemon will queue pending connections but
will not service them until the connection has been established.

o You can't accidentally stop the program when it's running as a


service anymore. You can stop it using the FILE | TERMINATE SERVICE
menu selection but that wouldn't be accidental now would it <g>.

o The RAS editor has been converted to a tabbed style dialog. There's
a new tab in there also called "LAN Domains". This tab allows you to
enter as many domain names as you wish that are local to your LAN and
do not require dialup in order to be contacted. When a message
arrives for a domain listed here it will be placed in the LOCAL
message queue.

o A problem with the IP Screen editor was fixed. It was causing the
IPSCREEN.DAT file to be written to the wrong disk location which
caused the feature to fail at times.

o A problem with the Archival feature was removed which was causing the
Archival feature to send return-receipt confirmations back to the
message sender once the archival copy was moved into the archive
directory.

o A semaphore file has been added called ONLINE.SEM. Like QUEUERUN.SEM,


this is a semaphore created by MDaemon. MD creates this file in it's
\app\ directory once a RAS connection has been established with the
ISP. MD will remove this file when the connection is broken. This
will provide you with an easy method of detecting when MD is using the
line.

o If a message arrived destined for an address like this:

RCPT TO: <arvel@@altn.com> ; note the two @ signs

This sort of address would send MD into a parsing frenzy! This has
been fixed and extra @ signs back-to-back will be stripped out.

o It's been reported that MD spins up the hard disk too much. This
is because MD checks the disk for semaphores and to get the waiting
SMTP and RAW mail counts for the status display. If you are worried
about this then you can switch off the semaphore and mail-count
checking via switches in the Miscellaneous Options screen (one of
which is new).

o A new switch was added to the Miscellaneous Options screen that will
force MD to process mail when it loads up.

o The RAW mail engine was not attaching files that had space characters
in the file names (this is a common occurance with long file names).

o The time zone controls have been removed from the Setup screen. MD
will rely on MS Windows to provide the correct time zone information.
This "should" solve the DST problem. Many thanks to the great
Norbert Unterberg for suggesting the appropriate method of handling
this problem.

o A parsing problem was found and removed which was causing MD to


parse blank mailbox names at times. These mails were sent to the
postmaster as "No Such User" with addresses like "@altn.com" (note
missing mailbox).

o The "Overrides" button was removed from the POP3 Mail Source PARSING
tab and placed into a new tab called PROCESSING. Also a set of
new controls was added to the PROCESSING tab which will let you
specify a string that MD should strip from the left, right, or middle
of parsed addresses. This is useful for sites who's ISP has a
habit of tacking on a string to the addresses. Now this string can
be stripped off without the need to do alot of aliasing.

o A new option was added to the Miscellaneous Options screen called


"Strip X Headers From All Messages". When this is turned on all
X-type headers will be removed from messages as they are moved into
a user's mailbox. This only applies to local mail; outbound messages
are not affected by this switch since X-type headers are critical
to MDaemon's message routing procedures.

NOTE: Account's store mail using MBF files which describe the format
the stored mail should take. If your MBF file has explicit X-type
headers in it these will not be removed using this switch - you may
remove these X-type headers yourself by directly editing the MBF
file. For example, the RFC822.MBF file has a line which reads
something similar to this:

X-MBF-File: RFC822.MBF (version 1.0)


Even with the "Strip X Headers" switch turned on this X-type header
will survive because it is explicitly present in the MBF file. Just
remove this line from the MBF file if you wish to discontinue use
of this header.

o The tray icon was changed such that it reports the number of messages
waiting in the queue. When there's mail in the mail queue it's blue
otherwise white.

o The list moderator settings have been moved to a separate tab in


the list editor. There's also a new control that lets you specify
a list password. Anyone with the list password can freely post
to a moderated list bypassing the moderator. List passwords are
used as the first xx chars of the message subject.

For example, to bypass the moderator on a moderated list called


MDSUPP which has a password of ALTN make ALTN the first 4 chars
of the message subject.

o There's a new control in the list editor which lets you specify
the maximum size of messages that will be accepted by the list.
If a messages comes in greater than this amount the message will
spool to the bad message directory.

o The parsing engine was enhanced to handle embedded sections of


comment codes. This usually occurs when phone numbers are used
like this: ((817) 123-1234). The embedded (817) comment was
confusing the parsing engine.

o An error in the service editor was causing MD to install the service


under the wrong namespace sometimes.

o The "List Mail Has List Name In Subject" control has been removed
from the Misc. Options screen and added to the list editor screen.
This allows you to set this parameter per list rather than globally.
Also, an error with the thread numbering has been fixed and the
thread number has been moved to the end of the subject. This will
allow a simple subject sort to put the list mail in order.

o A problem with the IP screen not accepting wildcard entries was


fixed.

o Fixed a buffer overrun problem that was causing a GPF when sending
to hosts that respond with a unusually large greeting text.

o A new option has been added to the mailing list engine. If you
are using routed lists you can specify "Ignore Errors When Spooling
List Members To Host". With this option enabled MD will not
abort the session just because the remote host refuses to accept
a certain member of your mailing list.

o A problem with the scheduler was fixed where the scheduler would
go ahead and trigger a dialup when it wasn't supposed to if the
"Send if more than x messages are present" option was used.

o A problem with the lookup editor (the magnifying glass icon) was
fixed. It wasn't resolving the A-records properly.
o A problem with return receipts for list messages that was causing
alot of mail to end up addressed to BadMessageQueue@domain.com was
found and fixed.

o MD will now accept messages to mailing lists when the "Refuse Mail
For Unsupported Users" is selected. Previously MD was not recog-
nizing list mail as local traffic!

o It is now possible to forward mail to mailing lists. If you have


a local mailing list specified in an account's forwarding address
field the message will expand properly now. If the account that
is forwarding the message to a mailing list is itself part of the
mailing list a duplicate message will not be generated. This is
to prevent mail loops.

o MDaemon's address parser will strip strings contained in quote


marks prior to extracting addresses. Thus:

"Hathcock, Arvel" <arvel@altn.com>, "Vader, Darth" <darth@altn.com>

will strip the "Hathcock, Arvel" and "Vader, Darth" parts since
they are quotes. Previously, the comma characters within the quotes
were confusing MD's parser.

o A problem with Auto-Extraction of attachments was found and fixed.


The problem was related to illegal characters being used as part
of the attachment file name (at least illegal on a WinTel machine).

o Notification messages to the postmaster will now contain the


original email message as an attachment rather than included text.
For MS Exchange (and probably other clients also) you need to
make sure you have the following entry in your MIMETYPE.DAT file:

MSG=message/rfc822, Don't Encode

Without this line Exchange will not recognize that the attachment
within the notification message is an email message itself. The
MIMETYPE.DAT file is in your \mdaemon\app directory.

NOTE: The v2.5b installation routine will automatically add this


line to your MIMETYPE.DAT file if you have an existing installation
but you should check this anyway.

o The ROUTING tab in the POP3 Mail Source screen has been altered
slightly. MD will now only send a summary of the addresses that
were parsed along with a single copy of the message to the post-
master when you have selected to forward non-local mail to the
postmaster. Previously a separate copy of each message was being
sent to the postmaster.

o A problem was fixed which would cause MD to lockup if a mail session


ended with an SMTP error message after the message was transfered.

o A problem accepting mail from sub-domains when the "Refuse To Accept


Mail For Non-Local Users" switch was set has been fixed.

o I added some edit buttons to the Support File section of the mailling
list editor for ease of use.
o The width of the "Default TTL" control in the IP Cache has been
increased so you can get a 4 digit number in there.

o The length of domain aliases has been greatly increased.

o It's possible to enter a 3 digit value for timeouts (max 999) rather
than the former limit of 2 digits (max 99).

o Some parsing enhancements have been made to accomodate for older


mail systems that do not always form things according to RFC regs.

o The "Allow POP Access" toggle in the account manager was broken.

o If a user tries to subscribe to a mailing list the list's suppression


file is checked first. If the address is present in that file then
the user will not be subscribed.

o There's a new switch in the Misc. Options screen that governs whether
or not your server will respond to delivery confirmation requests.

-----------------------------------------------------------------------------
MDaemon Server v2.5 Release Notes
-----------------------------------------------------------------------------

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

REGISTERED USERS TAKE NOTE:

PLEASE BACKUP YOUR EXISTING INSTALLATION *BEFORE* INSTALLING THIS ONE.

Release B Build 2 (July 1997)

o For purposes of working with MDConfig you can no longer store your
MDaemon.ini file in the c:\windows or c:\winnt directories. This
file must be kept in the \app\ directory where MDaemon.exe is
located. If MD detects that you have MDaemon.ini in the WinSys
directory and NOT in the \app\ directory MD will move the file at
startup.

o "No Such User" mail will not be generated due to using the Domain
Name Replacement Engine on POP downloaded mail. This was stupid of
me.

o The "Strip This Text" features were not being applied to addresses
parsed from "Received" headers.

Release B Build 1 (July 1997)

o Local and Remote mail no longer share the same message queue. The
MLSPOOL directory is no more! Local messages will be stored in
\mdaemon\localq and remote messages will be stored in
\mdaemon\remoteq. You can remove the MLSPOOL directory. This
should help increase the efficiency of MDaemon greatly since it
will help control unnecessary message parsing.
o MDaemon's dependancy on RAS services has been overcome (finally).
MD will now dynamically determine the existance of RAS and adjust
it's internal states accordingly. This means that MD can run on
non-RAS machines without forcing them to install RAS support.

o All known problems with running MD as a service have been found


and fixed. MD no longer needs any dependancies in order to operate
as an auto-starting pre-logon system service. For those of you
who are upgrading from a previous version and wish to enable
service support under this version simply go to the NT System
Service screen off the setup menu and make the appropriate
adjustments or take the defaults. NOTE: You can remove any
dependancy that may be present due to a previous configuration.

o In order to provide seamless service support for the Windows NT


3.51 version of MDaemon one tradeoff was required. The dialup
engine under this version has been converted to synchronous
operation. This should not pose a problem if your dialup event
takes a relatively short period (say 1-2 minutes or so). Under
the NT 3.51 version MDaemon will queue pending connections but
will not service them until the connection has been established.

o You can't accidentally stop the program when it's running as a


service anymore. You can stop it using the FILE | TERMINATE SERVICE
menu selection but that wouldn't be accidental now would it <g>.

o The RAS editor has been converted to a tabbed style dialog. There's
a new tab in there also called "LAN Domains". This tab allows you to
enter as many domain names as you wish that are local to your LAN and
do not require dialup in order to be contacted. When a message
arrives for a domain listed here it will be placed in the LOCAL
message queue.

o A problem with the IP Screen editor was fixed. It was causing the
IPSCREEN.DAT file to be written to the wrong disk location which
caused the feature to fail at times.

o A problem with the Archival feature was removed which was causing the
Archival feature to send return-receipt confirmations back to the
message sender once the archival copy was moved into the archive
directory.

o A semaphore file has been added called ONLINE.SEM. Like QUEUERUN.SEM,


this is a semaphore created by MDaemon. MD creates this file in it's
\app\ directory once a RAS connection has been established with the
ISP. MD will remove this file when the connection is broken. This
will provide you with an easy method of detecting when MD is using the
line.

o If a message arrived destined for an address like this:

RCPT TO: <arvel@@altn.com> ; note the two @ signs

This sort of address would send MD into a parsing frenzy! This has
been fixed and extra @ signs back-to-back will be stripped out.

o It's been reported that MD spins up the hard disk too much. This
is because MD checks the disk for semaphores and to get the waiting
SMTP and RAW mail counts for the status display. If you are worried
about this then you can switch off the semaphore and mail-count
checking via switches in the Miscellaneous Options screen (one of
which is new).

o A new switch was added to the Miscellaneous Options screen that will
force MD to process mail when it loads up.

o The RAW mail engine was not attaching files that had space characters
in the file names (this is a common occurance with long file names).

o The time zone controls have been removed from the Setup screen. MD
will rely on MS Windows to provide the correct time zone information.
This "should" solve the DST problem. Many thanks to the great
Norbert Unterberg for suggesting the appropriate method of handling
this problem.

o A parsing problem was found and removed which was causing MD to


parse blank mailbox names at times. These mails were sent to the
postmaster as "No Such User" with addresses like "@altn.com" (note
missing mailbox).

o The "Overrides" button was removed from the POP3 Mail Source PARSING
tab and placed into a new tab called PROCESSING. Also a set of
new controls was added to the PROCESSING tab which will let you
specify a string that MD should strip from the left, right, or middle
of parsed addresses. This is useful for sites who's ISP has a
habit of tacking on a string to the addresses. Now this string can
be stripped off without the need to do alot of aliasing.

o A new option was added to the Miscellaneous Options screen called


"Strip X Headers From All Messages". When this is turned on all
X-type headers will be removed from messages as they are moved into
a user's mailbox. This only applies to local mail; outbound messages
are not affected by this switch since X-type headers are critical
to MDaemon's message routing procedures.

NOTE: Account's store mail using MBF files which describe the format
the stored mail should take. If your MBF file has explicit X-type
headers in it these will not be removed using this switch - you may
remove these X-type headers yourself by directly editing the MBF
file. For example, the RFC822.MBF file has a line which reads
something similar to this:

X-MBF-File: RFC822.MBF (version 1.0)

Even with the "Strip X Headers" switch turned on this X-type header
will survive because it is explicitly present in the MBF file. Just
remove this line from the MBF file if you wish to discontinue use
of this header.

o The tray icon was changed such that it reports the number of messages
waiting in the queue. When there's mail in the mail queue it's blue
otherwise white.

o The list moderator settings have been moved to a separate tab in


the list editor. There's also a new control that lets you specify
a list password. Anyone with the list password can freely post
to a moderated list bypassing the moderator. List passwords are
used as the first xx chars of the message subject.

For example, to bypass the moderator on a moderated list called


MDSUPP which has a password of ALTN make ALTN the first 4 chars
of the message subject.

o There's a new control in the list editor which lets you specify
the maximum size of messages that will be accepted by the list.
If a messages comes in greater than this amount the message will
spool to the bad message directory.

o The parsing engine was enhanced to handle embedded sections of


comment codes. This usually occurs when phone numbers are used
like this: ((817) 123-1234). The embedded (817) comment was
confusing the parsing engine.

o An error in the service editor was causing MD to install the service


under the wrong namespace sometimes.

o The "List Mail Has List Name In Subject" control has been removed
from the Misc. Options screen and added to the list editor screen.
This allows you to set this parameter per list rather than globally.
Also, an error with the thread numbering has been fixed and the
thread number has been moved to the end of the subject. This will
allow a simple subject sort to put the list mail in order.

o A problem with the IP screen not accepting wildcard entries was


fixed.

o Fixed a buffer overrun problem that was causing a GPF when sending
to hosts that respond with a unusually large greeting text.

o A new option has been added to the mailing list engine. If you
are using routed lists you can specify "Ignore Errors When Spooling
List Members To Host". With this option enabled MD will not
abort the session just because the remote host refuses to accept
a certain member of your mailing list.

o A problem with the scheduler was fixed where the scheduler would
go ahead and trigger a dialup when it wasn't supposed to if the
"Send if more than x messages are present" option was used.

o A problem with the lookup editor (the magnifying glass icon) was
fixed. It wasn't resolving the A-records properly.

o A problem with return receipts for list messages that was causing
alot of mail to end up addressed to BadMessageQueue@domain.com was
found and fixed.

o MD will now accept messages to mailing lists when the "Refuse Mail
For Unsupported Users" is selected. Previously MD was not recog-
nizing list mail as local traffic!

o It is now possible to forward mail to mailing lists. If you have


a local mailing list specified in an account's forwarding address
field the message will expand properly now. If the account that
is forwarding the message to a mailing list is itself part of the
mailing list a duplicate message will not be generated. This is
to prevent mail loops.
o MDaemon's address parser will strip strings contained in quote
marks prior to extracting addresses. Thus:

"Hathcock, Arvel" <arvel@altn.com>, "Vader, Darth" <darth@altn.com>

will strip the "Hathcock, Arvel" and "Vader, Darth" parts since
they are quotes. Previously, the comma characters within the quotes
were confusing MD's parser.

o A problem with Auto-Extraction of attachments was found and fixed.


The problem was related to illegal characters being used as part
of the attachment file name (at least illegal on a WinTel machine).

o Notification messages to the postmaster will now contain the


original email message as an attachment rather than included text.
For MS Exchange (and probably other clients also) you need to
make sure you have the following entry in your MIMETYPE.DAT file:

MSG=message/rfc822, Don't Encode

Without this line Exchange will not recognize that the attachment
within the notification message is an email message itself. The
MIMETYPE.DAT file is in your \mdaemon\app directory.

NOTE: The v2.5b installation routine will automatically add this


line to your MIMETYPE.DAT file if you have an existing installation
but you should check this anyway.

o The ROUTING tab in the POP3 Mail Source screen has been altered
slightly. MD will now only send a summary of the addresses that
were parsed along with a single copy of the message to the post-
master when you have selected to forward non-local mail to the
postmaster. Previously a separate copy of each message was being
sent to the postmaster.

o A problem was fixed which would cause MD to lockup if a mail session


ended with an SMTP error message after the message was transfered.

o A problem accepting mail from sub-domains when the "Refuse To Accept


Mail For Non-Local Users" switch was set has been fixed.

o I added some edit buttons to the Support File section of the mailling
list editor for ease of use.

o The width of the "Default TTL" control in the IP Cache has been
increased so you can get a 4 digit number in there.

o The length of domain aliases has been greatly increased.

o It's possible to enter a 3 digit value for timeouts (max 999) rather
than the former limit of 2 digits (max 99).

o Some parsing enhancements have been made to accomodate for older


mail systems that do not always form things according to RFC regs.

o The "Allow POP Access" toggle in the account manager was broken.

o If a user tries to subscribe to a mailing list the list's suppression


file is checked first. If the address is present in that file then
the user will not be subscribed.

o There's a new switch in the Misc. Options screen that governs whether
or not your server will respond to delivery confirmation requests.

v2.5 Release A Build 1 (Mid-May 1997)

o The "Maximum Concurrent Sessions" setting in prior versions has


been split into two controls now. One allows you to set a limit
on the number of SMTP sessions that can be processed concurrently.
The other governs inbound POP3 sessions. This will allow the
server to continue to accept and process POP3 client requests
even when max'ed out on outbound sessions to other servers.

o The IP Cache has been enhanced with expiration timeouts for each
entry. As a result of this you must CLEAR YOUR IP CACHE when you
run this version of MD for the first time!

There's a new control in the IP Cache editor that will allow you
to define a default expiration limit in minutes. Most of the
time the expiration limit will be taken from the TTL field of
the MX DNS packet that is returned when the domain name is
resolved.

o There are UNLESS buttons in the POP3 Mail Source Routing tab that
will allow you to set exceptions to what remote addresses are
deleted or forwarded to the postmaster when mail is downloaded
from the ISP mail source.

o A semaphore file called REBOOTMD.SEM will bring up the interface


when you login after starting MD as a service. Alternatively,
you can double click the MD icon again and the running interface
will come up.

o List header/footer files will be properly placed in list messages


that have attachments now.

o The "Read Only" toggle on list mail has been removed. It's function
became increasingly unneeded as MDaemon has evolved.

o A bug in the forwarding of MultiPOP messages was found and removed.

o If you use the "List Name In Subject" option (Miscellaneous Options)


the list messages will have a message number which will allow a
sort of threaded feature.

o When you delete a user or mailing list any aliases you have setup
for that user or mailing list will also be deleted.

o Some problems with the Sub Domain Editor were fixed.

o The Mailing List Editor has been redesigned.

o There's a new set of controls associated with mailing lists that


will allow you to send a notification message to an address when
someone subscribes or unsubscribes to a mailing list.

o There's a new set of controls that allow you to define the headers
MD will process for recipient information in POP downloaded mail.

o The suppresion file can now contain wildcards like this:

*@domain.com - suppresses all mail from anyone at "domain.com"

frank@* - suppresses all mail from anyone named "frank" regardless


of domain.

o Support for MX resolution of mail hosts has finally been completed


and installed into MDaemon. In order to utilize MX record support
you will need to define a DNS server IP address and port value in
the Setup->Primary Domain screen. Also MX record resolution only
takes place if you have selected to "Spool Undeliverable Mail Only".

o New controls in Setup->Primary Domain having to do with defining


a DNS server and port for MX record resolution and also a timeout
value for DNS responses.

o The internal resolver util (you know that magnifying glass icon?)
has been changed to resolve MX records.

o Due to unavoidable internal changes you will have to reenter your


Prepost process settings when you upgrade to this version.

o The Setup->Primary Domain Settings screen has been converted to a


tabbed-style dialog. Some control sets that have previously been
found on the Miscellaneous Options screen have been moved to tabs
and some of the old Primary Domain controls have been moved to
the Miscellaneous Settings screen.

o There's a new tab in the Setup->Primary Domain screen called


"Archival". The settings in this tab will allow you to forward
a copy of each message that flows through the server to a
specific address such as a local mail account where it can be
archieved for future reference. The address could also be an
alias to a local mailbox (such as "Postmaster" for instance)
or a remote email address at another domain.

o The max length of the forwarding address field has been increased
to accomodate some of our overseas friends ;)

-----------------------------------------------------------------------------
MDaemon Server v2.1 Release Notes
-----------------------------------------------------------------------------

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

v2.1 Release C Build 1 (May 1997)

o MD will strip "SMTP:" from the front of any address that it parses
from downloaded mail.

o There's a new timeout setting in the Miscellaneous Options screen


called "Wait XX Seconds For Protocol To Begin". This setting allows
you to specify the amount of time in seconds MD will wait for the
SMTP or POP protocol dialogue to begin once a connection has been
established. If the protocol doesn't begin within this amount of
time MD will give up and pass the message off to the mail gateway.
The default setting for this new feature is 15 seconds.

o MD will remember the windows placement and size across sessions.

o To aid third party development efforts related to the USERLIST.DAT


file MD has been altered to perform the following function when
processing the user file. When MD loads the user file and finds
a blank space (decimal 32) in position 279 and a Y (decimal 89) in
position 280 it will assume that the record's pop password field
contains unencrypted text. MD will then encrypt the text using it's
internal encryption method. This will allow third party programs
to enter records into MD's USERLIST.DAT file and not have to worry
about encrypting the POP password field. MD will do it automatically.

o There's a new option in the Miscellaneous screen entitled "Force


Message-ID Header In All Messages". If a message arrives which doesn't
already have a Message-ID value then MD will insert one.

o The mailing list editor has a new option associated with cracked mail.
The option is called "Generate A Unique Message ID For Each Copy". If
selected MD will make sure that each copy of the list message gets a
unique Message-ID value.

o READ CAREFULLY:

The behavior of the scheduler has been altered slightly which will make
it much more powerful. If you use the simple scheduling method to
script your dialup's MD will require at least one entry PER DAY in the
scheduled time listbox in order for that day to be eligible for simple
scheduling.

For example:

Suppose you want to script 45 minutes between dialup sessions but only
on Monday thru Friday. You would need to enable the Simple Scheduling
option and enter 45 minutes into the control and then enter at least
one scheduled time for each day (Monday, Tuesday, Wednesday, Thursday,
and Friday). Since there wouldn't be a scheduled time for Saturday
or Sunday those days would be exempt and would not trigger a remote
mail session.

The time you use when you setup your trigger days doesn't matter. The
simple scheduling algorithm doesn't care what time you use for a day -
it just checks if an entry is present for that day or not. The simple
scheduling countdown always starts immediately when the option is
activated.

o When MD computes UIDL numbers for messages in response to an incoming


POP session MD will include a hash of the message so that there is
no chance that the same UIDL will be used more than once in the mailbox.
Previously, a very slim chance existed for duplicate UIDL's.

NOTE: Due to the change in the UIDL algorithm users who are storing
mail on the server based upon the value of the UIDL string will receive
the stored messages again since the UIDL computed by MD will not match
the previous one stored in the mail client.

o The "Maximize Use Of This Connection Profile" has been altered again.
Previously this feature would trigger itself even if MDaemon owned
the RAS session. This feature is supposed to make use of RAS sessions
which are started by programs other than MDaemon, so the code has been
modified such that only sessions created outside MDaemon will trigger
the maximized use algorithm.

o The RAS sub-system in MDaemon has been enhanced as follows:

After MDaemon starts a RAS session it will begin monitoring the state
of the session (imagine that <g>). If another program (or a user at
the keyboard) shuts down the session MDaemon will detect this and reset
it's state buffers accordingly. Previously MD did not monitor the state
of the connection once it had been established and thus if another
program shut down the connection MD would not detect it.

o A new option was added to the Suppression File dialog. It reads "Refuse
To Accept Mail During SMTP Session". If you enable this switch then the
addresses listed in the suppression file will be checked during the
SMTP session when the MAIL FROM <user@domain.com> SMTP instruction is
passed. This way the message will be stopped cold right there and will
not be accepted at all. Usually, messages from suppressed users are
accepted but MD will refuse to deliver them. Now you can force MD to
not even accept the message in the first place. This option is not
compatible with the "Inform Sender Of Message Rejection" option. That
option requires that the message file be accepted by MD in order to
operate.

o If you want to get a listing of the files present on a catalog you


can send a message to "mdaemon@altn.com" and place "dir catalog_name"
in the message body.

o A message requesting a non-existant magic name from a catalog will


result in a listing of the valid files from the catalog being sent
to back to the requesing address.

o A problem was fixed which was causing the list editor to fail to report
the "Read Only" and "Private" settings correctly.

o A bug in the system tray popup menu was removed. It was causing the
menu to track itself improperly.

o A bug was removed that was causing MDaemon to count itself toward the
maximum account limit.

o A bug was removed in the IP Caching code that was causing MD to fail
to cache some unknown domains to the gateway IP (if you have that
switch set).

o A bug was removed which was causing MD to not append footer text to
list mail if the list mail was pulled from a remote POP source.

o The "Maximize Use Of This Connection Profile" switch wasn't displaying


the timeout value previously set but was always showing the default
1 minute. It remembered and used the correct setting but never displayed
it on the screen. This has been fixed.
v2.1 Release B Build 1

o Ok, in the Miscellaneous Options screen there has been for a long time
an option called "Force Reply-To:". If this switch is set MD will
place a Reply-To field in messages that don't have one. The value MD
uses is taken from the FROM: field. This option wasn't working
properly when mail was downloaded from POP ISP mailboxes. It's always
worked right with live SMTP. It works right with both now.

o The "Honor Requests For Userlist Information" switch is working now


in the Miscellaneous Options screen. I can't believe I put this in
there but forgot to write any code to make it work! Sorry!

o If for some reason you want MDaemon to startup full screen you can
set the following switch in the INI file:

[Special]
StartMaximized=Yes (the default is No)

o There's a new set of controls in the POP3 Mail Source screen under the
Parsing/Routing tab. The controls allow you to specify a header which
MDaemon will use to de-duplicate the download queue. The obvious
header to use is the MESSAGE-ID but you can use any header you want.

Sometimes mail is delivered to an ISP and multiple copies are generated


by the ISP and placed in the POP mailbox (this usually happens when
someone sends mail using carbon copies to multiple people at your
domain). Thus when MD connects and downloads these messages unwanted
duplicates are sent to your users. Now MD will remember the value of
the MESSAGE-ID header (or whatever other header you might care to use)
and remove duplicates across the entire download session based on the
values found in this header. Currently, there's no way you can control
what happens to these duplicate messages; they are simply deleted
immediately after they are downloaded; however, MD doesn't check for
duplication until AFTER the "Place A Copy Of All Downloaded Mail Here"
switch is checked and honored. So, if you use this safety feature you
will be able to inspect these duplicate messages.

This should finally put to rest the duplicate message problems which
several POP download based users have been frustrated over. Thanks
for your patience.

o The "Resent-To:" header has been added to the list of headers which
MD will parse when it downloads mail from a POP mail source.

o An error was fixed which was causing some settings in the account
editor to not save to disk when the account was first created.

o A screen will popup which will ask you for a timer interval if you
click the "Maximize Use Of This Connection Profile" switch in the
RAS editor. This will allow you to set whatever timer value you
want MD to use when monitoring a RAS profile for maximized use.

o The edit control in the TCP Connection screen has been replaced with
a listbox control.

o An error was found wherein MDaemon would not lock files which it was
transferring via MultiPOP. If a user tried to POP in and collect
a message which was still being transferred via MultiPOP they would
get multiple copies of a message which said something to the effect
of "Entire Message Not Transferred". Now MDaemon will properly
lock MultiPOP messages while they are in transit - sorry.

o A new way of scheduling connections has been added to the Send/Receive


Scheduler screen. Using the "Simple Scheduling" control you can
define an interval in minutes which MDaemon will use between remote
mail processing events. This may seem redundant at first since the
slider gauge on the Router window can do the same thing but the
difference here is that the slider gauge event is rigidly fixed at
the intervals you specify. This new control will reset it's timer
event anytime remote processing is triggered regardless of the source
of the trigger.

o Mailing list welcome files are now parsed and handled similar to the
auto-response scripts. This means that your mailing list welcome
files can now incorporate any of the macros that auto-response
messages might contain - including the special %macro% ones!

o An error was fixed which was causing MDaemon to sometimes pick the
wrong RAS profile when the RAS editor screen was constructed.

o The Router display window which shows you what MDaemon is doing has
been changed from an Edit control to a plain ListBox control. This
should result in a larger volume of text being displayed before MD
must clear the control. It also seems to be much faster when session
windows update the display. You can control the amount of memory
MDaemon will use for this control by setting the following parameter
in MDAEMON.INI:

[Special]
MaxRouterLines=5000 (the default is 5000 lines between clearings)

o Previously, it was possible to enter a value of "0" in the "Make


This Many Attempts To Establish A Session" switch in the RAS editor.
This resulted in MDaemon not dialing the ISP. I know I've fixed this
before but additions to the program have resulted in rewriting alot
of this code in the past months. Anyway, a minimum value of "1"
will now be imposed.

o Support for 3 new semaphores has been incorporated to aid third party
development efforts:

HANGUPR.SEM - a "rude" hangup of any session that MDaemon may have


initiated with an ISP. This is an immediate and unconditional
hangup without regard to mail sessions which may be in progress
across the connection so watch out!

HANGUPG.SEM - a "graceful" hangup request. This semaphore will cause


MDaemon to drop the connection at the earliest opportunity (the
instant there are no longer any mail sessions using the connection).

QUEUERUN.SEM - MDaemon makes this semaphore just before it processes


the mail queue. The semaphore file will contain a single line of
information - the datestamp of when the queue run began. MDaemon
does not remove this file but it will overwrite it at each queue
run. This provides a crude mechanism which other processes can
use to insure that MDaemon is up and running properly.
o MDaemon will no longer perform an exhaustive domain alias translation
when a message arrives at the server. By this I mean the following:
suppose you have domain aliases set up like these (the LOCAL and REMOTE
settings don't matter for this small example).

frank.com = bill.com
bill.com = mart.com
mart.com = arvel.com

Formerly, "user@frank.com" would end-up as "user@arvel.com". Now it


will end-up as "user@bill.com" which is what is expected. Please note
that a further translation from "user@bill.com" to "user@mart.com"
will still occur when MDaemon DELIVERS the message in the next queue
run but when the message is delivered TO MDaemon such an exhaustive
translation will not occur. The best thing to do is avoid recursive
or multi-layered aliases whenever possible.

o A problem in the expander engine was preventing MDaemon from expanding


out messages that were to multiple mailing lists. The second mailing
list to which the message was addressed consistently generated an
"unknown user" message to the postmaster. This problem has (finally)
been fixed. I'd like to thank Steve Worden of BizTech (www.biztech.net)
for his patience in this area - he's been waiting half a year for me
to get around to this one.

o MDaemon was running the Post Connection Process each time the process-
ing interval expired rather than just once after the RAS connection
was established. Use the Pre-Post Process controls in the Setup->
Primary Domain screen if you need to execute a process before each
queue run.

o When the USERLIST.SEM semaphore file is detected MDaemon will rebuild


the EVERYONE mailing list as well as reload the user database.

o The POP3 Mail Source parsing engine has been totally re-written in
an attempt to both speed up the processing time involved and to
make more efficient use of the many options available with this
feature.

o A problem was found and removed which was causing Mdaemon to ignore
the PROCNOW.SEM semaphore file. This file is used internally when
Mdaemon needs to initiate it's own mail processing events. This
was the cause of the priority mail feature not working.

o The Domain Alias screen has a new button called "Advanced". Clicking
this button brings up a new screen where you can specify your
Outbound Domain Translation settings. If you turn this feature on
and specify a domain name then any mail which arrives at the server
FROM a local user *AND* TO a remote user will have the domain name
of the FROM, REPLY-TO, and RETURN-RECEIPT-TO headers changed to the
one specified.

For example, if your local domain name (the one in Setup->Primary


Domain) is "home.com" but on the Internet and on your ISP people send
mail to you by using "real-domain.com" then you will want to use this
feature. It will allow you to use "home.com" on your local LAN but
will change all references to "home.com" to "real-domain.com" when
a message needs to leave your domain to get delivered. It will not
change the domain name if the message is TO: someone at "home.com".
This way, local traffic will not be altered.

Use of this feature in combination with the "Replace All Domain Names
With This One" control in the POP3 Mail Source screen can greatly
simplify the use of POP3 ISP hosts for mail collection.

v2.1 Release A Build 1

o Newly created mailing lists must contain at least two members.

o The UNSUBSCRIBE command can, like the SUBSCRIBE command, accept an


optional address on the command line.

Ex: UNSUBSCRIBE groupname me@mydomain.com

o MDaemon has a setting in the RAS editor called "Maximize Use Of This
Connection Profile". Formerly, when this switch was set MDaemon would
check for and use the specified connection (if it was active) once every
minute. Now you can control this via a setting in the INI file. I
didn't have time to work it into the interface but the setting for this
is:

[Timeouts]
MaximizeConnection=xx

You can use this setting to override MDaemon's default of 1 minute


between checks for this profile. The value specified here is in
minutes. If you change this value you *will* have to restart MDaemon
for the change to take effect.

o There's a new switch in the Miscellaneous Options screen that allows


you to configure your server for private use. You can switch on the
"Refuse To Accept Mail For Non-Local Addresses" if you don't want your
system to be used as a pass-thru. Of course, domain and account
aliases and sub-domain names are considered when determining if an
address is local or not. Additionally, this feature has no effect
if the message originates FROM a local user or any valid alias thereof
(they can send to anybody).

o A new set of controls has been added to the NT System Service screen.
These controls allow you to specify a heirarchy of services which
must start before the MDaemon service does. These services are
called dependancy services. One dependancy service that must start
before MDaemon is the RAS service. Typically this service is called
"RasAuto" however some installations have reported it under a variety
of other names. Using these new controls you can specify whatever
services you want started before MDaemon.

o A spelling mistake was reported and corrected in which "Feb" was


spelled "Fed" (must've been agonizing over tax time again).

o The POP3 Mail Source screen has been converted to a tabbed-dialog.

o The "Parsing/Routing" tab on the POP3 Mail Source screen has a


new set of controls:

The "Replace All Domain Names With This One" switch allows you to
specify a domain name that *ALL* recipients parsed from downloaded
mail will be instantly converted to. This will save you the trouble
of, for example, having to create dozens of domain name aliases
to handle mailing list traffic downloaded from an ISP POP source -
just set this switch and have all domain names parsed from every
message transformed into whatever domain name you want (your primary
one for example).

o The maximum password length in the POP3 Mail Source screen has been
increased to 50 characters after we were made aware of some ISP's
which impose very long password strings.

o It's possible to set the "Keep Session Alive For" setting to 0 minutes
in the RAS Dialup/Dialdown screen. Setting the connect time to 0 will
force the server to hangup as soon as possible after processing mail
collected from a remote source.

o Some additional diagnostic messages will be included in each session


log to help trouble-shoot any problem connections.

o The controls which allow you to set defaults for the EVERYONE mailing
list have been removed from the Miscellaneous Options screen. They
were incomplete anyway. Now all the settings for this mailing list
are remembered from session to session. You need only setup the
EVERYONE mailing list the way you want it using the mailing list editor
(like you would any other mailing list) and MDaemon will remember the
settings from session to session.

o When downloading mail from a POP mail source on your ISP a parsing
problem with addresses that have comments *and* comma's inside those
comments was causing errors. This has been fixed.

o The auto-extraction engine has been totally reworked both for


performance and to better handle the many different ways mail clients
use MIME headers to specify an attachment. If your accounts use the
auto-decode feature you should see an improvement in the number of
attachments MD is able to handle and extract. Finally, the new
engine will facilitate handling new encoding methods in the future.

o The source of a potential buffer overrun was found and removed.

o A new switch is available in the Miscellaneous Options screen which


allows you to select whether or not you want your server to honor
the USERS command and send your userlist information to the requesting
system.

o The Priority Mail screen has a new button called "Exceptions" which
will allow you to define field/value combinations which will make a
message an exception to the priority mail settings. This will give
you more flexible control over the use of this feature.

o Support for a special catalog called "Public" has been added. MDaemon
will create this catalog automatically on server startup if it does
not already exist. You can place files into this catalog which will
be made available without password protection. Files can be grabbed
from this catalog by simply writing an email message to mdaemon@domain.com
and specifying "get filename.txt" in the body of the message. Note
that the public catalog doesn't require you to specify the name of the
catalog or a password in order to get the file.

o When you press the right mouse button on the tray icon a menu will
popup. The menu allows you to perform various standard functions
as well as lock the server console. If you wish you can select "Lock
Server" and enter a password. To bring the interface back up you will
have to enter the password again.

NOTE: The tray popup menu is incomplete as of this release. Although


it is completely functional I am aware of a placement bug in which
the popup menu sometimes appears in an unexpected location. You don't
need to report this as a bug if you encounter it.

-----------------------------------------------------------------------------
MDaemon Server Release Notes
-----------------------------------------------------------------------------

Note: I don't think I used version numbers at this time but I could be
wrong. I remember all the letter and build crap though - Arvel (10/17/02)

Release X Build 1

o It's possible to set the "Keep Session Alive For" setting to 0 minutes
in the RAS Dialup/Dialdown screen. Setting the connect time to 0 will
force the server to hangup as soon as possible after processing mail
collected from a remote source.

o Some additional diagnostic messages will be included in each session


log to help trouble-shoot any problem connections.

o The controls which allow you to set defaults for the EVERYONE mailing
list have been removed from the Miscellaneous Options screen. They
were incomplete anyway. Now all the settings for this mailing list
are remembered from session to session. You need only setup the
EVERYONE mailing list the way you want it using the mailing list editor
(like you would any other mailing list).

o When downloading mail from a POP mail source on your ISP a parsing
problem with addresses that have comments and comma's inside the
comments was causing errors. This has been fixed.

o The auto-extraction engine has been totally reworked both for


performance and to better handle the many different ways mail clients
use MIME headers to specify an attachment. If your accounts use the
auto-decode feature you should see an improvement in the number of
attachments MD is able to handle and extract. Finally, the new
engine will facilitate handling new encoding methods in the future.

o The source of a potential buffer overrun was found and removed.

o A new switch is available in the Miscellaneous Options screen which


allows you to select whether or not you want your server to honor
the USERS command and send your userlist information to the requesting
system.

o The Priority Mail screen has a new button called "Exceptions" which
will allow you to define field/value combinations which will make a
message an exception to the priority mail settings. This will give
you more flexible control over the use of this feature.

o Support for a special catalog called "Public" has been added. MDaemon
will create this catalog automatically on server startup if it does
not already exist. You can place files into this catalog which will
be made available without password protection. Files can be grabbed
from this catalog by simply writing an email message to mdaemon@domain.com
and specifying "get filename.txt" in the body of the message. Note
that the public catalog doesn't require you to specify the name of the
catalog or a password in order to get the file.

o When you press the right mouse button on the tray icon a menu will
popup. The menu allows you to perform various standard functions
as well as lock the server console. If you wish you can select "Lock
Server" and enter a password. To bring the interface back up you will
have to enter the password again.

NOTE: The tray popup menu is incomplete as of this release. Although


it is completely functional I am aware of a placement bug in which
the popup menu sometimes appears in an unexpected location. You don't
need to report this as a bug if you encounter it.

Release W Build 2

o Expert Mode has no effect when exiting the server. You will be prompted
before shutdown regardless of this setting.

o The RAS scripting problem has been fixed. MDaemon's built-in dialup
engine will honor RAS scripts now.

o The scheduler problem where it refuses to dial has been fixed. This
was the result of the schedule file having entries of the form:

"Sunday at 3:00"

and the code expecting the entry to look like this:

"Sunday's at 3:00"

The form "Sunday at 3:00" is now it should look. If you're schedule has
entries of the form "Sunday's at 3:00" you will need to reenter your
schedule.

o Several menu items in the SETUP menu have been re-named although thier
function has remained unchanged. The new names better reflect the
content of the menu item.

o A new entry in the POP3 Mail Source menu has been added which allows
you to specify if you want MDaemon to parse "CC" lines when it collect
and processes mail from a remote POP source.

Release W (mid January 1997)

o A new set of controls has been added to the Setup menu under the heading
of "Micellaneous Options". Using this screen you can set default values
for the EVERYONE mailing list, configure timeouts, and several other things
that have been configurable in the past only by direct manipulation of the
MDAEMON.INI file.

o A new control in the Miscellaneous Options screen allows you to set your
server's time zone. You need to access this screen and select the proper
time zone for your MDaemon installation. The default is GMT -0000.
o A new control in the Miscellaneous Options screen allows you to set your
server's maximum supported concurrent mail sessions. If you have large
volumes and have experienced problems with "out of buffer space" or
other such errors from your ISP you should reduce this setting. This
setting governs the total (inbound AND outbound) concurrent open sessions.

o A new control in the Miscellaneous Options screen lets you toggle


whether list mail will have the list name in the subject line.

o A new control in the Miscellaneous Options screen will allow you to set
a smaller screen font so you can see more in the router window. This
change is not immediate and requires a reload of MDaemon before it takes
effect.

o A workable quota system has been added. The account editor has been
changed to allow you to specify an account's maximum number of allowable
messages and also the maximum amount of disk space that the account can
consume (this includes any decoded file attachments in the account's
FILES directory). If a mail delivery to the account is attempted which
would exceed either the maximum messages or the maximum disk space
allocated to the account then the message is forwarded to the postmaster
along with an appropriate warning. If a multipop collection would exceed
the accounts maxima a similar warning is issued and the account's
multipop entries are automatically switched off (but not removed from
the database).

Note: The quota engine must be switched on via a new toggle in the
Miscellaneous Options screen in order for this feature to be enforced.

o There are two new options in the RAS Dialup/Dialdown screen. Here they
are:

[ ] Dialup Only If Mail Is Waiting In Outbound Queue

If this switch is set MDaemon will not dialup the ISP unless there is
mail waiting to go out. This may be beneficial in some circumstances but
be aware that if MDaemon doesn't dialup it can't do any mail *collecting*
either (unless it's delivered across the local LAN).

[ ] Maximize Use Of This Connection Profile

This switch setting causes MDaemon to monitor the connection profile


specified in "Use This RAS Profile" control. If MDaemon detects that
another program has used this RAS profile MDaemon will go into mail
processing mode and swap messages with remote hosts immediately regardless
of scheduled times. Basically, if the connection is available whether
created by MDaemon or not, this switch causes MDaemon to use it.
Note that MDaemon only checks if the connection is active once per
minute so there could be a wait of at most 59 seconds after the first
program establishes the connection before MDaemon begins to use it.

o As a result of the above change the account template editor has been
modified to allow you to set default values for the new quota settings.

o Several new user account macros have been added. They are:

$KEEPFORWARDEDMAIL$ - (On/Off - Account keeping a copy of forwarded mail?)


$HIDEACCOUNT$ - (On/Off - Account is hidden from the EVERYONE list?)
$ENCRYPTMAIL$ - (On/Off - Account is encrypting stored mail?)
$MAXMESSAGECOUNT$ - long int - max messages allowed in mailbox
$MAXDISKSPACE$ - long int - max disk space allocated to mailbox

As a result of these new account variable a new ACCTINFO.DAT script is


required. MDaemon will auto-generate an up-to-date script if you will
just delete the ACCTINFO.DAT file from your \mdaemon\app directory before
executing MDaemon.

o The built-in return-receipt that gets sent back when a message requests
this has been removed and placed into a script. When you run this version
of MDaemon for the first time the default RECEIPT.DAT script will be
created in your \mdaemon\app directory. Take a second to look at it and
you'll see the potential here.

o The catalog feature has been modified which will result in a change to
the catalog data files. As a result you will have to reenter your
catalogs or create a new catalog and observe the format change and then
manually edit your .CAT files accordingly. You will see that the change
is easy to manually perform.

In order to expand upon this feature in the future, support for old-style
BBS "Magic" names has been included (remember FrontDoor type programs
under FidoNet?). Instead of requiring your users to FREQ a specific file
from your disk (including path and everything) you can assign a "magic
name" to each file and the requester need only remember this shortcut.
From now on files are requested from catalogs using the magic names rather
than the full path to the file.

o Full system service support has been added for Windows NT. You can now
run the server as a system service and get full MDaemon functionality
without having to logon. For complete details on how to set this up
please refer to the MDaemon System Service FAQ until the DOC file is
updated. The FAQ is called SERVICE.FAQ and is included in the update
package or can be obtained from http://www.mdaemon.com or you can FREQ
the file from my MDaemon (Mdaemon@altn.com) using the following settings:

Catalog Name: Support


Password : Support
Magic Name : Service FAQ

o A problem was found and fixed which was causing the "\\xxx" MBF decimal
character code macro to fail. This is working normally now.

o The IP Cache Editor has a new button called "No-Cache". The No-Cache is
a configurable list of domain names and/or IP addresses that you never
want MDaemon to add to the IP Cache. This is useful when sometimes you
need to keep from caching certain domains and/or IP addresses.

o When a user account collects mail via the MultiPOP feature the account's
settings related to mail forwarding will now be honored. If the account
is forwarding mail then a copy of the MultiPOP downloaded message will be
generated and delivered to the forwarding address.

o You can remotely control an account's multipop settings by sending a


message to "mdaemon@domain.com", specifying the account name and the
account password in the subject line, and then using "multipop on"
or "multipop off" in the message body. For example,
To: mdaemon@altn.com
Subject: arvel, my-password

Multipop off

o When you bring MDaemon up from the system tray it will restore using
SW_SHOWNORMAL rather than SW_SHOWMAXIMIZED.

o MDaemon will now remove comment strings from "Received" headers before it
processes them for "for" values. Not doing this was causing problems for
some people.

Release V Build 5 (Christmas 1996)

RELEASE V CONTAINS A VERY LARGE NUMBER OF CHANGES. PLEASE READ THESE


RELEASE NOTES WITH CARE AND MAKE SURE YOU UNDERSTAND WHAT IS BEING
CHANGED BEFORE YOU INSTALL THIS UPDATE.

PLEASE USE THE MIGRATE UTILITY (http://www.altn.com/migrate.zip) TO AID


YOU IN MAKING MANY OF THESE CHANGES AUTOMATICALLY. THESE RELEASE NOTES
WILL CONTAIN REFERENCES TO THE MIGRATE UTILITY THROUGHOUT SO THAT YOU
WILL KNOW WHAT CHANGES MIGRATE WILL MAKE TO YOUR SYSTEM. FOR INSTRUCTIONS
ON HOW TO RUN THE MIGRATE UTILITY CONSULT THE MIGRATE.TXT FILE.

Here we go...

o A full encryption package has been integrated into several parts of


MDaemon. Here's a breakdown of encryption related changes:

a) MultiPOP passwords are now stored in an encrypted state in the


MULTIPOP.DAT database file.

d) Passwords and logon names which appear in the RAS and POP Host
Settings screens are now stored in an encrypted state in
MDAEMON.INI.

c) POP passwords for individual accounts are now stored in an encrypted


state in the USERLIST.DAT file. Because encrypted strings are
slightly longer than when in an unencrypted state the maximum length
of an account's POP password has been reduced to 12 characters.
Please check your user accounts and make sure you don't have any
passwords longer then 12 characters.

d) There's a new entry in the Account Editor screen called "Encrypt


Stored Mail". If selected the account's mail will be stored in an
encrypted state in the account's mail directory. The messages will
be automatically decrypted before being sent via TCP to a remote
user. Please be aware that under the current encryption/decryption
scheme only messages less than or equal to 4096 bytes in length will
be encrypted. This is a performance limitation that will be im-
proved in a future version.

e) The Account Template screen has a new setting "Encrypt Stored Mail"
which sets this switches default value.

The migrate utility will automatically convert your existing multipop


passwords, RAS and Pop Host Settings logon names and passwords, and
your account passwords to thier Release V encrypted equivalents.
o The MIME system for automatic encoding and automatic decoding of MIME
attachments has been substantially enhanced. As a result the current
MIMETYPE.DAT file is now obsolete.

IMPORTANT:

The migrate utility will delete your existing MIMETYPE.DAT file so


that the Release V server will rebuild it when it is executed for
the first time. Please make sure you do not have this file attribed
as read only. If you have made additions to this file you will have
to reenter them once the server rebuilds the file.

The changes that have been made provide support for the 7bit encoding
method (plain text) as well as Base64. Also, using the new format of
the MIMETYPE.DAT file you will be able to specify when MDaemon should
use 7bit or Base64 encoding to attach a message under the RAW system.

See the MIMETYPE.DAT file itself and you will see how to format new
entries into this file.

o The RAW system has been enhanced to allow a new encoding type of
ASCII in addition to MIME. If a line like the following is encountered
in a RAW message

x-flag=attach <c:\file.txt, ASCII>

the ASCII keyword will simply import the file into the message without
encoding it or adding any MIME related headers.

o A problem was found and fixed which was causing MDaemon to incorrectly
parse the subject line in RAW format messages.

o A problem with sending list subscription messages was found and fixed.

o A problem was found and fixed which was adding the list moderator to
the list membership multiple times.

o You can control whether or not you want MDaemon to operate in "expert"
mode. You have to set this yourself in the INI file until I can work
it into the interface. In "expert" mode MDaemon will not request con-
firmation before closing dialog boxes. The INI file entry is:

[Special]
ExpertMode=Yes (or No)

The default value is NO.

o You can configure the TCP timeout that MDaemon should use by directly
manipulating the MDAEMON.INI file. The entry is:

[Timeouts]
Tcp=10

This is the number of minutes of inactivity that MDaemon will accept


before closing a mail session window.

o The AutoResponder "Run This Process" has been reworked and should perform
much better now. Also the macro $MESSAGE$ can be placed on the command
line in place of the message file name if you select "Pass Message To
Process". This lets Auto-responder programs use syntax like this:

h:\public\myprog.exe /i=$MESSAGE$ /o=output /d /s etc...

The name of the incoming message file will replace the $MESSAGE$ macro.

o Full support for the POP LAST has been added to the POP server portion
of MDaemon. It will now properly track and respond to the POP LAST
command from mail clients such as Eudora Pro 3.0 - Note that the UIDL
or "message header" method is preferred if your mail client offers a
choice.

o The MultiPOP feature has been totally redone and is much more powerful
now. The new editor for MultiPOP is too complex to discuss in the
release notes. Please check the new DOCS for complete instructions.
The new MultiPOP editor is described starting with DOC version 2.5.

o An error was found and fixed that was causing MDaemon to connect to
the gateway host's SMTP port if a MultiPOP session timed out or could
not be established.

o For ISP's who want to host multiple domains a new entry was added to
the SETUP | PRIMARY DOMAIN screen called "Bind To This IP". If you
select this switch then MDaemon will bind it's listening sockets to the
IP:PORT combination specified on this screen rather than to
INADDR_ANY:PORT. This allows multiple copies of MDaemon each running
a different domain to co-exist together on the same computer. Each
MDaemon will honor socket requests specific for it's own domain IP.
Pretty damn cool. This works under Windows NT 4.0 only.

One additional configuration change needs to occur before you can get
this sort of setup to work. The various copies of MDaemon that you are
running on the same computer MUST NOT share the same MDAEMON.INI file.
So what you must do is make sure there's no c:\windows\mdaemon.ini file.
Keep each server's copy of MDAEMON.INI in it's \mdaemon\app directory.

NOTE: Running multiple domains and multiple instances of MDaemon requires


separate licenses. Use of the multiple domain feature may violate your
license arrangements. Please contact arvel@altn.com for more information.

o A new control was added to the Pop Host Settings screen called "Enable
Domain Pop Mail Collection". This control simply governs whether the
settings in this screen should be enabled and is a more elegant means
of controling the use of Pop mail collection. Previously you had to
blank out the Pop Host field to disable this feature.

o A new timer has been added to the RAS Settings Editor. It's called
"After Dialing, Wait This Many Seconds For A Valid Connection". The
value entered into this control will be the number of seconds MDaemon
will wait for the other side to answer the modem, get through the
handshaking, and establish the connection. If this period elapses
before a valid connection is made MDaemon will abort the attempt.

o The controls in the Pop Host Settings screen have been changed and the
way MDaemon parses mail when downloaded from an ISP pop mailbox has been
modified also. The changes are related to the "Parse Received Headers"
optional parameters. The parameters now read:

[ ] Parse "Received" Headers for Recipient Info


If this switch is selected MDaemon will parse EVERY received header in
the message and extract any addresses that it finds placing them in the
potential recipient pool - with one exception (read below)

[ ] Stop Parsing if "Received" Yields Local Address

If this switch is set then the VERY FIRST local address encountered while
parsing the Received headers WILL STOP ALL further parsing. Note that
since the "Received" headers are parsed first (before To:, Cc: etc...)
this will effectively block any other recipient from getting a copy of
the message. This should be OK since the "Received" headers are supposed
to contain the actual SMTP intended recipient.

o An additional new control has been placed in both the Pop Host Settings
and MultiPop Settings screens.

[ ] If Supported, Use The POP Server's LAST Command

An older specification on POP has a provision for a command called LAST


which returns the message number of the highest accessed message.
Although this command doesn't appear in the newer POP literature it seems
to still be supported in QPOP and SendMail! Using this command MDaemon
is able to determine which messages present on the POP host are NEW and
haven't been accessed before. MDaemon can then download only unread
messages. Use of this option is configurable through new controls added
to the Pop Host Settings screen and the MultiPop Settings screen. With
it you can uncheck the "Delete Mail" options and have MDaemon only
download the newer messages.

Remember that the newest RFC I have found on POP3 (RFC 1939 - May 1996)
has no mention of a LAST command so you may encounter newer POP servers
which do not honor this instruction . In such cases, MDaemon will revert
to normal operations even if you have enabled the LAST option.

o There are a couple of additional new settings in the account editor:

[ ] Retain a Copy Of Forwarded Mail

If this is selected then a local copy of forwarded mail will be generated


and stored in the user's mail directory. Otherwise the incoming message
will simply be sent to the forwarding address and NO local copy will be
retained.

[ ] Hide Account From EVERYONE Mailing List

Sometimes it's useful to have accounts hidden even from MDaemon. If this
is selected the account will not be added to the automatically generated
EVERYONE mailing list.

o An optional third token can be provided in subscription requests which


is the address of the person who wants to join the list. For example,
you can have:

subscribe mdsupp arvel@altn.com

By default, MDaemon simply joins the sender of the message to the list.

o The server will no longer allow you to enter a ":" character when
entering priority mail headers. This was causing the PM system to
fail under some circumstances.

o An error in the RAS subsystem was found which should result in a much
more stable dialup/dialdown engine. The fix has imposed a minimum
connect time of 1 minute to the dialup process however.

o It is no longer possible for a domain to be cached to the IP address of


the localhost. This was causing some interesting mail routing loops.

o A completely new method of duplicate list message detection has been


put into place which should do away with duplication problems for list
managers. The method relies on a the "X-MDMailing-List:" header rather
than on counting the number of hops the message has made through the
transport system.

o The MaxMessageHops parameter no longer serves the duplicate detection


function yet it remains as a stop gap measure against future recursion
related problems. The MaxMessageHops parameter in the MDAEMON.INI file
should be set to a recommended value of 20. All this measures is the
number of servers which a message has encountered while in route to
it's intended recipient. Most SendMail installations cap this number
at around 20. The assumption is that if a message isn't delivered by
it's 20'eth trip through a mail server then it's likely the message
is in some sort of delivery loop and should be removed from the mail
stream and discarded.

Release U (11/17/96)

o An error was found and corrected that was causing MDaemon to handle mail
sent to private lists improperly.

o The list engine will scan the subject line of list messages to make sure
this following condition doesn't happen:

[MDSUPP] [MDSUPP] [MDSUPP] This is the subject line

o A new feature has been added to the list engine and is configurable in
the list editor. You can now specify who should receive any returned
mail generated from list traffic. For example, a mailing list with
100 recipients will generally have 10-20 undeliverable addresses either
due to address changes or down servers or whatever. The SMTP system
will generate and return to the sender of the message notification mail
concerning these undeliverable conditions. You can configure who should
receive these messages for your mailing lists. You can also specify
that noone should receive them in which case MDaemon will place list
mail into the mail stream in such a way that return mail will not be
possible.

This is theoritical. I'm not absolutely certain that the technique for
accomplishing this will work in %100 of all cases. We will be testing
this option using MDSUPP in the coming days and weeks.

o You can control whether or not you want MDaemon to generate an auto-
response event if the triggering message is from a local user. You
have to set this yourself in the INI file until I can work it into
the interface. If you want to disable auto-responders being sent back
and forth amongst local users you can set this using the following
INI file entry:
[AutoResp]
LocalResponse=Yes (or No)

The default value is NO.

o A weird error was found that was preventing the Firewall from working
properly. This has been fixed.

o In the past MDaemon would respond to the "LISTS" command by returning


a complete manifest of all mailing lists as well as membership information
back to whoever sent the "LISTS" command. Now MDaemon will only generate
this information for lists who have the "Respond to ESMTP EXPN" switch
set.

o As you are probably aware, MDaemon maintains it's own mailing list
called "Everyone" which it uses for it's own purposes and which it
rebuilds periodically. You can now control several of the switch settings
that MDaemon will use when it regenerates this mailing list. You can
permanently set these attributes by editing the INI file (once again
no interface element yet). Here are the relevant entries:

[EveryoneGroup]
AllowSubscriptions=Yes (or No)
ReadOnly=Yes (or No)
Private=Yes (or No)
ReplyToList=Yes (or No)

o The macro $USERLASTINITIAL$ is now in place and working. You may use it
anywhere you would normally use template macros.

o The VRFY command will now respond properly to aliased addresses.

o There is an entire new set of configuration parameters off the SETUP menu
entitled "Priority Mail". Using this set of controls you can give MDaemon
an unlimited set of header/value combinations which it will look for when
it receives a message for the first time. If MDaemon discovers that the
message contains any one of these header/value combinations it will
immediately put itself into a "it's time for mail delivery" mode.

o A problem was found and removed which was leading to recursive lookups of
the smart-host over and over again. This situation came up often with
compuserve addresses. For example, if the host being resolved was
"mail.compuserve.com" it would resolve to "arl-mail-1.compuserve.com".
Since the names were not the same MDaemon was being fooled into thinking
that is had looked up the wrong host.

o If the connection timeout expires while connecting to the smart-host


MDaemon will just give up the delivery attempt. It was trying to connect
over and over and over again in the same session rather than waiting for
the next scheduled interval.

o When parsing addresses from POP downloaded mail MDaemon was sometimes
failing to strip the trialing ";" and ">" characters when extracting
addresses from "Received" headers.

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


o Minor tweaks for system performance.

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

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

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

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

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

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

o Internal changes Rel-T Build 1 made to the MultiPop feature precluded


the possibility of having multiple MultiPop settings spool mail into
the *same* directory. This has been corrected.

o A connection timeout feature has been added. Although it's not in


the interface (yet) you can set a timeout (in seconds) that you want
MDaemon to use when waiting to connect to a remote server. The
default value is 10 seconds and will be automatically set in the
INI file when you run T-2 for the first time.

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

Since there's not yet a corresponding interface control to set this


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

o A few other special features have been added for compatibility


purposes. None of these features has an interface element yet so
you will have to manually edit the INI file yourself to set them
up if you need them. Here they are:

1) ForceReplyTo

[Special]
ForceReplyTo=Yes (or No)

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

Default = no
2) SunOSCompatible

[Special]
SunOsCompatible=Yes (or No)

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

Default = no

3) UseSemaphores

[Special]
UseSemaphores=Yes (or No)

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

Default = yes

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

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

a) ALIAS.DAT
b) DOMAINS.DAT

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

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

AS A RESULT OF THESE CHANGES THE FORMATS OF THE ALIAS.DAT AND


DOMAINS.DAT FILES AS THEY EXIST NOW ARE OBSOLETE AND WILL NOT
WORK UNDER RELEASE T!

Here is how aliasing is working under Release T:

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

b) Domain aliases work like this:

1) If an alias has the LOCAL flag set then it will be applied only
to recipient addresses for mail messages which originated from a
local user. This is a bit confusing so it needs an example.
Let's say your domain is "altn.com" for the following examples:

If "arvel@altn.com" sends a message to "arvel@anet-dfw.com" and


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

If "arvel@altn.com" sends to "arvel@anet-dfw.com" and there's an


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

If a message arrives from "chadw@metronet.com" and is destined


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

If a message arrives from "chadw@metronet.com" and is destined


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

Please send me a message (arvel@anet-dfw.com) if you encounter any


problems with the new aliasing scheme. I expect there's bound to be
something I've overlooked in this area.

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

Here is a breakdown on how it works:

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

Here are the headers that are parsed:

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

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

B) CC: headers - Every address within the CC header is parsed and


stored in the pool as a potential recipient.
C) First and Second "Received" header - Whether or not these two fields
are processed is configurable.

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

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

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

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

o The accelerator keys are working.

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

o In Rel-S when MDaemon couldn't resolve or connect to a domain it would


cache the domain name along with the IP of the default gateway. This
behavior is now configurable in the IP Cache Editor.

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

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

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

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

[-1] Attempting TCP connection to [localhost]


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

As you can see, there's no response to the USER command and the session
aborts. What's actually happening is a sincronization(sp?) problem.
WinGate is triggering MDaemon multiple times while it's still processing
the buffer from the previous signal! I think I've got this problem fixed.

o A new switch has been added to the Multi-Pop screen which will allow
you to enable/disable Multi-Pop functions. Previously, you had to clear
out the entire dialog box to make it stop collecting mail. Now you
just check the Enable/Disable control.

Release S (Build 1)

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

YOU WILL HAVE TO REENTER YOUR SCHEDULER SETTINGS!

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

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

o An IP caching system has been integrated. You can reach it by selecting


SETUP | IP CACHE from the menu bar. This cache is used to speed up
mail delivery. It is a FIFO type cache which allows you to specify the
number of entries (and thus the size) of the cache.

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

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

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

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

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

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

o I think I've found a workaround for the lost focus problem. Hopefully
this annoyance is a thing of the past.
o It is no longer possible to create recursive auto-responders. The
auto-responder engine will not generate an auto-response if the response
is addressed to the mailbox which hosts the auto-responder.

o The way forwarded mail is generated has been substantially changed.


Previous versions used the RAW system which worked great unless the
forwarded message had embedded file attachments. Now the forwarding
system keeps all the messages in RFC822/MIME format.

Release R (10/26/96)

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

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

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

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

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

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

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

o A parsing problem in the auto-extracter was causing server crashes


at times. Fixed.

o Incoming alias transformations on account names will only take place


if the domain name matches MDaemon's primary domain! This was an oversite
that should have been corrected in Rel-Q.

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


request.

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

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

a) 16-bit version: MDaemon will create a file called POSTLOCK.LCK in


the MLSPOOL directory and will block waiting for that file to be
removed. You're process (or batch file) must remove this file
before MDaemon will return to normal operations.

b) 32-bit version(s): MDaemon's primary execution thread will be


stopped until the prepost process returns or until the number of
seconds you specify in the Setup | Primary Domain screen has
elapsed. You can enter a value of "0" in this field to have
MDaemon "go to sleep" indefinately waiting on your process to
return.

o A stupid mistake in the auto-response editor was causing it to GPF


on "Ok" or "Apply". Fixed.

Release Q (Build 5)

o Debugging code removed.

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

Release Q (10/20/96)

o A couple of buffer overruns were leading to GPF errors when downloading


mail from an ISP pop mailbox. These were found (thanks Michael) and
fixed.

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

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

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

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

o The way MDaemon routes mail is completely different in this version.


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

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

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

o An extraordinarily annoying little bug was found and removed which


was causing the input focus to shift from the current application
to MDaemon whenever a new session window popped up - even if Mdaemon
was minimized or sitting in the system tray!

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

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

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

o RFC822 states that the postmaster account must be valid on all


Internet mail hosts so you will get a warning on startup if MDaemon
discovers that you have no postmaster alias!

Release P (10/13/96)

o The Router Window was slightly enlarged.

o Nearly every memory buffer in the parsing engine was increased to


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

o There's a new option in the Pop Host Settings screen labeled


"Parse Latest "Received" Header for Recipient Info?". If selected
MDaemon will check the most recent "Received" header and try to
parse out the optional SMTP "for <address-spec>" information when
it downloads mail from an ISP pop mailbox.

o If the domain portion is missing from an address in a message


delivered to MDaemon via RAW, POP, or SMTP then MDaemon will
append it's own domain name to the address.

o If MDaemon is handed a source routed message, the source route


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

o Previously, message which arrived via POP or SMTP which lacked


a TO: field in the message were not routing to the bad message
directory. Now they will.

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

o Previously, the moderator of a mailing list wasn't automatically


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

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

o The suppression lists have a new feature entitled "Inform Sender


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

o A major problem with the auto-extractor was causing messages


with multiple MIME base64 encoded attachments to decode improperly
if you had "auto-decode" selected. This bug was found and fixed.
MDaemon can handle up to 25 individual attachments per message.

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

o The Account Template Editor now has places to define default


settings for Auto-Decode, Remote Control, and Pop Access.

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

o The scheduler was being needlessly checked every minute which


taxed server resources. Since the minimum interval that can
be distinguished using the scheduler is 15 minutes the scheduler
check only needs to occur every quarter-hour.

o The name of the mailing list will now be appended to the


subject text of list messages and an X-Mailing-List: header will
be added to the message.

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

o If MDaemon detects that you have no "postmaster" user defined


at system startup a warning will be displayed in the Router
Window. RFC822 states that the postmaster account is required
to be valid at each site.

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

o Several fields in the Domain Configuration screen did not have


the auto-hscroll bit set and were far too limited in the number
of characters that could be input.

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


removed.

o Previously, if you had the "Delete Collected Mail From Non-Local


Users" selected in the Pop Host Settings screen, MDaemon would
delete the message *before* putting it through the alias trans-
formation routine. Now, it will check the recipient for aliases
before deleting the message.

o In an attempt to cope with circular messages MDaemon can be


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

Release O (10/06/96)

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

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

o Several problems related to parsing messages (especially when collected


from a remote POP box) have been found and corrected.

o An overwhelming number of customer requests have lead to the re-


working of the scheduler to make it even more flexible. You'll
have to look at it to understand the changes but basically you
script the days/hours/minutes you want MDaemon to use yourself.
This method saves screen space. The scheduler also has two new
features added which can initiate a mail session - I think you'll
like them.

Release N (09/30/96)

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

o The scheduler/RAS/and Pop options have been reworked and I think they
make more sense now. Rather than simply determining when POP mail
should be collected from an ISP mailbox, the scheduler now governs
when all remote mail is sent and collected; you no longer need to
define a pop host in order to use the scheduler to control your
outbound mail. You *may* define a pop mailbox on the new pop host
screen and MDaemon will connect and download messages just as before
but you don't *have* to do this in order to control when your outbound
SMTP mail should be sent. Whether or not a connection is made
prior to sending/receiving mail is governed entirely by the settings
in the new RAS dialog screen.
o RAS settings have been removed from the scheduler and placed in
their own setup dialog box (off the SETUP menu). Simply put, if
RAS services are required before sending or collecting your mail
then you can fill out the controls in this dialog box and MDaemon
will dialup/dialdown where appropriate.

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

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

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

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

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

-BEGIN-
Greetings $SENDER$!

You're message regarding `$SUBJECT$` won't be read by me because


I'm on vacation so LEAVE ME ALONE!

Your's truly (yeah right),

$RECIPIENT$
-END-

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

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


original message.

%SetRecipient%=mailbox@host.org - changes who MDaemon thinks should


recieve the newly generated auto-response message.

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


ReplyTo header.

%SetActualTo%=mailbox@host.org - changes who MDaemon thinks the


"actual" recipient of the newly generated auto-response message
will be.

%SetSubject%=subject - changes what MDaemon thinks the subject of the


message is supposed to be.

%SetMessageId=IdString - changes what MDaemon thinks is the message


id string for the message.

%SetPartBoundary%=PartBoundaryString - changes what MDaemon considers


to be the part boundary string.

%SetContentType%=ContentTypeString - changes what MDaemon thinks is


the content type of the message.

GET THIS ONE:

%SetAttachment%=filespec - makes MDaemon think that it should attach


the specified file to the newly generated auto-response message.

NOTES:

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

The %SetAttachment% macro can only attach *one* file to your


message. Subsequent calls to %SetAttachment% just overwrite
the previous one.

No actual changes are made to the original message file on


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

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

-BEGIN-
Greetings $SENDER$!

You're message regarding `$SUBJECT$` won't be read by me because


I'm on vacation so LEAVE ME ALONE!

Your's truly (yeah right),


$RECIPIENT$

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

The new message which will be generated using this script as


a template will have a custom subject line and will have the
specified file encoded as a MIME attachment.

The '%SetSubject%=RE: $SUBJECT$' instruction is handled in this


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

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

o Lists can be flagged as "private" allowing only messages from list


members to be circulated.

o Replies to list messages can selectively be set to "Reply to List"


(replying to a list message posts a followup message to the entire
list) or you can leave this option off and replies will be privately
sent to the list message originator (not the whole list).

o Lists can be setup to deliver *one* copy of list message to another


remote host for delivery using multiple SMTP RCPT commands. This
can greatly reduce the workload on your machine if you are running
lots of list traffic.

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

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

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

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

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

Release L (09/21/96)

o In preparation for a future which will have no limit on concurrent


sessions, Rel-L removes the session limit on incoming connections.

o Passing /b in the command line (icon properties) will bypass the


startup warning dialog in the demo version.

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


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

o Removed yet another error related to HTAB characters in message


headers which was causing problems for the message parser. Can't
I get through one release without an HTAB problem? ;)

Release K

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

o Mail which arrives for an unknown local user can be selectively


routed back to the sender, to the "postmaster" user, and/or to
the bad message directory.

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

o Added a global suppression file. If a message arrives and is


listed in this file it is summarily deleted.

o Added suppression files per list. You can define a separate


suppression list to be applied to specific lists.

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

o Removed a bug that sometimes caused a GPF when an incoming SMTP


session delivered several messages via the RSET method.

o Remote control commands and list subscriptions no longer require


that arguments be provided in "< >" characters. This makes things
more listserv-like (someone test all these for me).

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

o The "part boundary" string separating attachment files in messages


generated from a RAW file was not correct if the RAW contained
multiple "x-flag=attach <filespec, MIME>" instructions.

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

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

o In the gateway thing: if you have a gatewayed domain called say


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

o Totally reworked the random filename generator as it was at times


causing problems on NT 3.51 and Windows 95.

o Limited support for installing custom gateways added (see the new
docs for a complete description).

Release I (Labor Day Weekend - 1996)

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

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

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

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

o Failure to specify a gateway host name in mdaemon.ini will now


force the server to enter the setup dialog at program entry.
This was causing problems for some folks.

o Rather than hard-coded warning text being applied to list messages,


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

Release H (08/27/96)

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

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

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

o Sometimes the end of message sequence was recieved across packets


which was causing some sessions to "hang" until the timeout event
occurred.

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

o Gone 3D!

o Added code to insure that only one instance of MDaemon will be in


memory at any given time (16-bit version only).

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

o Tons of static data was moved to string-table resources which allowed


me to up the STACKSIZE in the project .DEF file (16-bit version).
This gives the server more breathing especially with regard to the
recursive nature of the $INCLUDE<>$ macro.
Release G (08/22/96)

o Terminating the mail server via any method other than the FILE | EXIT
was causing a GPF.

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

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

o Removed a bug where $INCLUDE<>$ macros in welcome files, auto-res-


ponse scripts, etc. were not working when combined with the
$HELPFILE$, $WELCOMEFILE$, and $ACCTINFOFILE$ macros.

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

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

o Domain mapping translation and user alias translation logic completely


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

o Alias' can be assigned to list names as well as account names. This


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

o The welcome file that was supposed to be sent to newly subscribed


list members was not working.

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

o A primitive DNS lookup function was added and can be accessed


from the toolbar.

Release F (08/12/96)

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

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

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

Important Note: Due to changes to the internal management of mailing lists,


group definition files from previous releases of MDaemon are not compatible
with Release E. You will have to recreate your mailing lists (sorry).
The upside is a much more flexible list system.

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

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


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

o POP session window updated to display who is actually on the other


end of the connection (there's a thought!)

o POP sessions will index and allow access to ALL files in the users
maildrop. Previously, only files ending in .MSG were indexed and
made available. This caused some MBF transformed files to be non-
POPable.

o Server based process execution and proclist features removed. These


will be integrated into a future version as an external service.

o Extensive GUI changes.

o Support for list moderatation added.

o List welcome files added.

o Full mailbox aliasing implemented. Alias editor integrated into the


mailer GUI.

o Hardcoded aliases for MDaemon (such as listserv, list-serv, etc) removed


from the program code and placed in the alias table. This fixed a
problem encountered when outgoing mail to list servers on other hosts
was being translated to "mdaemon" (no good).

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

Release D (08/04/96)

o POP3 TOP command not sending +OK prior to transmission of message


headers. This condition caused problems for offline/remote mail clients
such as Microsoft Exchange (when in remote mode) and Agent 99e.

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

Release C (08/04/96)

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

Release B (07/31/96)

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

o If an MBF failed to specify a default attachment prefix and extention


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

o The documentation incorrectly states that attachment and message file


name prefixes can be up to 4 characters in length when a maximum of only
3 characters are actually allowed.

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

-END-

Anda mungkin juga menyukai