                                                         ZeroToaster::MTA v2.51
                                                                   25-Nov-2005
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Table of contents
=================                                                                   
Overview
Requirements
Features
  SMTP (incoming messages)
  FWD (outgoing messages)
  Domain Services
  User Services
  Configuration GUI
Installation
Usage instructions
  0) General Hints
  1) The Startup scripts/batch files
  2) Updating a running installation
  3) Starting the configuration GUI
  4) Dealing with domains
  5) Dealing with users
  6) Dealing with friends and enemies (relay, blacklist)
  7) Fetchmail (POP3)
  8) Bayesian Spamfilter
  9) Mail Hub
 10) AV Scan
 11) Mail Import Interface 
 12) SENDMAIL Compatibility
 13) Other things to explore
 14) Additional configuration
Appendix
  A) Acknowledgments
  B) Copyright, Licence & Support
  C) References
  D) Version history
  E) A word from the team

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                 
Overview
========
ZeroToaster::MTA is a very fast, responsive POP3 and SMTP mailserver with 
superior spam filtering features and all the features an ISP, Small Office/
Home Office (SOHO) or Individual user requires.

Requirements
============
- Java 1.1.8 or later (Java2 is fine)
- Filesystem which allows long filenames
- An operating system with a working TCP/IP stack, eg Windows, OS/2, Linux, Unix
  (Unix works fine but has still status "experimental")
- about 5-8 MB free RAM

Features
========
- RFC compliant POP3 and SMTP implementation
- SMTP AUTH support
- Virtual domain support
- Bayesian Spamfilter
- RBL support for blocking and filtering
- Mailhub client/server ("Poor man's Exchange Server")
- POP3 retrieval from external mailboxes
- Mail import
- SENDMAIL emulation
- Traffic accounting (bytes transferred by Day/Month and User/Domain, internal & relay)
- Configuration through a Java GUI (offering local AND remote administration)
- Server runs as a console application (no GUI needed on the mailserver)
- Configurable notifications to the postmaster 
- Automatic postmaster routing
- All important services are started in advance for faster response 
- Global Postmaster name and address
- All services can be bound to all IP addresses, or a specific IP address
- Individual socket timeouts per service
- Able to query multiple DNS servers for redundancy/reliability
- Able to work without a DNS server
- Small memory footprint
- Installation fits on a floppy disk

  SMTP (incoming messages)
  ------------------------
  - Can enforce limit on number of receivers in RCPT command (reduces spam)
  - Configurable welcome message, one line or multiple lines
  - Configurable relaying by user, domain and network
  - Configurable whitelist and blacklist by user, domain and network
  - ESMTP (enhanced SMTP) support, including EHLO.
  - Domain aliasing
  
  FWD (outgoing messages)
  -----------------------
  - Configurable retries and notifies

  Domain Services
  ---------------
  - Virtual domain support (multiple domains on a single IP)
  - SMTP after POP3 mail relay authentication
  - Domain default delivery ("catch-all" account: Mailmaster)
  - Anti-Virus (AV) scanning with external scanning engines
  - POP3 and SMTP access can be switched off for individual domains
  - Templates for configuration of various services
  - Quota support
  
  User Services
  -------------
  - Bayesian Spamfiltering (heuristic/statistical approach)
  - RBLs can be used in the Bayes filter
  - POP3 and SMTP access can be allowed/denied from multiple netblocks
  - Redirection of incoming messages
  - Able to disable individual accounts
  - Per-user control over SMTP after POP3 access
  - Carbon copy (CC) support (deliver incoming message to additional users)
  - Multiple access levels for remote administration
  - Quota support

  Configuration GUI
  -----------------
  - Fast Java GUI with a small memory footprint
  - Remote servers can be administered as easily as local servers
  - Traffic accounting viewer
  - Secure file manager (download/edit/upload of ZeroToaster files)
  - Easy remote update of the application files 
  - Live server monitoring (runtime, memory, service load and usage)
  - Live logfile monitoring (watch acitivity on your server remotely)
  - Mail viewer 
  - Netmask calculation tool
  
ZeroToaster::MV (POP3 Mailview GUI)
====================================
- Your swiss army knife to examine your spambin and other POP3 mailboxes
- Able to poll every POP3 compliant System
- Multiple POP3 servers can be defined
- Reads only the headers (fetch more lines of message on demand)
- Displays number of waiting messages
- Quick view sorted by UIDL, Envelope-From/To, Header-From/To,
  Subject, Orginating IP (unresolved/resolved) (*1)
- Rename message ("spam false positives") to a different address (*2)
- Easily delete messages on server (3)
- Allows serverside readdressing of misdirected mails
- Clever Message tracking gives you a true "point & delete" feature, only
  selected messages are deleted from server - other clients need to reload
  the whole messagebase for deletion and a 2nd run to refresh the display.
- The "must have" tool for postmasters and spam-contaminated modem users!

(1) Sorting by Envelope-From/To requries matching and processable
    "Envelope-*" lines in the header. Sorting by "Orginating IP" needs ZT 2.30
    and above or any other server which supports the "X-Routed-IP" Header
(2) Needs ZT 2.30 and above or any other server which supports the
    XREN command during the POP3 process
(3) Requires a working UIDL implementation in the server. Most servers do
    this, but you should try it on a test account first.
  
  
ZeroToaster::MTA uses DNSJAVA created by Brian Wellington, http://www.xbill.org/dnsjava/

Installation
============
1) Unpack your distribution file into an empty directory
2) Copy the startup scripts (batch files) for your operating system 
   from "run_*" to the install dir. You may modify this scripts to
   satisfy your needs. (Watch out for "-jver-.cmd or similar)
3) Read and follow the instructions at the start of zerotoaster.ini


Usage instructions
==================

0) General Hints
================
IP addresses are entered in the form "IP:Port" everywhere. If you write "IP"
only, the system assumes the default port for that field. There are
default values for many fields (if the field is left empty).  These
default values are docuemnted beside the field.

You must enter the full email address (user@domain.tld) in your mail
client to fetch mail from this system. This is required to allow 
ZeroToaster::MTA to identify the correct virtual domain.

1) The startup scripts/batch files
==================================
These files end with ".cmd", ".bat" or nothing (depending on your OS).
The following instructions assume ".cmd" which is valid for Windows NT/2000 
and OS/2; substitute the appropriate name for your operating system. You
may have to write your own scripts to get the product running if you're
using an operating system where Zerotoaster::MTA may run but none of us
had tested or used it in depth.

   zerotoaster.cmd
   ---------------
   Starts the MTA

   stop.cmd
   ---------------
   Stops the MTA
   
   config.cmd
   ---------------
   Starts the configuration GUI for editing Domains, Users and others.
   
   restart.cmd
   ---------------
   Forces an internal restart of the MTA. You can use this function
   to ask ZeroToaster::MTA to re-read the zerotoaster.ini configuation
   file.
   
   fullrestart.cmd
   ---------------
   Forces the MTA to shutdown and exit. The zerotoaster.cmd batch will
   check the exit level and restart the software. This function is
   needed to deploy new versions of the server software while
   maintaining your runtime stats (especially the uptime :-)).
   
   sendmail.cmd
   ------------
   This script is for compatibility to UNIX style operating systems where
   a SENDMAIL daemon is needed. Its may also be useful for UNIX software
   ported to a non-UNIX operating system.
      
Most of the batch files create semaphore files to control the server.
You can control how often these semaphore files are checked by setting
the parameter "semaphorecheck" in the zerotoaster.ini file. The default
is 2 seconds.

There are two semaphores available which are useful for 3rd party developers:

 - "cleanup" forces a rescan of all mails and removes mails with
   the "deleted flag". This is also done automatically by the server 
   every hour.
   
 - "rescan" forces a rescan of the server outbox and checking if there
   are any messages to send to the outside. This is also done
   automatically by the server every time a message to be sent
   externally is received.  This can be configured with the "fwd_rescan" 
   parameter in zerotoaster.ini


2) Updating a running installation
==================================
Copy "_zerotoaster.jar" (and _201_util.jar if delivered) into the ZeroToaster 
installation directory and run the "fullrestart" batch file.  After a few 
seconds the server exits and restarts with the new version. You can also do this 
with the GUI by uploading the file(s) with the "Filemanager" function and 
restarting the server with the "Restart Server (complete)" menu in the File menu.


3) Starting the configuration GUI
=================================
The configuration client can be used to control local and remote
server installations.

Run the "config.cmd" batch file to start the GUI. When you use the GUI
for the first time, the client will create a "Remote control" entry
named "--LocalSystem--" with the username/password from from your local
zerotoaster.ini (remote_admin_user, remote_admin_pass).  This entry gives
you Superuser access to this server - so choose a secure (difficult to
guess) username/password combination for these entries.

Remote systems can be controlled by adding a new system in the 
"Remote control" section. Just enter a valid POP3 user with the
POP3 password (or use the user/password combination of the remote's
system zerotoaster.ini). In case of using the POP3 user, the access level is
controlled by the User Level defined in the user configuration.

For remote control, the server socket for remote control must be bound to
an IP visible to the client (not just "localhost").  This is configured
with the parameter "remote_host" in zerotoaster.ini.

After successfully connecting, the status line displays the host, username
and the version of the remote server.

ATTENTION: the versions of the GUI and the remote host must match.  If
they do not match the connection cannot be established properly (it may
appear to work but some things will not function correctly).


4) Dealing with domains
=======================
Make sure that the MX records for the new domain are correct. The primary
MX should point to your machine. Check it with NSLOOKUP.

Goto "Configure" "Domains" and press the "New..." button. 

- Domain name
  Enter the name of your new Domain here. You may using an existing 
  domain as a template by changing the domain name. The new Domain will
  be stored and the old Domain will still exist.
  
- Domain is alias for domain ...
  All incoming mails will be remapped to this domain - except mails for a
  configured user in this Domain. The Domain can be an internal or external 
  Domain. Remapping means, that the "RCTP TO" user gets a new Domain part.

- SMTP after POP3
  Choose if you wish to allow the SMTP after POP3 feature (also known as "POP 
  before SMTP"). If checked, the user can send messages through the mail
  server after polling his POP3 mailbox .  Many mail clients do this
  automatically (download mail first, and then send outgoing messages).
  For best results set the "Session Timeout" value to a higher amount than
  the interval between client mail fetches.  (Eg, set the mail fetches to
  be every 120 seconds, and the "Session Timeout" value to be 180 seconds.)

  HINT: Users whose client's IP address is in the range of allowed
  netblocks are automatically accepted without requiring a POP3
  connection first.  See "Dealing with Users" later.
  
- Catch-All address 
  If filled, ZeroToaster:MTA will accept all messages for this domain and 
  will redirect all messages not to a defined user in the domain to this 
  address. These messages could be typos or misspellings (eg, Vondrak, Vortel, 
  Viplaschil, Voytech, Vozzeck, Vimladil are very hard to spell correctly the 
  first time), or newly invented addresses, or (unfortunately), spam.  If 
  someone in your organisation often invents email addresses for specific 
  events this feature could be very useful for you.

- Memo 
  The "Memo" field may contain details about the owner of the domain and
  is for information purposes only.

- Button "Rename"
  Imagine your customer has a domain "international.de" and heavy traffic. 
  Now he likes to use "international.com" as his main domain. No problem: 
  press "Rename" (in the lower button bar) and enter "international.com" 
  as new domain name. The new domain is an exact copy of the old domain.
  All mails will be moved to the new domain. AND (this is important) 
  "international.de" is a proxy for "international.com" so all mails to 
  the old domain will reach the receivers. You may delete the old domain
  if you're sure that nobody will send mails to there again.
  
The menu "Advanced" contains some settings which are not needed in the
daily work.

- "Advanced/Security"
  Here you can disable POP3 or SMTP for this domain (good for customers who 
  have not paid the latest bill) and you can enable or disable the "AV Scan" 
  (anti virus) feature (see below for details).

  The network filter template is a preset for the POP3/SMTP access control
  feature of each user (see chapter "Dealing with users")
 
- "Advanced/Quotas"
  You have 3 different configuration options:
  
  "Days": Mails older than x days will be deleted on the server. Deletion 
  is done during the usual cleanup or when pressing "Start cleanup" in the 
  Mail manager. WARNING: Take care that this does not delete too soon in 
  cases when people are on long holidays or if you set the server clock to 
  a date in the future!
  
  "MB on server": Each user of this domain can store x MB of mail-data before 
  new incoming mails are rejected with "550 Quota exceeded".

  "Mails on server": Each user of this domain can keep x mails before new 
  incoming mails are rejected with "550 Quota exceeded".
  
  This are the domain defaults. User specific quota settings can be done on
  user level.

- "Advanced/Mail hub"
  The "Mailhub/client" feature is a distributed architecture where the 
  server resides on a leased line with a fixed IP, and the Mailhub
  clients do not have a permanent connection to the Internet (or do not
  have a fixed IP address). Messages for the Mailhub clients are sent
  to the Mailhub server, and then the Mailhub client downloads the
  messages (for the whole domain) from the Mailhub server. This is
  useful for small offices that cannot afford a permanent connection to
  the Internet, but still send a lot of internal messages.
  The mailhub is described further below.


5) Dealing with users
=====================
To create a new user select the appropriate domain and press "New...". You
may use an existing user as a template by changing the user name.

Enter the username and the password. Both fields are required.

- Redirect incoming mails to 
If this account is only an administrative account like "info@yourdomain.tld" 
you can redirect incoming mails to a different account like "boss@yourdomain.tld".
The target of the redirection can be redirected too (Max 5 times).

- Memo
The "Memo" field may contain information about the user for the
administrators use (eg, identifying what the user account is used for).

The box "User info" shows you the last time a user accessed this mailbox.

The menu "Advanced" contains some settings which are not needed in the daily
work. 

- "Advanced/Bayesian Spamfilter"
  A spam filter with a statistical approach. This is discussed further below.

- "Advanced/Security"
  Here you can temporarily disable an account, and change the "SMTP after 
  POP3" settings (instead of using the domain's default). You can also 
  restrict POP3 and SMTP access to a list of networks. If you wish to force 
  your employees to use their accounts in the office only, enter the netblock 
  of your office network in the domain configuration and leave the setting to 
  "Use netblock(s) from domain". 
  
  "Allow XREN in POP3" allows/disallows the usage of the ZT proprietary 
  XREN command which allows the readdressing of a message during a POP3 
  session (this is used by the Mailview client).
  
  HINT: If the client's IP address is in the range of the allowed netblocks
  the SMTP after POP3 authentification is not used (the user is 
  authentificated by his IP address instead).
  
- "Advanced/Mail copy"
  Enter up to 10 email addresses to receive a copy of incoming messages
  to this user. A typical case: copy messages to "info@yourdomain.tld" to 
  "coworker@yourdomain.tld" and "bigboss@yourdomain.tld".
  
- "Advanced/User level"
  Here you can define what a user can do (and can not do) when using the remote
  control GUI. The user must logon with his POP3 user name and password.

- "Advanced/Quota"
  "No quoata": No quota processing for this user.
  "Use domain defaults": This is the default for all users. 
  "Individual setting": Use the settings on the right for this user.

  See "Advanced/Quota" in section "Dealing with domains" for an explanation
  of the quota values.
  
A word about the Postmaster: according to RFC2142 and other RFCs, each host 
and domain must have a Postmaster role account. If you don't create a
Postmaster user in your domain, all mails to <postmaster@yourdomain.tld>
and <postmaster> are remapped to the email address given in zerotoaster.ini 
(postmaster_address).
  

6) Dealing with friends and enemies (relay, blacklist)
======================================================
Each incoming mail can be filtered against the lists you can define under
"Configure/Filters". We will discuss typical cases here.

  Acting as a relay host
  ----------------------
  Means: you are backup MX or you allow several users or domains to send 
  their mails through your system. Enter a name for this filter and select 
  "Relay configuration" in the choice box. 
  * To allow relaying for a special user, enter the email address into 
    the field below (john@doe.com). 
  * For relaying a whole domain, enter only the domain part (doe.com).
  * Acting as backup-MX for another server is quite easy: enter the start-IP
    and the netmask of the server to backup. ZeroToaster::MTA will resolve 
    the primary MX by doing a DNS call and check, if the MX is in the range 
    of this netblock. So you do not have to continually add and remove
    domains as the other site changes their domains.
  
  Check the "AV Scan relay mail" if you wish to scan passthrough relay mail
  for viruses.
  
  HINT: the detected type of filter (by user, domain or netblock) is displayed
        below the input field.
    
  Blocking incoming systems, users or domains
  -------------------------------------------
  Sometimes there is a need to block specific senders, domains or whole
  netblocks.
  * To block messages from a specific user, enter the email address into
    the field under the choice box (evil_user@domain.tld)
  * To block messages from a whole domain, enter only the domain part
    (evildomain.com)
  * To block messages from a whole netblock, enter the IP and the netmask.
    ATTENTION: when a message is rejected by a netblock blacklist, most 
    spammers will re-send the mail over one of your backup MX systems. In
    this case, the message will be delivered. You may wish to synchronize your
    blacklists with your backup systems from time to time.
  
  Whitelists
  ----------
  This is not implemented yet.
  
  Summary  
  -------
  Relay: checks against "mail to" (user, domain, network by MX)
  Blacklist: checks against "mail from" (user, domain, network)
  Whitelist: currently not used


7) Fetchmail (POP3)
===================
If you have accounts outside your server installation which are
"read-only" (for example old freemail accounts), you can fetch the
mails from this systems by using the "Fetchmail" feature. Press the
"New.." button or use an existing account by overwriting the "Fetch user"
field. "From Host:IP" contains a valid hostname (mail.somedomain.tld)
or an IP to download from. If you leave this field empty, the primary MX
of the domain will be fetched (works in most cases).  You must supply
a password and the destination email address to send the retrieved
mail. This address may be outside your system.  Enter a poll frequency
(in seconds) or "0" to temporary disable fetching. 1200 seconds (20
minutes) or higher is a good value for less frequently used accounts.
Incoming mails will be virus scanned if the target domain has AV enabled.


8) Bayesian Spamfilter
======================
We are one of the pioneers using a statistical word approach for identifying 
spam messages since 1998.

The "Bayesian filtering" works like this: Each word typical for a spam message
will get a statistical probability between 100% for "Yes, this is truely spam" 
and 0% for "No, this word will never be in a spam message". The common user
will never receive a mail which contains "viagra" so we can set the 
probability for this to "100%". If your name is "Fred" you can enter this
word with a probability of "0%" to let all mails with your name pass through.

Other words, other values. The decision if a mail is spam or not will be done
by the "combined probability". 

Example: always repeating messages for vitamines contains the words 
"immediately", "improve", "instantly", "diets". 

We set this probabilities:

immediately = 75% (we never do such things !)
improve     = 57% (improving is ok but also very common in such spam mails)
instantly   = 65% (sure, we love imperatives)
diets       = 60% (my friend Carl is doing such things all the time)

Combined probability: 92%. Hmm, not very clear.  But most of the messages
are containing the usual "unsubscribe" and "click" as well. 

We add this to the list:

unsubscribe = 60% (also common for mailinglists)
click       = 60% ("click" is also in many "look at this" from friends)

Now we have a combined probability of 96% which should be clear enough
for a filter.

Lets have some fun. In the box "Action" we set this:
    
  Probability > [  95]% ( ) Delete  (*) Move  ( ) Mark
  Probability > [  85]% ( ) Delete  ( ) Move  (*) Mark
  --------------------------------------------------
  E-Mail (move) [spambin@somedomain.tld] Marker: [** SPAM **]
  
Which means: 

- all mails with a probability > 95% are moved to the email address 
"spambin@somedomain.tld" (which is checked by visually scanning the 
from/to/subjects from time to time and delete them without downloading the 
whole messages).

- all mails with a probability > 85% are marked with "** SPAM **" in the
  subject.

To show why a mail was declared as spam or what the probabilities are, extra
headers are added with details of the spam filtering and the result. You
have to use the "Display message header" function of your mail reader. The
header may look like this:

X-Bayesian-Filter Spam Probability 100%
X-Bayesian-Filter Word  60%   1 unsubscribe
X-Bayesian-Filter Word  60%   1 click
X-Bayesian-Filter Word  55%  48 font

You should define at least the name of your friends and mailinglists with
a low probability (<25%) to avoid false alerts.

The client GUI has a textfield in the lower left corner where you can
copy your spam in and test it against your current configuration, to let 
you finetune your filters. WARNING: if you're doing this with a remote host,
be patient because it may take several seconds until the result is back.

The filter keeps some statistics about the usage of each word. You can
examine these values in the upper right corner.

In the upper left area there is an input field where you can enter an email
address from where to use the filter configuration.

The "Export template" and "Import template" allows you to share your filters
with your friends.

HINT: Words are tokenized (separated) by these delimiters:
      <>.,;:!=()?!" SPACE, CR, LF, TAB
      You can filter on wordgroups too, in this case enclose the text
      in double quotes like "word group"

- Advanced / RBL Support
  Here you can add RBLs to query. The Bayesian RBL Filter will trace the
  Header of the mail to detect the host where the message was injected. This
  trace is needed because a mail can be POP3 fetched or delivered by your
  backup MX. See secetion [RBL] in zerotoaster.ini for more information on
  RBLs. The probability value here will be used like the "word probability"
  value in the main Bayesian Filter.


9) Mail Hub
===========
Your customer hired you and your server to transport all their emails
because they have only a dial-up account by the local telco. They have
about 25 workstations in the office running and three travelling salesmen
outside who are fetching their email from home or the hotel.  This is
your opportunity.

With the mailhub feature you can split your server into two parts:
- the MailHub Server itself running on your server
- the MailHub Client running on a machine in the customer's office

The accounts of the salesmen are defined on your server, everything else
is done in the office of the customer.

Advantages:
- all internal messages the employees are sending from workstation to 
  workstation never leave the office because they are handled
  by the MailHub client locally (so the messages are delivered faster,
  and more securely)
- all external mail to the outside of the office is sent through your
  server (many servers block messages directly from machines on dial ups)
- the customer can manage his accounts locally

How can you set this up ?

Goto "Domain configuration", "Advanced/Mail Hub". Click "Server" and
enter a password (should be a well chosen, secure (long) one). Now all
messages for this domain where no local user exists are stored in a
different way waiting for the MailHub client to fetch them.

Then install ZeroToaster::MTA on a machine in the customer's office. Create
the domain, the users and maybe an account to handle the messages to unknown
users ("Mailmaster account"). No need for a postmaster here because this 
account will reside on the server in every case. Goto "Advanced/Mail Hub",
click "Client" and enter the same password you defined on the server side.

Enter the host or IP (or leave it blank to poll the primary MX of the 
domain - that's usually you) and a poll frequency (in seconds). Make sure
that "Use current connection (Passive mode)" is checked, the other values
are for 3rd party developers only.

How does it work / what will happen now ?

The MailHub Server will keep all messages for the client. The MailHub Client
will query the server from time to time and exchange incoming and outgoing
mails with the server.

Why not use the ETRN command? Why a new protocol ?

Because we're lazy - ETRN needs a lot of additional programming and does not
allow "true" dataexchange. ZeroToaster::MTA simply reuses its internal
infrastructure by a simple "hand over" of the existing connection so the
FWD agent is talking with the SMTP process of the other side and vice versa.
No double programming, no double errors. Easy, eh?


10) AV Scan
===========
When enabled ("Configure/Domain", "Advanced/Security" or
"Configure/Filters" in the relay configuration), ZeroToaster::MTA will
scan all messages for attachments, decode them and store the attachments
in a temporary directory. Then a command line driven anti-virus scanner
can be run automatically to check these messages for viruses.  Currently
only Norman AV and Sophos AV is supported but we can produce interfaces to
other scanners too.

Just remove the "!" comments from each line in avscan.ini and edit avscan.cmd.
The batch file will get the path to the temporary directory as first argument.

11) Mail Import Interface
====================================
We created a mail import interface for your convience. Just put a RFC2822 /
RFC821 compatible file into the import directory, it will be imported with 
the next scan. A RFC2822 compatible file looks basically like this (without 
the dash line at the beginning and the end):

-----------------------------------------------------------
From: "From Username" <from@somedomain.tld>
To: "To Username" <to@somedomain.tld>,
    "Another Username" <another@somedomain.tld>
Subject: This is a test

This is a test message.
.
-----------------------------------------------------------

Means: Header with "From:" / "To:" / "Subject:", an empty line, the message
body and a single dot at the end (you may leave out the dot at the end).

The import interface recognizes the following keywords as sender address
(case insensitive) "From:" "X-Envelope-From:" (the last keyword counts)

The following keywords are recognized as receiver address, case insensitive:
"To:" "Cc:" "Bcc:" "X-Envelope-To:" "X-Delivered-To:". BCC Receivers are
filtered out during the import process.

There are special control tokens used internally by the SENDMAIL interface
and listed here for completeness:

SND-Recipients: receiver receiver receiver ...
-> Set the recipients to this address(es) and ignore the To/CC/Bcc/X-... headers

SND-Sender: sender-address
-> Set the sender to this address and ignore the From:/X-Envelope-From: headers

Sender and receiver addresses are expanded against the ALIAS list in
zerotoaster.ini


12) SENDMAIL Compatibility
==========================
The SENDMAIL compatibility is done by a batch SENDMAIL.CMD/.BAT. Edit this
Batch so zerotoaster.jar and 201_util.jar are prefixed by an absolute path.
You may have to add an absolute path to the JRE/JAVA interpreter too. Then
put this script to the directory where SENDMAIL is expected. The original
SENDMAIL must be moved out of the way (or change the symbolic link)

The SENDMAIL capability understand this parameters:

-h -? -impDIR -t -fNAME recipient1 recipient2

-h and -? are listing the command line options

-impDIR (like -impC:\ZEROTOASTER\IMPORT or -imp/root/zt/import) is the
 directory where Zerotoaster::MTA waits for mails to import
 
-t forces SENDMAIL to read the sender and the recipients from the E-Mail
 (see description for the import functionality). This is for SENDMAIL
 compatibility only because its default.
 
-fNAME (like -fSOMEUSER@SOMEDOMAIN.TLD or -froot or -fuser@domain.tld)
 overrides the envelope-from (which is created from the mail header
 otherwise)
 
recipient1 recipient2 ... recipientX creates a new recipient list for 
 this mail (which is created from the mail header otherwise)


13) Other things to explore
============================
The "Tools" menu contains interfaces to the Accounting, a small Filemanager,
a Server Monitor, a Mailviewer and a small calculator for netmasks.

- Accounting
  Total bytes sent and received (by domain and user). The field "Type"
  shows you if the traffic was "R"elay or "I"nternal traffic. All data is
  stored as a CSV (comma separated values) file in the "accounting" directory
  on the server so you can use Excel or OpenOffice/StarOffce for further
  examinations.

- Filemanager
  The filemanger can be used to deploy updates. Just upload the new 
  "_zerotoaster.jar" into the root directory of ZeroToaster and click 
  "File / Restart Server (complete)" in the main window.

  You can also edit the zerotoaster.ini here or download logfiles. All file
  transfers are compressed so don't panic about big logfiles.

  ATTENTION: avoid editing files > 500kb in the internal editor. It works but
  cleaning memory takes long and there are Java versions with a serious memory
  leak in this area which may break your current session.
  
- Server Monitor
  The server monitor shows you an online view of your server (logfile, memory,
  session and so on). You can configure the logfile output with the menu
  "File/Setup". Some users sit for hours in front of this screen watching
  the server earning money for them...

- Mail Viewer
  Allows examination of mail storage with some control capabilities
  
- Netmask calculator
  Enter the first IP of your network and the number of IPs your network 
  covers or the last IP of the network and you get the netmask as a result.
  Useful for the various filters in ZeroToaster::MTA

- ZeroToaster MailViewer
  This is a GUI which can be used to explore your spambin folder or any
  other POP3 account. It reads only the headers (body can be retrieved
  on demand) and doesn't do any interpretation of the content (so it is a safe
  application for any content). Retrieved headers can be sorted in many
  ways, redirection of a message is possible with the XREN extension enabled
  for this account.

14) Additional configuration  
============================

Motto of the day (MOTD)
  You may create a file named "motd.txt" in the Zerotoaster installation
  directory. The content of this file (multiline) is displayed during the
  SMTP login procedure.

Running as NT Service
  Check directory \run_w2k\goodies


Appendix
========  

A) Acknowledgments
==================

The authors of ZeroToaster::MTA like to acknowledge the help and support of:

- The usual gang of idiots at 20/1 GmbH
  They spent a lot of time and money on this product.

- Daniel Weber (http://www.dynfx.de)
  DynFX wrote and supports its own mailserver (DynFX MailServer 2.2 for 
  Windows). Daniel helped us in many ways - thank you !

- Ewen McNeill at Naos Ltd (http://www.naos.co.nz)
  It is impossible to count all the ways where Ewen helped us or gave us
  a pointer to the right solution.

- Bent Nielsen (http://www.box2000.dk)
  Bent takes care of usability of the product and is the 'final instance' 
  before releasing a new version into the public. One of the best betatesters
  we know.
  
- Silvan Scherrer of Aroa AG, Switzerland (http://www.aroa.ch)
  Many suggestions and tests.
  
- Jan Eri of protector.no
  Helped us to test UNIX compatibility
  
- Carolyn Hacker
  For moral support and proofreading the manual and the comments in the
  various .ini files.

B) Copyright, Licence & Support
===============================
ZeroToaster
(c) 1999-2002 Bernd Hohmann, Organisation & Programmierung, DE 61130 Nidderau
(c) 2003-2005 20/1 Informationssysteme GmbH, Lerchenweg 29, DE 61130 Nidderau
Tel: +49-(0)6187/900495, Fax: +49-(0)6187/900493, info(@)zwanzigeins.de

The Product is provided "as-is", without warranty of any kind, either
expressed or implied, including, but not limited to, the implied warranties
of merchantability and fitness for a particular purpose. The entire risk as
to determining the suitability, quality and performance of the Product is
with you.

For 12 months following your purchase you will receive free priority
support, and be entitled to install all versions released during those
12 months.

After the end of the 12 months you can continue using the version you
have installed, but will not be eligible to install new releases or
receive priority support unless you purchase a new version.

Priority support can be had from support(@)zwanzigeins.de
Unregistered users may subscribe to your internal mailinglist. 
See http://www.zerotoaster.net for details.


C) References  
=============
 * RFC821  http://www.faqs.org/rfcs/rfc821.html (SMTP)
 * RFC1081 http://www.faqs.org/rfcs/rfc1081.html (POP3)
 * RFC1869 http://www.faqs.org/rfcs/rfc1869.html (EHLO)
 * RFC2142 http://www.faqs.org/rfcs/rfc2142.html (MAILBOX NAMES FOR COMMON SERVICES, ROLES AND FUNCTIONS)

 
D) Version history
==================
Please read "changelog.txt" in the DOCS directory

E) A word from the team
=======================
Swim swim hungry
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW..;;;;;.WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW.;;;;;;;WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW;;;;;;;;;WWWWWWWWWWWWWWWWWWWWWW..WWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW.;;;;;;;;.WWWWWWWWWWWWWWWWWWWWWWW..;;.WWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWW...;;;.......;;..WWWWWWWWWWWWWWWWWWWWWWWW.;;..WWWWWWWWW
WWWWWWWWWWWWWWWWWWW...;;;;;;;;;;;;;;;;;;;;;;..WWWWWWWWWWWWWWWWWWWW.;;;.WWWWWWWW
WWWWWWWWWWWWWWWWW.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..WWWWWWWWWWWWWWWWW.;;;;..WWWWWW
WWWWWWWWWWWWWW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.WWWWWWWWWWWWWW.;;;;;..WWWWW
WWWWWWWWWWWW.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.WWWWWWWWWWWW.;;;;;;..WWWW
WWWWWWWWWW....;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.WWWWWWWWWW.;;;;;;;;..WWW
WWWWWWWW.WWW..WWWWV..;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+..WWWWWWW.;;;;;;;;;..WWW
WWWWWW.WWWWWWWWWWWWWWWW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..WWWW.;;;;;;;;;;;..WWW
WWWWW.VW......WWWWWWWWW.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....;;;;;;;;;;;..WWWW
WWWWW.WW......WWWWWWWWWW.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..WWWWW
WWWWW..WWW.....WWWWWWWWV.;;;;;;...;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..WWWWWWWW
WWWWW.;.W.WWWWWWWWWWWWW.;;;;;;;;..;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.WWWWWWWW
WWWWW...;.VW..WWWWWWWW.;..;;;;;;..;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..WWWWWW
WWWWWW......;;;......;;;;;;..;;;..;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..WWWWW
WWWWWW.WW.VV...............;;;;;..;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..WWWW
WWWWWW.WW.WWWWV.;;;;;;.;....;;;...;;;;;;;;;;;;;;;;;;;;;;;;....;;;;;;;;;;;..WWWW
WWWWWW.WW.WWWWV....;;;;;;;..;;;..;;;;;;;;;;;;;;;;;;;;;;;..WWWW..;;;;;;;;;..WWWW
WWWWWW.WW.WWWWV.;;;;;;.;;;;.;;;;;;;;;;;;;;;;;;;;;..;;....WWWWWW..;;;;;;;;..WWWW
WWWWWW.WW.WWWWV.....;;;;;;;;;;;;;;;;;;;;;;;;;.;;;;....WWWWWWWWWWW.;;;;;;..WWWWW
WWWWWW.WW.WWWWV.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.;;.....WWWWWWWWWWWW.;;;;;;..WWWWW
WWWWWW....WWWWV..;;;;;;;.;;;;;;;;;;;;;;;;;;;;......WWWWWWWWWWWWWW.;;;;;..WWWWWW
WWWWWWWWWW...WV.WW......+;;;;;;;;;;;;;;;;;;;;;...WWWWWWWWWWWWWWW.;;;;;;.WWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWW..;;;;;;;;;;;;;;;;;...WWWWWWWWWWWWWWWWWW.;;;..WWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWW..;;;;;;;;;...WWWWWWWWWWWWWWWWWWWWWW.;;.WWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
[EOT]

