Mail Server for NT - Version 2.05 & 2.06

This software may be found on the index page. This page displays all the features of NTMAIL and gives an overview of the six programs that make up this distribution. Installation Instructions are on another page. The original documentation for versions 1.00, 2.00, 2.01 and 2.02 are still available. We have a page about registration details and the shareware key. A cumulative list of changes is also available.

1.0 Introduction

This set of programs were originally written to carry out the mail needs of Internet Shopper Ltd. They have been consolidated and the range of functions expanded to cover other setups as people have requested them. The mail servers will now work in the following senarios: We are improving the software all the time and adding new utilities to improve the range of facilities available. See our
mail development page for a summary of current developments. This page also includes any features requested by users - if something you want is not there, please email us.

Internet Shopper will be providing all documentation on line in a form that can be read by WWW browsers. This way we can keep the documentation up to date and improve any points that are not clear. If you find any points unclear please email us and we will try to clarify the issue.

1.1 Features

1.1.1 Features of NTMAIL

This is a full list of features for the mail servers and the associated programs.

1.1.2 50+ User Version Additional Features

Note: We are currently working on creating a new user privilidge which will be "Mail User" to allow only the minimum privilidges to be given to a user rather than a more generic "Logon" privilidge.

1.1.3 List server

The list server is an additional option to NTMAIL and not part of the basic package.

1.2 Requirements

NTMAIL has the following requirements:

1.3 Release Policy

The current version can be found with all our
other software. This code is the latest code with all features listed above. However, you will need to get a key. The key is used to allow features and set the maximum number of users of the mail server. The key has a special page all to itself.

To continue using the software once the key has expired you will have two options

When the key expires you will not be left with a completely un-working system. The mail server will continue to accept mail from outside your domain but will not allow any internal mail, POP accounts or POST to work.

1.4 Support

In the first instace, please look at our
"solutions" page which has answers to commonly asked questions. If you don't see the solution to the problem you are having, please email ntmail@net-shopper.co.uk with as much detail as possible.

When you register we will provide you with a key that will not expire, e-mail support and details of all new releases of the software as features are added. In addition the requests of registered users for new features will achieve the most attention.

1.5 In the Pipeline

The mail server software will continually be developed. Currently the following major additions are being written: Further development of this software will be taking place. To see the latest suggestions, please check out our development page. If you wish to see other things added to the software, please check here first and if you still don't see your idea, please let us know.

1.6 Copyright and Legal Stuff

Internet Shopper Ltd retain the copyright on all the code and documentation supplied. We are open to ideas about enhancements to the product. Money is an inducement to getting options added but if you could add another 3 days to the week that would be even better! All software is provided on an "asis" basis and with no warranty implied (for software or spelling mistakes).

2. The Programs

This section details about what the servers are and what they do.

2.1 SMTP Service

This is the most complicated part of the set of mail servers. This service waits for incoming mail from any source. It checks the mail as it comes in to work out whether it is mail for a local or remote destination. Once the mail has been received, it will be written to either a local mail box or re-send queue. SMTP can be configured to accept any mail for the local domain and place it into a specific local mailbox. This is useful if you simply want to accept any mail arriving at your machine.

The SMTP Service can handle an indefiniate number of mail boxes with up to 30 aliases each. This means you could set up a mail box for "david" which will receive mail to "dave" or "david". It can also handle an indefinate number of "receivers" of the same mail message (e.g. when you select multiple receipients of the same mail message or Carbon Copies in your mail client). In this case the mail message is broken up into lots of individual mail messages then each message is treated individually.

There are two optional commands which have been implemented, VRFY will succeed if the following address is local and EXPN will expand mail lists (when they have passed test).

SMTP can log the source, destination and size of all mail messages it handles. This can be useful for spotting unusually high use of the mail service by individuals within an organisation.

The Service is multi-threaded. This means that the service can handle multiple connections from other mail servers at the same time and distribute the messages correctly. The number of threads is configurable although we have only five. The SMTP service also provides all the list server functionality. You may set up a "list manager" which will accept the JOIN, LEAVE and HELP commands. The list manager may control one or more lists. When a user mails a list, the mail is duplicated and forwarded to every member of the list. The people who can join and post to a list may be resitricted or left open. This allows several different types of lists to be created:

2.2 POP Service

The Post Office Protocol Server will accept connections from all remote clients and then insist on username and password being correct before details of mail are released. Each time a username and password are incorrect the details are logged. Note that two users with different usernames and passwords may have access to the same mail box (if that's how you want to set it up).

On successful connection the entire mail box is read and re-written after the POP Server has finished with it. While the mail box is held for reading, no mail can be accepted for the user (but it will not be lost since the sending post will try again later).

The POP Server is multi-threaded. This means that more than one client can access the mail at the same time. The number of threads required is surprisingly small since most clients take about 0.5 seconds to check the mailbox and only do it every (say) 10 minutes then potentially you could have 10*60*2 = 1200 clients using only one POP thread. Obviously you are going to run into problems at that point especially if you have some clients on a slower network connection (e.g. PPP or SLIP). Therefore we suggest five threads and if you have complaints, simply increase the number!

2.3 POST Service

The post daemon handles all out going mail. It checks the directory for messages that have yet to be sent, reads the destination of the mail and then attempts to connect to the destination mail server. If it fails, it will try the gateway. Once a connection has been made the mail will be sent onbound. Any error after the connection has been made (e.g. User unknown) will cause the message to be re-routed back to the message source with the error message inserted to inform the sender of the mail. (If this has already happened, we have infinitly bouncing mail, so the POST services will re-route the mail to the root account).

The post daemon can be configured to attempt to send mail on any (or none) of the following events:

We recommend having the Timed option set to (say) 9 minutes.

POST is multi-threaded and the most difficult to configure regarding the optimum number of threads. The optimum number of threads depends upon your link to your outbound mail server. If you have a low speed link (e.g. 64Kbaud) you will need to have fewer threads because you may have a couple of large mail messages waiting and each will time out. If there is no link restriction - this is not a problem! We recommend three POST threads for a 64Kbaud line and five otherwise.

2.4 LOADMAIL Utility

This is a program that will read a script and load the contents into the Mail's registry entries. The script will need to have the following format: mailbox username password aliases This program will check each entry and, if valid, add a record to the registry for that person. Note that if there we any previous entries in the registry, they will be destroyed.

2.5 KICKPOST program

This program will tell the post service to attempt to send any mail that is waiting in the mail directory. The program returns immediatley POST has been kicked. This is designed to be used in a batch file for
remote connection to the internet provider. KICKPOST will wait five seconds before kicking the POST service so that if any communications protocol still needs to be eastablished, it will not cause the POST to fail because there is no connection.

2.6 WAITPOST program

This program will wait for POST to finish sending all outbound mail and for SMTP to complete receiving all inbound mail. It will check for mail transfers every 30 seconds and terminate as soon as no mail transfers are taking place. This is designed to be used in a batch file for
remote connection to the internet provider. WAITPOST will always wait for 30 seconds before checking on SMTP and POST so that if any communications protocol still needs to be established, it will not time out too early.
webmaster@net-shopper.co.uk (12th March 1995)