ReadMe File for WinSmtp Shareware Release 1.04
-----------------------------------------

WinSmtp is Copyright 1994, 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.  At
some point in the future, I will probably get a full Internet IP feed,
at which time I will provide the WWW page on my own computer.  But that
may take some time, so please be patient.  The WWW pages are:

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

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


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 1123        - Requirements for Internet Hosts
RFC 1460        - POP3 (except for the APOP command)

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
- 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:
- mailing lists
- forwarding of mail to an outside address
- auto-responding mail addresses (set up to mail a given file to the sender
  of the message), with ability to pull information out of Subject or body
- support for the MAPI protocol
- support for the ESMTP extensions

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] [-s {sender}] -f {file} {recipient1}... {recipient n}

or

wrmail [-r] [-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.


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
