ReadMe File for WinSmtp Shareware Release 1.05
----------------------------------------------

WinSmtp is Copyright 1994, 1995, Jack De Winter

Thanks for the time used to evaluate this product.  A lot of work by a lot
of people has gone into making this daemon work very well on a wide variety
of systems.  Feel free to send any comments about this package to:

winsmtp@wildside.kwnet.on.ca

In addition, there is a WWW page that has been generously provided by my
employer, Software Metrics.  Feel free to access the page to get information
about WinSmtp, but please do not flood the page with tonnes of usage.  I do
have a personal Internet feed, but I do not have a FTP daemon running there
and do not foresee this in the future.  However, you may look at the web page
that is there for up to date information on the products that I write.
The WWW pages are:

//metrics.com/SMTP/index.html/
//wildside.kwnet.on.ca/WinSmtp.html/

There are also copies of the program at the following sites:

wuarchive.wustl.edu
xenitec.on.ca

However, as there is a fun process to get it in their directories, it takes
a bit of time to get the new version there.

One of the things that has been put off for a while is an interactive help
page for the daemon.  As most people don't mind asking a couple of questions,
and most of the operation is straight forward, this has not been a high
priority.  However, it will be finished before the v1.06 release.  Please
feel free to send questions in about the operation until this time.  There
are parts of this file that contain help though, and that should always be
your first choice.

The aim of this product is to effectively lower the cost for people out
there.  This can be achieved by having one account on a service provider
and using a Windows-enabled machine to receive and send all of the mail.
As this will save the end-users some money, by not having to use multiple
accounts on a service provider, the modest shareware or commercial fee for
the product will be won back many times within months.

Whenever someone reads something regarding paying a shareware fee, the
usual response is: "yeah, I'll use it but won't pay anything for it".  The
usual response from the programmers are: "hey, we worked on something and
would like to be able to recover our costs for it".  As both, I have to
say that I register all of the shareware that I use.  I know what it is
like to write something and to want to recover costs.  Think of it this
way, the unregistered version is a little trailer for the movie.  If you
like it, you pay and go and see it.  Otherwise you don't.  The onus is
on you.


Introduction
------------
This program is an Internet Mailer Daemon.  The purpose of this product is
not to read mail, but to provide services for the users of a system to read
mail.   To this end, the daemon provides SMTP and POP3 support for sending
and reciving mail.  These services can be used by a front end, of which
there are many, that makes use of the UNIX mailbox or POP3 services
provided by this product.

To send mail, the user can call either the SMTP server and drop the mail
off there, or they can use the 'wrmail' program included with the daemon
to place the data in the proper format and in the proper location.  To
receive mail, the user may either scan the UNIX style mailbox, or they
may also use the POP3 server to access the data.

Future versions of this product will support some of the standard interfaces
for relaying mail, including Microsoft Mail support and CCMail support. As
This is done as a shareware product and those are commercial features, those
options will probably be left for a commercial version.


Features
--------

This product is currently undergoing beta testing for a possible future
release as both a shareware product and a commercial product.  The current
list of features are as follows:

- easy to read status screen, with output relayed to a log file.
- outgoing mail support though a rmail like interface and SMTP server
  capabilities
- full MX record resolution, including resolution to subnets
- access to incoming mail in mailboxes though the UNIX mailbox type format
  and POP3 server support
- configurable connection methods, and the ability to specify groups of
  connections based on the node or class of nodes
- easy to use method of determining which nodes are not responding
- almost invisible usage without any user intervention (except possibly at
  startup of the daemon program)
- compliant to all of the Internet RFC (protocol specifications) noted below
- easy to use dialogs to access the function for the system
- friendly reporting of connection information in the main window and retry
  information in an easy to access dialog
- friendly support over the Internet
- mailing list and auto-responder support

Compliancy
----------

This product is compliant with the following RFCs, except where noted. This
list gets bigger as more RFCs come out and as I get to work through more of
them.

RFC 821                 - SMTP
RFC 822                 - Internet Mail Format (types of addressing)
RFC 876                 - Survey of SMTP Implementations
RFC 1123                - Requirements for Internet Hosts
RFC 1460 (obs 1225)     - Post Office Protocol - Version 3
RFC 1651 (obs 1425)     - SMTP service extensions (ESMTP)
RFC 1653 (obs 1427)     - SMTP Externsion for Message Size Declaration

Shareware Version
-----------------

Currently, the unregistered shareware version of the daemon has the
following limitations:

- only one user can access the system through the POP3 services
- pops up a dialog every time the program is started
- limit of 5 active users within one daemon, as well as other limitations
  with respect to user types
- limited support for the product via the internet
- no options in the retry dialog (to bounce or try again with a given node)
- no connection exceptions used for routing besides the main routing option

Registering the program will eliminate the reminder dialog, increase the
number of POP3 sessions to 10, eliminate all of the other limitations,
and will entitle the user to full support.  The cost for registering the
shareware version will be $50 per unit ($50 USD for everyone outside of
Canada and $50 CDN for everyone inside of Canada).  Based on the input from
the beta testers, this seems to be a reasonable amount to charge.  If you
want a copy of the program on a 5.25 or 3.5 inch disk, there will also be an
ammount added for the shipping and handling of the disk.

Future enhancements will include:
- support for the MAPI protocol
- running as an NT service in Win32 native mode

Configuration
-------------

As of release 1.03, we have the new configuration dialogs.  There is a dialog
for the general setup of the system, and a separate dialog for the
maintenance of the users.

When the program is run for the first time, it will assume some basic
settings, which you will have to change.  The most important of these is the
SmartHost setting.  This setting determines a computer that will receive
your requests to send mail and will pass mail to you.  It is important to
check with the owners of the computer to make sure that it is okay to use
their computer for this purpose.  While most people will agree to forward
mail for you, they really do appreciate you asking.

At the beginning, the only user that should be active is the root user.  You
will probably want to set up an account for yourself.  Note that the root
user and the postmaster user always have to exist.

Installation
------------

1) Create a directory and unzip the file into that directory.  There should
be the following files:

readme.txt (this file)
manifest.txt
bugs.txt
wrmail.exe
winsmtp.exe
winsmtp.ini
openc.dll
ctl3d.dll
ctl3dv2.dll

If any of these files are missing, contact the mail address at the top of
this file for help.

2) If the installation has gone write, you should be able to get the daemon
   up and running at this moment.  Run the file 'winsmtp.exe' using Program
   Manager, File Manager, or any other application that can launch programs.

3)  When the program is run for the first time, it will try and acertain the
    name of the local machine and the IP number.  If you need to override
    these values, you need to put the correct entries in the "LocalNode"
    and the "LocalIP" entries.  Each time the program starts, it will attempt
    to verify these values.

    These values, and all of the other values specified in this section,
    may be changed by using the 'Options | System...' dialog box.

3)  Specify the name of the service provider in the SmartHost entry.  All
    mail will get forwarded to this machine to get processed.  If this value
    is not specified properly, then outgoing mail will not be able to be
    sent outside of the computer.  Make sure you check with the system
    administrator at the computer you are using at this host to ensure that
    it is okay for you to forward your mail there.  They may also need to
    set up some records so that everyone else will know to send mail for you
    to their computer first.

4)  Specify the name of the NameServer in the NameServer entry.  This is
    used to resolve addresses to send files to, so it should be aware of
    a fair number of nodes.  In my setup, I have this set to the same node
    as my SmartHost.

5)  You may want to set the SystemIncoming, SystemOutgoing, UserDirectory,
    LogFile, and Users-Root entires to point at different directories.  For
    example, I place my system directories in c:\winsmtp\sysin and
    c:\winsmtp\sysout, with the mailboxes in c:\winsmtp\sysmail.  The
    logfile is set to c:\winsmtp\syslog\maillog.txt.

6)  You may want to change the "DoExpnAndVrfy" entry to reflect that you do
    not wish the EXPN and VRFY commands to be used.  These commands allow
    postmasters (and other users) to look at your SMTP daemon and ask about
    mailing lists and users.  No information is given beyond the name and
    address of the user for VRFY.  EXPN returns only one message as the
    daemon currently does not support mailing lists.


Adding and changing users
-------------------------

At the current moment, there are two types of users: users and aliases.  A
user is an actual entry specifying that a person will be using the system
as their maildrop.  An alias allows mail for a user to be sent to multiple
addresses and routed to the single account.  A good example of this is the
root account, which has many different accounts forwarded to it.

To access the user database, select the 'Options | Users...' menu item and
the users dialog box will appear.  The listbox shows all of the current
users, with controls to change the information regarding the currently
selected user.  To add a new user, select the user type, and enter in the
appropriate information and press the 'Add' button.  To change data for
any existing user, select that use in the listbox and change the data.  Once
the entries are acceptable, the 'Modify' button will become enabled and
pressing it will change the settings.  To delete the current user, press
the 'Delete' button.

Note that unlike the 'Options | System...' dialog, these changes will take
effect immediately.  Also, verification will be performed to ensure that
there is a user (or alias) for the 'root' user and the 'postmaster' user.
This is required for the operation of an Internet mail node.


Routing and Timing
------------------

In addition, there are two dialogs used to specify how to connect up to the
remote sites.  The Timing dialog specifies how often to cycle through the
two queues, incoming and outgoing, as well as the length of time to wait
for a connection request to be acknowledged before assuming the remote system
will not respond.

The routing dialog allows the daemon to control how often retries will
occur and how it should resolve the addresses.  There is always a main
configuration, used by the system as a default.  There is also the possiblity
of specifying exceptions to that default.  This option is useful when you
need to cause contacts within a subnet to go to the computer itself, and
not to send it to a mailhost computer that is acting like a firewall.


Retrying Messages
-----------------

Every so often, you are unable to access a host.  In that case, the messages
will get placed into a retry queue.  This queue is accessed routinely to
check to see if it is time to retry any of the pending messages.  There is
also the option to use the 'Bounce' button or the 'Retry' button.  (The
action of hitting the Retry button is also performed when an item is double-
clicked upon.)  The bounce button will send the message back to the user
with the reason that it got cancelled by the daemon.  The Retry button forces
a retry to occur, if possible, as soon as the daemon can handle the retry.

Using the WRmail.Exe program
----------------------------

The daemon comes with a program called WRmail.  This program allows you to
specify a file to be sent along with user information.  The current command
line is as follows:

wrmail [-r] [-tsubject] [-t"subject text"] [-s {sender}] -f {file}
        {recipient1}... {recipient n}

or

wrmail [-r] [-tsubject] [-t"subject text"] [-s {sender}]
        {recipient1}... {recipient n} < {file}

Objects in braces ( '{' and '}' ) are used to denote objects that are
representations.  For example, {file} would be the name of the file that
you want to send.  Objects in quare brackets ( '[' and ']' ) denote objects
that are optional.

For the optional sender object, if one is not specified, then the WRmail
program will expect the first line to be in the form:

From {name} {date}

From this information, the program will extract the date.

The '-r' options forces the RFC 822 compatibility mode off.  This effectively
treats the input file as encapsulated data, and it will add its own header
information.  For this option, the sender of the file must be specified
separately.

The '-t' option specifies the topic or subject of the message.  This can
only be used in the non-RFC mode.  This enables you to send a file to
someone and specify the subject in the message.

Aliasing
--------

One of the big things that was requested is the ability to tell the daemon
that it is a node other than the one that is listed for it.  To satisfy this
request, there are incoming aliases and a outgoing alias, accessible from the
System dialog.  The multiple incoming aliases should be entered into the
edit field with a semi-colon (:) to separate them and no whitespace in
between.  Similarly, the outgoing alias should not have any whitespace.

Auto-Responders
---------------

There is now a user type called an 'auto-responder'.  This type of user can
be automatically set up to retrive files by e-mail.  This may be used in
place of an FTP site to distribute files to people.  Once you create a user
of the auto-responder type, select the configure button within the User
dialog.  This will bring up the configuration dialog for the auto-responder
in question.  You can then add, modify, and delete files from the list of
available files on that auto-responder.  Please note that the files must
be fetched with the 'tags' that are associated with them in this dialog.

To help with the distribution of binary files, there are three file types:
text, UUencode, and Mime-BinHex.  Currently, the Mime-BinHex is not included,
but will be for the next release.  To use these, you can use the mode modifier
for the fetch command.  Thus, the fetch command is as follows:

send [mode=plain | mode=uuencode | mode=binhex] <file tag>

Multiple lines like this can appear in the body of the message.  Each separate
line will be evaluated separately and a single file will be sent out for each
line, in the specified format.  If not format is specified and it is a text
file, the plain mode will be used.  Evaluation of the lines will stop when
there is a line with a command that the auto-responder does not understand,
or when some other error occurs.

List Server
-----------

The daemon also includes the provisions for a powerful mailing list
maintaining scheme.  By have commands directed at a central point, the
mailing list administrator can mail to a central location and have the
message relayed to all of the people on the list.  This feature is a
user type and can be selected in the User dialog.  When the list is set
up, the configuration for the list and defaults for new users are
selected.

Currently, the only two list options available are whether or not to send
a welcome greeting to a new user and whether or not the given list is a 
closed list.  A closed list allows only those people who are on the
specific list to post message to that list.

When a user joins the list, there are three options that can be set: REPRO,
ACK, and CONCEAL.  In addition, there is the MAIL/NOMAIL option that can
be set once the user joins the list.  The REPROduce option allows the sender
of a message to the list get the submitted message.  The ACKnowledge option
gives a short message saying that the message has been received, active only
when the REPROduce option is not active.  The CONCEAL option allows the user
to be subscribed to a list without being visible to the REVIEW command of
the server (show all of the members).  The MAIL option allows to user to 
specify if they are to get mail directed at the list or not.  All of these
options can be negated by placing the 'NO' prefix before the options.  The
most popular option settings are: REPRO NOACK NOCONCEAL MAIL.

Problems, Bugs, and Comments
----------------------------

Please report and problems and bugs to 'winsmtp@wildside.kwnet.on.ca'.
You help is greatly appreciated and we will fix the bugs and get back to
you as soon as possible.  For problems, we will try to find a solution that
will address your needs.

As to comments, a lot of the things that have been added and changed in the
current version were from people asking about it.  Feel free to ask questions
about SMTP, POP3, daemons, and anything else.  If something is out of the
ballpark for this product, I'll let you know that I condsidered it, and
quite possibly the reasons why the idea was rejected.

Thanks for your support.
Jack De Winter
