@database smail.guide

@Master smail.texi

@Width 72


This is the AmigaGuide® file smail.guide, produced by Makeinfo-1.55 from 
the input file smail.texi.


@Node Main "smail.guide"
@Next "Features"

@{b}AmigaSMail@{ub}:  A Sendmail Replacement
***********************************

This is Edition 1.0, April 1994, of `The @{b}AmigaSMail@{ub} Guide', for
@{b}AmigaSMail@{ub} Version 3.0

                          @{i}Attention@{ui}

If you are updating from earlier versions of @{b}AmigaSMail@{ub} see @{"Updating" Link "Updating"} and @{"History" Link "History"}


 @{" Features " Link "Features"} 
 @{" Introduction " Link "Introduction"} 
 @{" Installation " Link "Installation"} 
 @{" Usage " Link "Usage"} 
 @{" Address " Link "Address"} 
 @{" Miscellaneous " Link "Miscellaneous"} 
 @{" Aliases " Link "Aliases"} 
 @{" Wish List " Link "Wish List"} 
 @{" Source Files " Link "Source Files"} 
 @{" Trouble shooting " Link "Trouble shooting"} 
 @{" Updating " Link "Updating"} 
 @{" History " Link "History"} 
 @{" Index " Link "Index"} 

Thanks to my betatesters:

   @{b}*@{ub} Carlos Amezaga

   @{b}*@{ub} Erik Kunze

   @{b}*@{ub} Peter Simons

   @{b}*@{ub} Michael 'Mick' Hohmann

   @{b}*@{ub} Frank Bergknecht

   @{b}*@{ub} Hans Maurer

   @{b}*@{ub} ...

     And to everyone who helps me to develop @{b}AmigaSMail@{ub} !


@EndNode

@Node "Features" "smail.guide/Features"
@Next "Introduction"
@Prev "Main"
@Toc "Main"

Features
********

   · complete substitution for AmigaUUCP sendmail

   · using paths file for mail routing

   · re-routing of addresses according to the path-file

   · mail forwarding for users (~/.forward and uumail:<user> syntax)

   · compatible parameters and aliases with AmigaUUCP sendmail

   · Return-Receipt-To recognition

   · returning undeliverable mails to sender and postmaster of your
     host

   · support of the Getty, MultiUserFileSystem, AmiTCP and AXSh passwd
     files

   · smarthost option

   · domain gateway support

   · easy setup of a mailing list via alias include files

   · extended log files

   · accepts the following addresses (1)

    @{b} @target,remainder@{ub}
          RFC route from route-addr

    @{b} @target:remainder@{ub}
          RFC end-route from route-addr

    @{b}remainder@target@{ub}
          domain address

    @{b}target!remainder@{ub}
          UUCP bang-route

    @{b}target::remainder@{ub}
          DECnet route

    @{b}target:remainder@{ub}
          obsolete BERKEnet

    @{b}remainder%target@{ub}
          obsolete mailbox hack

   · provide BSMTP support (2)

   · provide SMTP support with AmiTCP V3.x (3)

   · call uux for UUCP transport (instead of writing directly in
     uuspool)

   · Checking local users permission to send mail via UUCP/BSMTP/SMTP

   · Sysfile to define transport (UUCP/BSMTP/SMTP) for each host

   · source files available (organized with RCS) (4)

   · docs in AmigaGuide/DVI format

   · Installer script

   · only runs with OS2.0 or higher

   · use the netsupport.library

   · use GDBM (5) routines

   · support of AmigaUUCP and wUUCP

   · have a own mailing list for help (6)

---------- Footnotes ----------

(1)  using the Unix Smail 3.1.28 address routines

(2)  Batch Simple Mail Transport Protocol

(3)  Simple Mail Transport Protocol

(4)  Revision Control System

(5)  GNU's database routines

(6)  send a mail to listserv@mavhh.hanse.de with @{b}add smail-info@{ub} in mail
body


@EndNode

@Node "Introduction" "smail.guide/Introduction"
@Next "Installation"
@Prev "Features"
@Toc "Main"

Introduction
************

@{b}AmigaSMail@{ub}    program   replaces   the   standard   sendmail (1) to
become the UUCP/BSMTP/SMTP mail transport mechanism.

The intentions to write a sendmail replacement were the following:

   · write a easy to use (for leaf sites) but fully functional program
     (for big mail feeds).

   · support the available UUCP systems

   · make the source files available to give everyone the chance to
     customize @{b}AmigaSMail@{ub} to his wishes

   · be more functional than the other mailers

There exists four different versions of @{b}AmigaSMail@{ub}, because AmigaOS
have no interface for user accounting.

@{b}AmigaSMail@{ub} uses the netsupport.library because this is a standard
interface for

   · get config entries from @{b}uulib:config@{ub}

   · write log messages into @{b}uuspool:logfile@{ub}

   · lock files for exclusive access

Hopefully more programmers of UUCP related programs will support the
netsupport.library !!!

---------- Footnotes ----------

(1)  e.g.  AmigaUUCP or @{i}wusel@{ui} sendmail programs


@EndNode

@Node "Installation" "smail.guide/Installation"
@Next "Usage"
@Prev "Introduction"
@Toc "Main"

Installation
************

            @{i}Please FIRST try the installer script@{ui}

This  script  makes  the  installation  of  @{b}AmigaSMail@{ub} muchmore easier
to you !


 @{" Do it yourself " Link "Do it yourself"} 
 @{" Different SendMail programs " Link "Different SendMail programs"} 
 @{" Setup a path-file " Link "Setup a path-file"} 
 @{" Setup a sys-file " Link "Setup a sys-file"} 
 @{" Without path-sys-file " Link "Without path-sys-file"} 
 @{" BSMTP setup " Link "BSMTP setup"} 
 @{" SMTP setup " Link "SMTP setup"} 
 @{" Config options " Link "Config options"} 
 @{" Netsupport.library " Link "Netsupport.library"} 
 @{" Timezones " Link "Timezones"} 


@EndNode

@Node "Do it yourself" "smail.guide/Do it yourself"
@Next "Different SendMail programs"
@Toc "Installation"

Do it yourself
==============

  1. Copy

     for the Getty version

          SMail       ==>  uucp:c/sendmail
          SMail       ==>  uucp:c/rmail
          mail        ==>  uucp:c/mail
          send_uucp   ==>  uucp:c/send_uucp

     or for the AXSh version

          SMail_axsh       ==>  uucp:c/sendmail
          SMail_axsh       ==>  uucp:c/rmail
          mail_axsh        ==>  uucp:c/mail
          send_uucp        ==>  uucp:c/send_uucp

     or for the MUFS version

          SMail_mufs       ==>  uucp:c/sendmail
          SMail_mufs       ==>  uucp:c/rmail
          mail_mufs        ==>  uucp:c/mail
          send_uucp        ==>  uucp:c/send_uucp

     or for the AmiTCP version

          SMail_amitcp     ==>  uucp:c/sendmail
          SMail_amitcp     ==>  uucp:c/rmail
          mail_amitcp      ==>  uucp:c/mail
          send_uucp        ==>  uucp:c/send_uucp

  2. Make a directory @{b}Mail@{ub} in @{b}uulib:@{ub}

  3. Edit the Config options (See @{"Config options" Link "Config options"}) in @{b}uulib:config@{ub}.

  4. If you want to use Aliases (See @{"Aliases" Link "Aliases"}) edit @{b}uulib:mail/aliases@{ub}.
     If  you  have already an alias file from AmigaUUCP sendmail, just
     copy it to @{b}uulib:mail/aliases@{ub} or edit the @{i}SMAlias@{ui} in @{b}uulib:config@{ub}.

     @{i}Attention@{ui} Don't forget to insert white spaces (1) as an indicator
     for a continuation line. AmigaUUCP uses a comma at the of a line
     as an indicator to continue in the next line.

  5. If you are using a different NAME for sendmail/rmail than
     @{b}sendmail@{ub}/@{b}rmail@{ub}  (e.g  SMail  or SMail -r) you have to
     insert  the  Sendmail/RMail  Entry  in  @{b}uulib:config@{ub}.  This is
     necessary   if   @{b}AmigaSMail@{ub}   can't   deliver   a   mail  or
     @{b}AmigaSMail@{ub}  found  a  @{i}Return-Receipt-To:   Header@{ui}.  In either case
     @{b}AmigaSMail@{ub} calls the sendmail program to deliver the mails.

  6. Setup a path-file (See @{"Setup a path-file" Link "Setup a path-file"})

  7. Setup a sys-file (See @{"Setup a sys-file" Link "Setup a sys-file"})

  8. Setup BSMTP (See @{"BSMTP setup" Link "BSMTP setup"})

  9. Setup SMTP (See @{"BSMTP setup" Link "BSMTP setup"})


---------- Footnotes ----------

(1)  space or tabulator


@EndNode

@Node "Different SendMail programs" "smail.guide/Different SendMail programs"
@Next "Setup a path-file"
@Prev "Do it yourself"
@Toc "Installation"

Different SendMail programs
===========================

   · Getty
        - Use  Getty  passwd  (1) to find local  user, to check the
          user permission to deliver non-local mails  and  to  find
          the users home-dir for alias (See @{"Mail forwarding" Link "Mail forwarding"})

        - If  the mail folder of a users without a passwd entry exists
          the mail delivery @{i}won't@{ui} fail

   · AXSh

     Use  AXSh  passwd  file  to find local user, to check the user
     permission  to  deliver  non-local mails and to find the users
     home-dir for aliasing (See @{"Mail forwarding" Link "Mail forwarding"}).If  the mail folder of
     a users without a passwd entry exists the mail delivery @{i}won't@{ui} fail.

   · MUFS
        - use MUFS passwd and groups file to find local user, to check
          the user permission to deliver non-local mails and to find
          the users home-dir for aliasing (See @{"Mail forwarding" Link "Mail forwarding"})

        - If  the mail folder of a users without a passwd entry exists
          the mail delivery @{i}won't@{ui} fail

        - use the muGetTaskOwner() to determinate who is sending the
          mail

        - set the owner of uumail: mail folder to the receiver of the
          mail

   · AmiTCP
        - use AmiTCP passwd and groups file to find local user, to
          check the user permission to deliver non-local mails and to
          find the users home-dir for alias (See @{"Mail forwarding" Link "Mail forwarding"})

        - If  the mail folder of a users without a passwd entry exists
          the mail delivery @{i}won't@{ui} fail

        - use gethostent() to find aliases for hostnames

        - use the getlogin() to determinate how is sending the mail

        - use the gettimeofday() to determinate find the timezone

        - use the gethostname() to determinate find the hostname

---------- Footnotes ----------

(1)  specified with SMPasswd


@EndNode

@Node "Setup a path-file" "smail.guide/Setup a path-file"
@Next "Setup a sys-file"
@Prev "Different SendMail programs"
@Toc "Installation"

Setup a path-file
=================

Generate  your pathfile with @{b}pathalias@{ub} with @{b}-f@{ub} option from   your
maps   (you   can   get   a  pathalias  archive  from
ftp.cs.tu-berlin.de @{b}/pub/amiga/uucp@{ub}).  Copy this file to the place you
have set in @{i}SMPath@{ui} config option.

@{i}Attention@{ui} Don't use convert or try to sort the pathfile anymore.

@{b}AmigaSMail@{ub}  will  use  the GNU database routines to generate
automatically  a  path  database.   Everytime  @{b}AmigaSMail@{ub} is started
it  will be check whether the ASCII pathfile is newer then the path
database and update in case of need the path database.

For   receivers   that   are   not   in  your  routing  infos (1)
(nobody  is  perfect) setup @{i}SMSmarthost@{ui} in @{b}uulib:config@{ub}.  This host
receives all  mails  for receivers that are not listed in your routing
infos.

If  you want to use domains for addressing use the following syntax in
the maps-file:

     ----------------- snip ---------------------------
     wolfhh=.hanse.de
     ----------------- snap ---------------------------

or in the path-file

     ----------------- snip ---------------------------
     4000    .hanse.de    wolfhh!%s
     ----------------- snap ---------------------------

This   entry   delivers   all   mails   which   are   addressed  to
@{b}hanse.de@{ub} to @{b}wolfhh@{ub}.

If you don't have real maps use demo_maps/demo_paths as a template.
Change:

     mavhh              ==> your site without domain
     mavhh.hanse.de     ==> your site with domain
     torfhh             ==> 1.site you call without domain
     torfhh.hanse.de    ==> 1.site you call with domain
     wolfhh             ==> 2.site you call without domain
     wolfhh.hanse.de    ==> 2.site you call with domain
     .hanse.de          ==> if you want to use domains

@{i}Attention@{ui} Use one tab to separate all entries in your path-file !!!

---------- Footnotes ----------

(1)  pathfile  or  sysfile


@EndNode

@Node "Setup a sys-file" "smail.guide/Setup a sys-file"
@Next "Without path-sys-file"
@Prev "Setup a path-file"
@Toc "Installation"

Setup a sys-file
================

You can define for every host own transport information (1).  While
address resolving @{b}AmigaSMail@{ub} tries to find the most lefthand host of an
address in the sysfile.  If found @{b}AmigaSMail@{ub} uses the transport
information defined for this host.

Besides you can define  in the sysfile domain gateways and their
behavior.

The format of the file:

     -------------------------------------- snip -----------------------------------------
     # The fields are whitespace delimited; nothing special.
     #
     # sys      protocol size   local cmd compress remote cmd path      options
     # ----     -------- ----   --------- -------- -------    ----      -------
     wolfhh     BSMTP    200000 "uux - "  gzip     rcsmtp     wolfhh!%s "FM=2 SM=testhh"
     gauhh      UUCP     0      "uux - "  none     rmail      gauhh!%s
     testhh     SMTP     0      none      none     none       ignore    TIMEOUT=3600
     #
     # Default host
     #
     *          UUCP     0      send_uucp none     rmail      ignore
     #
     # Domain example
     #
     test.domain DOMAIN   0      none      none     none       ignore    "DOMAINHIDE"
     -------------------------------------- snap -----------------------------------------

If you have spaces in your command you  must enclose  all fields into
double quotes (see @{b}uux@{ub} in the gauhh line).

Field description:

@{b}sys@{ub}
     Name  of  the  host.  Use @{i}*@{ui} for the default entry.  This entry is
     used for  every  host which is  not in the sysfile.  For domain
     gateways you define here the name of the domain (without the
     leading dot just the domain name).

@{b}protocol@{ub}
     UUCP, @{"SMTP" Link "SMTP"}, @{"BSMTP" Link "BSMTP"} or DOMAIN The protocol name for mail delivery or
     tag for domainserver

    UNKNOWN PROTOCOLS (2)
          Call the local command program with the following parameters:

               local_cmd <mail-file [SMTP-host] [From-Address] [To-Address]

          The mail will @{i}NOT@{ui} only included into the normal UUCP
          envelope. (3)

    UUCP
          Call the local command with the following parameters:

               local_cmd <mail-file "host!rmail" address0..addressN

          The mail will only included into the normal UUCP envelope.

          How much addresses appended depends on @{i}MaxRmailLen@{ui} in
          @{b}uulib:config@{ub}.

    BSMTP
          The mail will be added to the batch file of this host in the
          correct BSMTP format (defined in RFC 821 and RFC 976).

          The mail will @{i}NOT@{ui} only included into an UUCP envelope.

    SMTP
          The mail will be delivered to host in the correct SMTP format
          (defined in RFC 821)

          The mail will @{i}NOT@{ui} only included into an UUCP envelope.

    DOMAIN
          This  name  is reserved for domain gateways.  If DOMAIN is
          used as protocol all the sysfile entries except the @{i}options@{ui}
          field are ignored.

@{b}size (Only BSMTP)@{ub}
     Maximal  size  in  bytes  of  the  BSMTP  batchfile  for this
     host.  If the batchfile  will  grow  over this limit the batch
     will be delivered the same way as you start @{b}AmigaSMail@{ub} with -D
     option.  Use zero if you want to disable the automatic batching.

@{b}local cmd@{ub}
     The  command your system should execute to deliver the mail.  If
     you have a @{b}uux@{ub}  command without the possibility to read from
     (redirected) input (4),  use  the @{b}send_uucp@{ub}  command  instead of
     @{b}uux@{ub}.  @{i}Don't change the @{i}UUX@{ui} entry in @{b}uulib:config@{ub} to @{b}send_uucp@{ub}@{ui}

@{b}compress (only BSMTP)@{ub}
     The  command  to  compress  the  mail.

     The command is started:

          compress  -c  <infile  >outfile

     and to uncompress

          compress  -d  <infile  >outfile

     If  you  don't  want to compress your mails use @{i}none@{ui} for the
     compress field.

@{b}remote@{ub}
     The command to import your mail on the remote host. This command
     will we used by UUCP and BSMTP in the command field of uux.

@{b}path@{ub}
     This field has the same syntax as the path file entries. It
     describes the bang path to this host (with %s).

     The keyword @{i}ignore@{ui}  tells  @{b}AmigaSMail@{ub} to  ignore this entry and
     search  in the path-file.

     E.g:   If the  mails  to  torfhh  should  delivered  via the path
     torfhh use the "torfhh!%s" as path entry.

@{b}options@{ub}
     If you use more than one of these options you must separate them
     with spaces and enclose them into double quotes.  You can use the
     following options:

    @{b}Format@{ub}
    @{b}FM@{ub}
             - 0

               means use the resolved address (without hostname)in
               rmail/RCPT TO: lines
                    If the path to wolfhh.hanse.de is wolfhh!%s:
                    
                    root@wolfhh.hanse.de ==> RCPT TO:<root>

             - 1

               means use the fully qualified address (with prepended
               hostname) in rmail/RCPT TO: lines
                    If the path to wolfhh.hanse.de is wolfhh!%s:
                    
                    root@wolfhh.hanse.de ==> RCPT TO:<wolfhh!root>

             - 2

               means use the original address (without resolving) in
               rmail/RCPT TO: lines
                    root@wolfhh.hanse.de ==> RCPT TO:<root@wolfhh.hanse.de>

    @{b}Maxtime@{ub}
    @{b}MT@{ub}
          Only SMTP: The time (in secs) to wait if a mail delivery fail

    @{b}Timeout@{ub}
    @{b}TM@{ub}
          Only SMTP: Maximal time (in secs) a mail is queued before it
          send back to sender.

    @{b}SmartHost@{ub}
    @{b}SM@{ub}
          Only SMTP: The name of the smarthost if the transport for
          this system fails

    @{b}DomainHide@{ub}
    @{b}DH@{ub}
          If you set protocol to DOMAIN this switch tells @{b}AmigaSMail@{ub} to
          hide the subdomain (See @{"Domain Gateway" Link "Domain Gateway"}).

If  you  don't  want  to  use  the  installer  script.  You can use
@{b}demo_sys@{ub} file as a template for your sysfile.

---------- Footnotes ----------

(1)  means transport protocol/routing and resolving options

(2)  all other than BSMTP/SMTP/UUCP and DOMAIN

(3)  means a RFC 976 conform From line at the begin of mail

(4)  wUUCP   and   AmigaUUCP1.17   can;  DillonUUCP  can't


@EndNode

@Node "Without path-sys-file" "smail.guide/Without path-sys-file"
@Next "BSMTP setup"
@Prev "Setup a sys-file"
@Toc "Installation"

Without path/sys-file
=====================

If  you  don't  want to use path/sys-file (e.g you only have a host you
call)   insert   @{i}SMSmarthost@{ui}  @{i}your_smart_host@{ui}  in  your @{b}uulib:config@{ub}
file.   Now  @{i}your_smart_host@{ui} is the host receiving all your mail.

@{i}Attention!!!@{ui} The protocol for this host is UUCP. If you want to use
another (BSMTP/SMTP) you must setup a sysfile.


@EndNode

@Node "BSMTP setup" "smail.guide/BSMTP setup"
@Next "SMTP setup"
@Prev "Without path-sys-file"
@Toc "Installation"

BSMTP setup
===========

Copy
                    SMail        ==>   uucp:c/rsmtp
                    SMail        ==>   uucp:c/rcsmtp
                    SMail        ==>   uucp:c/rfsmtp
                    SMail        ==>   uucp:c/rgsmtp
Add  every  host  that  should  receive  mails  via  BSMTP to your
sys-file (See @{"Setup a sys-file" Link "Setup a sys-file"}). Setup for every host the size, local
cmd, compress, remote cmd field.

Read the BSMTP section (See @{"BSMTP" Link "BSMTP"}).


@EndNode

@Node "SMTP setup" "smail.guide/SMTP setup"
@Next "Config options"
@Prev "BSMTP setup"
@Toc "Installation"

SMTP setup
==========

To use SMTP you need a complete AmiTCP V3.x installation.

Insert the following line to your @{b}AmiTCP:db/inet.conf@{ub} file:

     ---------------------------- snip ------------------------------
     smtp      stream      tcp nowait root amitcp:serv/smtpd smtpd -S
     ---------------------------- snap ------------------------------

Copy
                    smail_amitcp ==>   AmiTCP:serv/SMTPd

If @{b}AmigaSMail@{ub} can't connect to a host via SMTP the mail will be queued
in the out.going directory defined by @{i}SMBatchDir@{ui} .  If you want to
deliver this SMTP-Queue start @{b}AmigaSMail@{ub} with the -X option and the
hostname with -h option. If the connection again fails the mail will be
requeued.


@EndNode

@Node "Config options" "smail.guide/Config options"
@Next "Netsupport.library"
@Prev "SMTP setup"
@Toc "Installation"

Config options
==============

You can configure the following options in @{b}uulib:config@{ub}

@{b}Compress, GZip and Freeze@{ub}
     Complete path for compress, gzip and freeze command

     Default: @{b}compress@{ub}, @{b}gzip@{ub} and @{b}freeze@{ub}

@{b}MailBounce@{ub}
     Enables mail bouncing

     Default: Yes

@{b}MailReadyCmd@{ub}
     A command to be executed when a local delivery of mail occurs.
     Executed only once per sendmail/rmail invocation.

     Default: Empty

@{b}MaxRmailLen@{ub}
     If 0, means only one recipient per queue file is allowed (some
     mailers are restricted like this).  If non-zero, then specifies
     maximum length, in bytes, that the 'C rmail' line in the X.  file
     may be.  If the recipient list is larger than the buffer length,
     then multiple queue files will be generated.

     Default: 0

@{b}Rmail@{ub}
     Name of the Rmail program

     Default: rmail

@{b}Sendmail@{ub}
     Name of the Sendmail program

     Default: sendmail

@{b}SMDebug@{ub}
     Debug level of @{b}AmigaSMail@{ub} The level should normally set to zero.

    @{b}1@{ub}
          debug the alias routines

    @{b}2@{ub}
          debug the BSMTP routines

    @{b}3@{ub}
          debug the database routines

    @{b}4@{ub}
          debug the mail-delivery

    @{b}5@{ub}
          debug search for UUCP path

    @{b}6@{ub}
          debug mail parsing and headers generating

    @{b}7@{ub}
          debug the Unix Smail address routines

    @{b}8@{ub}
          debug the main routine

    @{b}9@{ub}
          debug address mapping

    @{b}10@{ub}
          debug the misc routines

    @{b}11@{ub}
          debug the address parsing

    @{b}12@{ub}
          debug the passwd routines

    @{b}13@{ub}
          debug the address resolving

    @{b}14@{ub}
          debug the system depended routines

    @{b}15@{ub}
          debug SMTP routines

     If you want to debug the alias and log routines set SMDebug to:
          SMDebug=2^7+2^2=130

     The number of the table above indicate the power of two. @{b}AmigaSMail@{ub}
     checks whether this bit is set in SMDebug.

     Default: 0

@{b}SMDeliverHome@{ub}
     If set to @{i}Yes@{ui} @{b}AmigaSMail@{ub} uses $(Home)/.elm/$(User) instead
     uumail:$(User) for local mail delivery. This option comes from
     jgouger@psu.edu (Jason Gouger). Ask him any question why etc...

     Default: No

@{b}SMDomainPath@{ub}
     Places your fully domained host name in mail headers instead of
     USENET node name.  Use ONLY if your feed requires it.

     Default: No

@{b}SMReturnFullMail@{ub}
     If set to @{i}Yes@{ui} @{b}AmigaSMail@{ub} return the full mail if the delivery
     fails. Else only the header is returned

     Default: Yes

@{b}SMHeadertype@{ub}
     If set to @{i}0@{ui} @{b}AmigaSMail@{ub} generate no @{b}Received:@{ub} line. If set to @{i}1@{ui} a
     simple @{b}Received:@{ub} will be generated. If set to @{i}2@{ui} a longer @{b}Received:@{ub}
     will be generated.

     Default: 1

@{b}SMFreeze@{ub}
     Set SMFreeze to the filename of the freeze file and @{b}AmigaSMail@{ub}
     will save the actual config entries into this file a read them at
     the next startup. This save half of the startup time.

     Default: Unset

@{b}SMReceipt@{ub}
     Decide whether @{b}AmigaSMail@{ub} should react to Return-Receipt-To:
     headers

     Default: Yes

@{b}SMLogfile@{ub}
     Filename of the @{b}AmigaSMail@{ub} logfile

     @{i}Attention@{ui}  The  meaning  of  this  option has changed from Version
     2.0 to 3.0 (See @{"From Version 2.0" Link "From Version 2.0"}).  No SMMaillog anymore

     Default: @{b}uulib:mail/logfile@{ub}

@{b}SMLogType@{ub}
     Type of @{i}SMLogfile@{ui}. You can chose two different versions:
        · 0 CNews like log format:

               Apr 26 10:02:11: + 'tester@testhh' 'torfhh!root' 348 bytes <9404261002.AA051c@mavhh.hanse.de> 0 secs
               Apr 26 10:03:18: + 'tester@testhh' 'torfhh!root' 348 bytes <9404261003.AA051i@mavhh.hanse.de> 0 secs
               Apr 26 10:21:04: + 'amiga.icu.net.ch!challer!chsun.eunet.ch' 'root' 790 bytes 1 days <767189350.AA120@amiga.icu.net.ch> 1 secs

        · 1 Unix Smail compatible log format:

               05/29/94 19:55:20: [05rs] delivered
               |           via: torfhh
               |            to: test@testhh
               |          from: aussem
               |       program: smail
               |       success: failed
               |          size: 355 bytes
               | remote deliv.: 0 days
               | local  deliv.: 1 secs
               |       orig-id: <9404291955.AA05rr@mavhh.hanse.de>
               |     transport: uucp
               |        router: pathfile
               05/29/94 19:56:34: [9404291956.AA05ry] delivered
               |            to: aussem@mavhh.hanse.de
               |          from: MAILER-DAEMON
               |       program: sendmail
               |       success: ok
               |          size: 729 bytes
               | remote deliv.: 0 days
               | local  deliv.: 1 secs
               |       orig-id: <9404291956.AA05ry@mavhh.hanse.de>
               05/29/94 19:56:34: [9404291956.AA05ry] delivered
               |       orig-to: postmaster@mavhh.hanse.de
               |            to: root
               |      director: alias
               |          from: MAILER-DAEMON
               |       program: sendmail
               |       success: ok
               |          size: 727 bytes
               | remote deliv.: 0 days
               | local  deliv.: 1 secs
               |       orig-id: <9404291956.AA05ry@mavhh.hanse.de>

     Default: 0

@{b}SMSentlog@{ub}
     File name of full mail copy logfile

     @{i}Attention@{ui}  This  logfile  is  as big as your received/sent mails.

     Default: @{b}t:SMail.sent@{ub}

@{b}SMPasswd@{ub}
     File name of the ASCII passwd (only valid for the getty version)

     Default: @{b}getty:passwd@{ub}

@{b}SMPath@{ub}
     File name of  ASCII paths file

     Default: @{b}uulib:Mail/paths@{ub}

@{b}SMSysfile@{ub}
     File name of  ASCII sys file

     Default: @{b}uulib:Mail/sys@{ub}

@{b}SMAlias@{ub}
     File name ASCII aliases file

     Default: @{b}uulib:Mail/aliases@{ub}

@{b}SMFullname@{ub}
     File name ASCII fullnames file (See @{"Fullnames" Link "Fullnames"})

     Default: @{b}uulib:Mail/fullname@{ub}

@{b}SMSmarthost@{ub}
     Name of the smarthost who receives all mails with failed address
     resolving

@{b}SMRerouting@{ub}
     See @{"Re-Routing" Link "Re-Routing"} for more.

        · 0 route C, B, or A (whichever works); set by -O this means
          @{b}AmigaSMail@{ub} do re-routing

        · 1 route A always; set by -o this means @{b}AmigaSMail@{ub} do no
          re-routing

        · 2 route A if A is a domain

     Default: 1

@{b}SMCheckuser@{ub}
     Check sender permission to send mails via UUCP/BSMTP/SMTP

     Default: No

@{b}SMFilter@{ub}
     Check whether the sender (bang-path of the From: Header) matches
     one of the line in the filter file. You can use */? and + as
     jokers.  If the sender matches the mail will be bounced.

     Default: none

@{b}SMFreeMailSpace@{ub}
     Minimum  space  (in  bytes) needed in @{b}uumail:@{ub} for delivering else
     the mail will be send back to the sender

     Default: 200kB

@{b}SMFreeSpoolSpace@{ub}
     Minimum  space  (in bytes) needed in @{b}uuspool:@{ub} for delivering else
     the mail will be send back to the sender

     Default: 200kB

@{b}SMNotExistsUser@{ub}
     Deliver  a  mail  to  a  local  user  who does @{i}not@{ui} exists.  See
     @{"Local Delivery" Link "Local Delivery"}  how  @{b}AmigaSMail@{ub}  determinate whether a user exists.

     Default: No

@{b}SMTempSpace@{ub}
     Minimum  space  left  on  T:   needed  for temporary files.  If the
     minimum  is  reached  @{b}AmigaSMail@{ub}  switch  to  the  directory
     specified with SMTempDir for tempory files.

     Default: 100kB

@{b}SMTempDir@{ub}
     @{b}AmigaSMail@{ub} change to this directory under two conditions:

        @{b}*@{ub} Less than SMTempSpace space left in @{b}T:@{ub}

        @{b}*@{ub} Less space to deliver (generating spool and temp files) a
          mail in T:

     @{i}Attention@{ui} This directory should be on a harddisk.

     Default: @{b}T:@{ub}

@{b}SMBatchDir@{ub}
     Directory  to store SMTP queue and BSMTP batch files.

     @{i}Attention@{ui} Here @{b}AmigaSMail@{ub} will temporary store copy of mails
     files.  This @{i}could@{ui} consume lot of space !

     Default: @{b}uuspool:batch/@{ub}

@{b}SMUpdateDBM@{ub}
     If set to no @{b}AmigaSMail@{ub} will not update the database files
     (alias/path/sysfile) automaticaly. They will only generated if
     they are not exists.

     If set to yes @{b}AmigaSMail@{ub} will check everytime whether the ascii
     file is new than the database file and update them (if ascii is
     newer).

     Default: Yes

@{b}UUX@{ub}
     Name of the uux program

     Default: uux


@EndNode

@Node "Netsupport.library" "smail.guide/Netsupport.library"
@Next "Timezones"
@Prev "Config options"
@Toc "Installation"

Netsupport.library
==================

@{b}AmigaSMail@{ub} uses the Netsupport.library for

   · Memory de/allocation (malloc/calloc/free for C-programmers)

   · Getting Config options

   · File locking

   · Seqnumber generating

   · Unique tempfile name generating

   · POpen/PClose

Here the description how to install the netsupport.library:

The installation of the library is actually very easy: Just copy the
file to your @{b}LIBS:@{ub} directory. :-)) However, the library needs its own
configfile.

You can place the file at any path you like, you can even chose any
name you want. All you have to do is to set the environment variable
@{i}NSPConfig@{ui} according to the path. The library will check, in order of
precedence, for a local and a global variable and use the value as path
and name for the config file. If no @{i}NSPConfig@{ui} variable is set, the
default path is @{b}S:NSPConfig@{ub}.

A valid config file may contain one keyword per line. Keywords MUST
begin at the first column. The parameter can be separated from the
keyword using either space(s) or tab(s). Lines starting with a "#" are
comment lines and will be ignored.

Here's an example:

     #
     # NetSupport.Library config file
     #
     # $VER: NSPConfig 1.23 (22.2.94)
     #
     
     #
     # where the default config file is
     #
     MasterConfig    UULib:Config
     
     #
     # Configuration for MakeLogEntry()
     #
     DefaultLog      UUSpool:Logfile, stdout

The above entries have the following meanings:

   - MasterConfig

     This is important for routines dealing with config files. The
     caller has the possibility to provide a NULL as filename and let
     the library determine the correct file. The library will use the
     file you specify here. This should generally be the main config
     file of your installation, like @{b}UULib:Config@{ub} for UUCP or
     @{b}inet:s/inet.config@{ub} for the AS225r2 package. This feature makes the
     programs using the library package-independent.

   - DefaultLog

     You can specify a separate logfile for each program that uses the
     library. However, just in case your forget it, this logfile will be
     used. You can specify several logfiles, separated with commas. The
     libraries parsing routine is still a little bit weak, so please do
     not try special tricks, okay? :-) "stdout" is a magic, standing
     for the program's standard output stream. An entry like

          Testname        T:testlog, stdout

     will write the logentry to both, the file and the output window.
     You may also specify "CONSOLE:" for the standard error stream of
     the program. This is always a window and will not be affected by
     redirection, unlike "stdout". "PRT:" will naturally send a copy of
     every log entry to the printer, etc...

     Like mentioned above, you can specify logfile(s) for each program
     using the library. The program should state the keyword it uses in
     its manual, but usually it's just the name of the program.
     ListSERV, for example, can be configured like this:

          ListSERV        ListSERV:logfile, stdout

Debugging
=========

NetSupportLibrary's MakeLogEntry() function provides an easy way to
control debugging output. The program author is able to provide
debugging info of lower priority, which is not logged by default but
only if you turn it on manually. Nine degrees between 1 and 9 are
supported. You can set the debugging level from 0 (default) to see none
of them up to 9 to see everything. NetSupport.Library checks the
following places in order of precedence:

   - local DOS variable @{i}<systemname>_debug@{ui}

     To turn the debugging info for ListSERV on (for example) execute
     "Set ListSERV_debug 9".

   - global ENV variable @{i}<systemname>_debug@{ui}

   -     @{i}<systemname>_debug@{ui} keyword in your netsupport config file

   - local DOS variable @{i}Debug@{ui}

     To turn the debugging info for @{i}all@{ui} programs using the library on,
     execute "Set Debug 9".

   - global ENV variable @{i}Debug@{ui}

   -     @{i}Debug@{ui} keyword in your netsupport config file

   -     @{i}Debug@{ui} keyword in your master config file (specified in the
     netsupport config file)

The  name  of  the  logfile  entry  in  the  configfile is the filename
how @{b}AmigaSMail@{ub} is called.

E.g  You  execute  @{b}rsmtp  ...@{ub}  then  the  name for the configfile is
@{b}rsmtp@{ub}.

@{i}@{b}AmigaSMail@{ub} don't work without this library@{ui}


@EndNode

@Node "Timezones" "smail.guide/Timezones"
@Prev "Netsupport.library"
@Toc "Installation"

Timezones
=========

If you not use the AmiTCP version of @{b}AmigaSMail@{ub} you have  to  setup
@{b}ENV:TZNAME@{ub}  and @{b}ENV:TZOFFS@{ub} with the correct  timezone  information.
These  information are needed to calculate     the     difference
from     local     time    to GMT (1).

@{b}AmigaSMail@{ub} try to find timezone name and GMT offset in the following
order:

@{b}ENV:TZNAME@{ub}
     The  environment  variable  TZNAME  should be the timezone name or
     @{i}shhmm@{ui} where @{i}s@{ui} is @{i}+@{ui} or @{i}-@{ui}, @{i}hh@{ui} are the hours and @{i}mm@{ui} the minutes that
     your local time differs from GMT.

     E.g:
          CEST
     or
          +0100

@{b}ENV:TZOFFS@{ub}
     The environment variable TZOFFS should have the following format:


     You are 60 minutes diff from GMT set TZOFFS to:
          +0100

@{b}Locale.library@{ub}
     If  no environment variable TZOFFS is found AmigaSmail try to open
     the @{b}Locale.library@{ub} and get the GMT offset according to your preferences
     settings.

@{i}Attention!!!@{ui} No env:TZ from SAS/C anymore.

---------- Footnotes ----------

(1)  Greenwhich Mean Time


@EndNode

@Node "Usage" "smail.guide/Usage"
@Next "Address"
@Prev "Installation"
@Toc "Main"

Usage
*****

                     SMail [ Options ] address ...

@{b}AmigaSMail@{ub} returns the following return codes:

@{b}<21@{ub}
     General failure (see @{b}uuspool:logfile@{ub} for more)

@{b}21@{ub}
     SMTP Daemon failed

@{b}22@{ub}
     SMTP queue delivery failed

@{b}23@{ub}
     BSMTP batching failed

@{b}24@{ub}
     BSMTP unbatching failed

@{b}25@{ub}
     No receiver found in mail

@{b}26@{ub}
     Mail delivery failed (after generating the mail header/body and
     determinating the receiver addresses)

@{b}-a aliasfile@{ub}
@{b}-aliasfile@{ub}
     Set   alias   ASCII   (1)  file  name  if  not @{b}uulib:mail/aliases@{ub}
     You  may  even  set  this via the Config options (See
     @{"Config options" Link "Config options"}) in @{b}uulib:config@{ub}.

@{b}-A@{ub}
@{b}-print-address@{ub}
     Print  the resolved addresses.  @{i}DON'T@{ui} collect a message or invoke
     a mailer (e.g.  for address resolving in scripts)

@{b}-b address@{ub}
@{b}-bcc-line@{ub}
     Use address on the @{b}Bcc:@{ub} line in locally generated mail.

@{b}-B@{ub}
@{b}-bsmtp-mode@{ub}
     Activate   the  BSMTP  mode.   Only  valid  with  the  RMail  mode.
     @{b}AmigaSMail@{ub} now act like rsmtp

@{b}-c address@{ub}
@{b}-cc-line@{ub}
     Use address on the @{b}Cc:@{ub} line in locally generated mail.

@{b}-d level@{ub}
@{b}-debug-mode@{ub}
     Set the debug-level and @{i}DON'T@{ui} invoke other mailers.  The output is
     written to stderr and the @{b}uuspool:logfile@{ub}.  The level should
     normally set to zero. For more infos see SMDebug.

@{b}-D@{ub}
@{b}-batch-smtp@{ub}
     Activate the BSMTP mail batching. Don't forget to specify the
     hostname with the -h option.

@{b}-F@{ub}
@{b}-force-new-dbm@{ub}
     Force  the  new  generation  of all database files from their ASCII
     files (path/sys and alias files)

@{b}-f address@{ub}
@{b}-from-line@{ub}
     Use address on the @{b}From:@{ub} line in locally generated mail.

@{b}-G@{ub}
@{b}-license@{ub}
     Display the software license

@{b}-g@{ub}
@{b}-helptext@{ub}
     Display help text

@{b}-H hostdomain@{ub}
@{b}-hostdomain@{ub}
     Set  hostdomain.   You  may  alternatively  set this via the Config
     options (See @{"Config options" Link "Config options"}) in @{b}uulib:config@{ub}, too.

@{b}-h hostname@{ub}
@{b}-hostname@{ub}
     Set  hostname.   You  may  alternatively  set  this  via the Config
     options (See @{"Config options" Link "Config options"}) in @{b}uulib:config@{ub}, too. This option
     must be specified  if you batch your BSMTP batches or delivery
     SMTP queues files

@{b}-M@{ub}
@{b}-no-bounce@{ub}
     No bounce back mail will be generated if the delivery fails.

@{b}-N or -raw@{ub}
@{b}-raw-mode@{ub}
     Specify  that  the  the @{i}TEXT BODY ON STDIN IS UNFORMATTED@{ui}.
     @{b}AmigaSMail@{ub} does  not  attempt  to  scan  the  text body for
     headers  but assumes it is entirely data.  Otherwise, the text body
     must  contain zero or more headers, a blank line, and then the text
     body.

@{b}-n namelist@{ub}
@{b}-fullnamefile@{ub}
     @{b}AmigaSMail@{ub}     supports    another    type    of    aliasing (See
     @{"Fullnames" Link "Fullnames"}).   You  may even set this via the Config options (See
     @{"Config options" Link "Config options"}) in @{b}uulib:config@{ub}, too.

@{b}-O@{ub}
@{b}-rerouting@{ub}
     Re-route   UUCP   paths,   trying   successively  larger  righthand
     substrings   of   a   path   until   a   component   is  recognized
     (See @{"Routing" Link "Routing"}).  Activate re-routing !

@{b}-o@{ub}
@{b}-no-rerouting@{ub}
     Route the first component of a path (host!address) in addition to
     routing   domain   addresses  (user@domain)  (See @{"Routing" Link "Routing"})
     Deactivate re-routing !

@{b}-p pathfile@{ub}
@{b}-pathfile@{ub}
     Set  path  ASCII  (not  the  dbm  file)  database  file name if not
     @{b}uulib:mail/paths@{ub}.   You  may  even  set  this via the Config
     options (See @{"Config options" Link "Config options"}) in @{b}uulib:config@{ub}.

@{b}-r@{ub}
@{b}-rmail-mode@{ub}
     Running   @{b}AmigaSMail@{ub}   in   rmail   mode.    In   this  mode
     @{b}AmigaSMail@{ub}  does  not  search for for addresses (to send the mail
     to)in the mail file, but ONLY takes the addresses from command
     line (See @{"RMail mode" Link "RMail mode"}).

@{b}-R text@{ub}
@{b}-realname@{ub}
     Use text as real name in locally generated mail.

@{b}-s text@{ub}
@{b}-subject-line@{ub}
     Use text on the @{b}Subject:@{ub} line in locally generated mail.

@{b}-S@{ub}
@{b}-smtp-daemon-mode@{ub}
     Starts the SMTP Daemon (See @{"SMTP" Link "SMTP"})

@{b}-t address@{ub}
@{b}-to-line@{ub}
     Use address on the @{b}To:@{ub} line in locally generated mail.

@{b}-v level@{ub}
@{b}-verbose-mode@{ub}
     Set verbose-level but still invoke other mailers. The level should
     normally set to zero. For more infos see SMDebug.

@{b}-X@{ub}
@{b}-queue-smtp-mode@{ub}
     Starts the delivery of the SMTP mail-queue (See @{"SMTP" Link "SMTP"}).  Don't
     forget to specify the hostname with the -h option.

@{b}-Z@{ub}
@{b}-repair-mode@{ub}
     Force  the  new  generation  of the SMTP queue file.  Don't forget
     to specify the hostname with the -h option.

---------- Footnotes ----------

(1)  not   the   dbm   file


@EndNode

@Node "Address" "smail.guide/Address"
@Next "Miscellaneous"
@Prev "Usage"
@Toc "Main"

Address
*******


 @{" Addresses accepted " Link "Addresses accepted"} 
 @{" Routing " Link "Routing"} 
 @{" Re-Routing " Link "Re-Routing"} 
 @{" Froming " Link "Froming"} 
 @{" Domain Gateway " Link "Domain Gateway"} 


@EndNode

@Node "Addresses accepted" "smail.guide/Addresses accepted"
@Next "Routing"
@Toc "Address"

Addresses accepted
==================

@{b}AmigaSMail@{ub}  understands the following addresses:

@{b} @target,remainder@{ub}
     RFC route from route-addr

@{b} @target:remainder@{ub}
     RFC end-route from route-addr

@{b}remainder@target@{ub}
     standard domain address

@{b}target!remainder@{ub}
     UUCP bang-route

@{b}target::remainder@{ub}
     DECnet route

@{b}target:remainder@{ub}
     obsolete BERKEnet

@{b}remainder%target@{ub}
     obsolete mailbox hack

Anything else will be understand as a local address.

Because   hostile   rmail's   unpredictably   interpret  mixed
UUCP/domain addresses,  @{b}AmigaSMail@{ub}  understands  "domain!user"  to  be a
domain  address  and  generates  "path!domain!user".  To distinguish
domain "domain!user"  from  UUCP "host!address" "domain" contains at
least one (1) period.   @{b}AmigaSMail@{ub}  gives  precedence  to  @ over !
when parsing  mixed  addresses,  thus  a!b@c is parsed as (a!b)@c,
rather than a!(b@c).


@EndNode

@Node "Routing" "smail.guide/Routing"
@Next "Re-Routing"
@Prev "Addresses accepted"
@Toc "Address"

Routing
=======

@{b}AmigaSMail@{ub} performs the following actions to determinate how to deliver
a message:

   · If the target host address is one of the local hostnames
     recognized by  @{b}AmigaSMail@{ub},  the  message  is handed to the local
     mailer module, see section (See @{"Local Delivery" Link "Local Delivery"}).

   · Next,  @{b}AmigaSMail@{ub}  will  look  in  the sys-file for the path
     entry, if this exists.

   · Next, @{b}AmigaSMail@{ub} will try to look up the target host (minus any
     trailing `.uucp') in the pathalias database, if this exists.

   · If the address has not been matched by any of the above routers,
     it will be delivered to the smart host. The path to the smart host
     as well as the transport to be used are set in the sys-file file.


@EndNode

@Node "Re-Routing" "smail.guide/Re-Routing"
@Next "Froming"
@Prev "Routing"
@Toc "Address"

Re-Routing
==========

The  -o  flag  makes  @{b}AmigaSMail@{ub}  attempt to route the first component
of a path, probably to impress people with how many UUCP  hosts  it
knows.  If this fails it sends the unrouted address to   the
smarthost   (See @{"Smarthost" Link "Smarthost"})  .   The  -O  flag  makes @{b}AmigaSMail@{ub}   take
a  UUCP  path  and  route  the  rightmost component  of  it  (saving
the user name).  This is implemented for hosts having very up-to-date
routing tables.

If  a route cannot be discerned from the available routing database an
additional attempt to route the mail is made by searching for an entry
in  the  database  containing  the  route  to  a  smarthost (See
@{"Smarthost" Link "Smarthost"}).    If  this  entry  exists  the  mail  will  be forwarded
using  that  route.   This  allows  a  host to depend on another
(presumably  better  informed)  host  to deliver its mail.  This  kind
of arrangement should be worked out - in advance - with the smart
host's administrator.

After  @{b}AmigaSMail@{ub}  resolves an address it reparses it to see if  it  is
now  a  path or local address.  If the new address turns  out to be
another domain address @{b}AmigaSMail@{ub} complains as  it  doesn't  like to
resolve more than once.  This error occurs when an address partially
resolves the local host.

By  default  @{b}AmigaSMail@{ub}  won't  alter the explicit bang path routing
of  any  mail  message.   If the stated path is unuseable, (i.e.   the
next  hop host is unknown) then @{b}AmigaSMail@{ub} will ALWAYS  apply  routing
and  attempt  to  deliver  the  mail to the potential  new  address.
Finally  an  attempt  to find a path to a better informed  host  (See
@{"Smarthost" Link "Smarthost"})  will  be made and the mail is passed to that  host.   If
there is no path-file @{b}AmigaSMail@{ub} will call uux directly with the
smarthost as host.  So you must have a entry for your smarthost in
@{b}uulib:l.sys@{ub}.


@EndNode

@Node "Froming" "smail.guide/Froming"
@Next "Domain Gateway"
@Prev "Re-Routing"
@Toc "Address"

Froming
=======

@{b}AmigaSMail@{ub}  improves  "From_" and ">From_" lines to a simple from
argument,  which it can pass to sendmail or use to create its own
"From"  line.   The  rule  for  fromming is:  concatenate each "remote
from"  host  (separating  them  by "!"'s), and tack on the address   on
 the  last  "From_"  line;  if  that  address  is  in user@domain
format  rewrite  it  as  domain!user;  ignore host or domain  if
either  is  simply the local hostname.  It also removes redundant
information from the "From_" line.  For instance:

                    ...!myhost!myhost.mydomain!...
     
     becomes
     
                            ...!myhost!...

Leading  occurrences  of  the  local  host name are elided as well.

@{b}AmigaSMail@{ub} generates it own From_ line, unless it is feeding sendmail,
which is happy with the -ffrom argument.  For UUCP bound mail,
@{b}AmigaSMail@{ub} generates a "remote from hostname", where hostname  is the
UUCP hostname (not the domain name), so that From_ can indicate a valid
path, leaving the sender's domain address in "From:".


@EndNode

@Node "Domain Gateway" "smail.guide/Domain Gateway"
@Prev "Froming"
@Toc "Address"

Domain Gateway
==============

A gateway host for a domain must do five things:

  1. Pass mail bound for that domain to the appropriate host.

  2. Pass mail bound for outside that domain to a gateway in the parent
     domain.

  3. Pass mail bound for a subdomain to a gateway of that subdomain.

  4. Recognize the domain!user address syntax.

  5. Bounce mails back if the host is unknown (and not to the smarthost)

You  have  write  down  all  domains  you  are  a  gateway  for  in
your sysfile. Set protocol to DOMAIN and set the option field to
@{i}DomainHide@{ui} if you want to hide the subdomain.

If @{b}AmigaSMail@{ub}  finds while address resolving one of the domains listed
in  the sysfile @{i}and@{ui} can't find a path  to  the  host, @{b}AmigaSMail@{ub}  will
bounce back this mail instead sending it to the smarthost.

@{i}Attention@{ui}  Don't forget to insert the hosts of your domain in your
path-file including the domain part.

E.g.   your host is the domain gateway for the domain mavhh.hanse.de
and     in    the    domain    is only dummy.mavhh.hanse.de

Use the following path-file:

     ----------------- snip ---------------------------
     5000	dummy.mavhh.hanse.de	dummy!%s
     ----------------- snap ---------------------------

Then insert mavhh.hanse.de into your sysfile. If your host receive a
mail to root@dummy.mavhh.hanse.de the mail  will send  to dummy!root.
Now try root@dummy_wrong.mavhh.hanse.de instead. The mail will not send
to smarthost but bounced back (if there is no path in your path-file to
dummy_wrong.mavhh.hanse.de).

If you set DomainHide in the option field the subdomain will be hidden
in all mails which come from this domain and are delivered with rmail.

     A mail comes from user@dummy.mavhh.hanse.de the From: header
     will be changed to user@mavhh.hanse.de (ONLY in rmail mode)

@{i}Attention@{ui}  Use this option only if you know what you do !


@EndNode

@Node "Miscellaneous" "smail.guide/Miscellaneous"
@Next "Aliases"
@Prev "Address"
@Toc "Main"

Miscellaneous
*************


 @{" Headers " Link "Headers"} 
 @{" Undeliverable mail " Link "Undeliverable mail"} 
 @{" Return-Receipt-To headers " Link "Return-Receipt-To headers"} 
 @{" From and Realname " Link "From and Realname"} 
 @{" Config Freezing " Link "Config Freezing"} 
 @{" Smarthost " Link "Smarthost"} 
 @{" Hostalias " Link "Hostalias"} 
 @{" Logfiles " Link "Logfiles"} 
 @{" RMail mode " Link "RMail mode"} 
 @{" Check user " Link "Check user"} 
 @{" Local Delivery " Link "Local Delivery"} 
 @{" BSMTP " Link "BSMTP"} 
 @{" SMTP " Link "SMTP"} 


@EndNode

@Node "Headers" "smail.guide/Headers"
@Next "Undeliverable mail"
@Toc "Miscellaneous"

Headers
=======

Certain  headers, @{b}To:@{ub}, @{b}From:@{ub}, @{b}Date:@{ub}, etc., are required  by  RFC822.
If  these  headers  are  absent  in locally generated  mail, they will
be inserted by @{b}AmigaSMail@{ub}.  Also, a  line  of trace information, called
a @{b}Received:@{ub} line, will be   inserted   at   the   top   of   each
message.   In  addition @{b}AmigaSMail@{ub}     support     @{b}Cc:@{ub},    @{b}Bcc:@{ub}    and
Return-Receipt-To headers (See @{"Return-Receipt-To headers" Link "Return-Receipt-To headers"}):.


@EndNode

@Node "Undeliverable mail" "smail.guide/Undeliverable mail"
@Next "Return-Receipt-To headers"
@Prev "Headers"
@Toc "Miscellaneous"

Undeliverable mail
==================

Surely nobody likes his mail not reach its intended destination but it
sometimes  happens  that  way.   Mail  that  is  found  to  be
undeliverable (i.e., unknown user or unknown host) will be returned to
the sender and to postmaster of the local host.


@EndNode

@Node "Return-Receipt-To headers" "smail.guide/Return-Receipt-To headers"
@Next "From and Realname"
@Prev "Undeliverable mail"
@Toc "Miscellaneous"

Return-Receipt-To headers
=========================

@{b}AmigaSMail@{ub} (1) will send a mail with a  copy  of the header of the
original mail to the address placed after the @{b}Return-Receipt-To::@{ub}
Header.  You may turn this off via the SMReceipt keyword  in the
@{b}uulib:config@{ub} file.  See @{"Local Delivery" Link "Local Delivery"} for the recognition whether a
user exists on your site.

---------- Footnotes ----------

(1)  if in Rmail mode


@EndNode

@Node "From and Realname" "smail.guide/From and Realname"
@Next "Config Freezing"
@Prev "Return-Receipt-To headers"
@Toc "Miscellaneous"

From and Realname
=================

If you send a mail, @{b}AmigaSMail@{ub} looks whether there is
  1. a -f argument and a -R argument take the fromname from -f and the
     realname from -R

  2. -f argument and no -R argument.  take   the   fromname   from  -f,
     try  to  find  the  fromname  in passwd file  and take the
     comment as realname.  If not found look for Realname in
     @{b}uulib:config@{ub}.

  3. no -f argument and no -R argument

        · Getty/AXSh version look   at   the  local  variable  @{i}USER@{ui}
          and  @{i}REALNAME@{ui}.   If  no @{i}REALNAME@{ui}  environment variable
          exists, try to find the user in passwd file  and  take the
          comment as realname.  If not found look for Realname in
          @{b}uulib:config@{ub}.   If  no  @{i}USER@{ui}  is  found  look  for UserName in
          @{b}uulib:config@{ub}.

        · MUFS version Determinate via MUFS who is the owner of this
          task.  If this is not possible, do the same as the Getty/AXSh
          version.

        · AmiTCP version Determinate  via  AmiTCP who is the owner of
          this task.  If this is not  possible, do the same as the
          Getty/AXSh version.


@EndNode

@Node "Config Freezing" "smail.guide/Config Freezing"
@Next "Hostalias"
@Prev "From and Realname"
@Toc "Miscellaneous"

Config Freezing
===============

Config freezing gives you the possibility to save time while startup.
At startup @{b}AmigaSMail@{ub} parse the @{b}uulib:config@{ub} for config options. If you
set SMFreeze to the filename of the frozen-config file @{b}AmigaSMail@{ub} will
save the actual config entries into this file a read them at the next
startup. This save half of the startup time.

If  you  use Config Freezing @{b}AmigaSMail@{ub} checks every startup whether
your  @{b}uulib:config@{ub}  file  is  newer than your frozen-config file, if
needed regenerate it.


@EndNode

@Node "Hostalias" "smail.guide/Hostalias"
@Next "Smarthost"
@Prev "Config Freezing"
@Toc "Miscellaneous"

Hostalias
=========

   · AmiTCP

     You define a hostalias in your @{b}amitcp:bin/startnet@{ub} file.
     @{b}A{No Value For "MIGASMAIL"}@{ub} uses gethostent() to find all the
     aliases for your system.  Everytime @{b}AmigaSMail@{ub} checks whether an
     address is local it will compare the host part with all aliases.

          E.g:
          
          ----------------------------snip -------------------------
          ...
          ; Our full host name and aliases if known, _nothing_ otherwise
          ; (if this is set, the IP _must_ be set, too)
          .def HN    "mavhh.hanse.de mavhh.sub.org testmachine"
          ...
          ----------------------------snap -------------------------
          
          Define mavhh.sub.org and testmachine as alias names for mavhh.hanse.de

   · other versions

     With a hostalias you define in your aliasfile alias names for your
     systems. Everytime @{b}AmigaSMail@{ub} checks whether an address is local
     it  compares the host part with all aliases. The syntax is similar
     to normal aliases. The only difference is the use of semi-colon
     instead double-colon at the end of the alias name.

          E.g:
          
          ----------------------------snip -------------------------
          mavhh.hanse.de; mavhh.sub.org testmachine
          ----------------------------snap -------------------------
          
          Define mavhh.sub.org and testmachine as alias names for mavhh.hanse.de


@EndNode

@Node "Smarthost" "smail.guide/Smarthost"
@Next "Logfiles"
@Prev "Hostalias"
@Toc "Miscellaneous"

Smarthost
=========

If  @{b}AmigaSMail@{ub}  can't  resolve  a  path to the receiver of a mail,
@{b}AmigaSMail@{ub} will try to sent this mail to a smarthost.  You  must  label
the name of the smarthost in @{b}uulib:config@{ub} with  the keyword
SMSmarthost.  Normally @{b}AmigaSMail@{ub} tries to  resolve  the  path  to  the
smarthost.   If  this is not possible  (e.g you don't have a paths
file) @{b}AmigaSMail@{ub} will call uux directly.


@EndNode

@Node "Logfiles" "smail.guide/Logfiles"
@Next "RMail mode"
@Prev "Smarthost"
@Toc "Miscellaneous"

Logfiles
========

SMSentlog  will backup the complete mail and a little header with the
sender and the maillength.

SMLogfile will write two different types depending of SMLogType:

   · 0
          Nov 28 14:56:42: + 'aussem' 'tester' 475 bytes 2 days <9311082019.0gvb@peti.GUN.de> 5 secs
     The Format is:

          <Date>: <+/-> '<From>' '<To>' <Size> bytes <Remote-Time> days <MessageId> >Local-Time> secs

   · 1
          05/29/94 19:56:34: [9404291956.AA05ry] delivered
          |       orig-to: postmaster@mavhh.hanse.de
          |            to: root
          |      director: alias
          |          from: MAILER-DAEMON
          |       program: sendmail
          |       success: ok
          |          size: 727 bytes
          | remote deliv.: 0 days
          | local  deliv.: 1 secs
          |       orig-id: <9404291956.AA05ry@mavhh.hanse.de>
     Every  line  which starts with @{i}|@{ui} is a continuation line.
     Everything  else  is the start of new log entry.  This logfile
     type  should  be nearly compatible with the @{b}Unix SMail@{ub}.

If you want to disable one of the logfiles set the filename in
@{b}uulib:config@{ub} to @{i}nil:@{ui}.

@{i}Attention@{ui}  The  meaning  of  the SMLogfile option has changed from
Version 2.0 to 3.0 .  No SMMaillog anymore.  Also format  of  the
logfile  changed  from  Version  2.0  to  3.0 (See @{"From Version 2.0" Link "From Version 2.0"}).


@EndNode

@Node "RMail mode" "smail.guide/RMail mode"
@Next "Check user"
@Prev "Logfiles"
@Toc "Miscellaneous"

RMail mode
==========

If @{b}AmigaSMail@{ub} is called with the program name (argv[0] for C
programmers) rmail, @{b}AmigaSMail@{ub} switch to the rmail mode (the same   as
if   you   start   SMail   -r   ...).    Only   in   this  mode
@{b}AmigaSMail@{ub}  sends back Return-Receipt-To:  messages and does not  parse
the  mail  body (e.g.  for receiver or sender of the mail).  If there
is  no receiver found @{b}AmigaSMail@{ub} will bounce the mail back (1).

If @{b}AmigaSMail@{ub} is called with the program name (argv[0] for C
programmers) rsmtp or rcsmtp or rfsmtp or rgsmtp, @{b}AmigaSMail@{ub} switch to
the rmail and the BSMTP mode.  @{b}AmigaSMail@{ub} will try to decompress the
BSMTP message and deliver this with rmail command.

---------- Footnotes ----------

(1)  In normal delivery mode @{b}AmigaSMail@{ub}will fail


@EndNode

@Node "Check user" "smail.guide/Check user"
@Next "Local Delivery"
@Prev "RMail mode"
@Toc "Miscellaneous"

Check user
==========

@{b}AmigaSMail@{ub} can check the permission, whether a local user is allowed
to send a mail via UUCP/BSMTP/SMTP.  To activate this option  just turn
the SMCheckuser Option to @{i}Yes@{ui} and setup who is allowed to mail via
UUCP/BSMTP/SMTP.

The setup depends on the @{b}AmigaSMail@{ub} version:

   · Axsh version No Checkuser support !

   · Getty version All  users that are in group @{b}2@{ub}, are allowed to send
     mails via  UUCP/BSMTP/SMTP.

   · AmiTCP/MUFS version All  users that are in group @{b}mail@{ub}, are
     allowed to send mails via  UUCP/BSMTP/SMTP.

@{i}Attention@{ui}  Only  the  mails  from  @{i}local@{ui}  users are checked.


@EndNode

@Node "Local Delivery" "smail.guide/Local Delivery"
@Next "BSMTP"
@Prev "Check user"
@Toc "Miscellaneous"

Local Delivery
==============

If  you  want to deliver a mail to a non existing user set the config
option SMNotExistsUser to @{i}Yes@{ui}.

There  is  an address @{b}AmigaSMail@{ub} (1) rely   on   to  exist.   This  is
@{b}Postmaster@{ub}.   To  avoid never ending  bouncing  to this addresses, the
local mailer will not fail/bounce if this address doesn't exists.

---------- Footnotes ----------

(1)  and RFC 822, too


@EndNode

@Node "BSMTP" "smail.guide/BSMTP"
@Next "SMTP"
@Prev "Local Delivery"
@Toc "Miscellaneous"

BSMTP
=====

BSMTP is a mail transport protocol (1) which @{b}batches@{ub} the mails into one
file (called batchfile).

This is  transmitted with UUCP and r(g|f|c)smtp as command instead
rmail. On the remote host this file is interpreted like a normal SMTP
input stream (See @{"SMTP" Link "SMTP"}).

Before you connect to your remote host you must generate the UUCP
transfer files with the -D and -h[hostname] option.

If you want to call wolfhh:

     sendmail -Dhwolfhh

If you receive your mails in BSMTP format, the mail will be
uncompressed, the receiver extracted and imported via rmail command.

If you enable the automatic batching @{b}AmigaSMail@{ub} will deliver (2) your
batch file if the next mail makes it bigger than the @{b}size@{ub} parameter of
the sysfile entry.

The mail will be compressed and delivered with the commands from the
@{b}compress@{ub} and @{b}local command@{ub} field of the sys-file.  The @{b}local command@{ub}
must read the mail from stdin like uux does.

The  @{b}compress@{ub} and the @{b}remote command@{ub} field in the sysfile should be the
following pairs:

     compress                      remote command
     --------------------------------------------
     compress           ==>        rcsmtp
     freeze             ==>        rfsmtp
     gzip               ==>        rgsmtp
     no compress        ==>        rsmtp

@{i}Attention@{ui} Don't forget before starting your data transfer to deliver
your BSMTP batch file with the @{b}-D@{ub} parameter.

---------- Footnotes ----------

(1)  defined in RFC 976

(2)  deliver means call uux with the compressed mails and deliver them
with UUCP


@EndNode

@Node "SMTP" "smail.guide/SMTP"
@Prev "BSMTP"
@Toc "Miscellaneous"

SMTP
====

SMTP  is  a mail transport protocol (1)  over character based network
connections. The server sends SMTP commands to the client and he
acknowledge or reject this command with numbers and text lines.

     Server: HELO mavhh.hanse.de
     Client: 250 Nice to meet you

The  mail  is put into a SMTP envelope.  This envelope contains the
sender, the receivers and the mail itself.

@{b}AmigaSMail@{ub} need for SMTP a complete installed AmiTCP version 3.0 beta2
environment. If you deliver a mail via SMTP @{b}AmigaSMail@{ub} will
automatically open a network connection to the SMTP port of the remote
host and try to deliver the mail.

If @{b}AmigaSMail@{ub} is started by AmiTCP as SMTP daemon it will automatically
connect to the assigned network connection.  Else it will use
stdin/stdout to get or put the protocol messages.

If the connection to a host fails @{b}AmigaSMail@{ub} will queue the mail into
@{b}uuspool:batch/out.going@{ub}. To deliver the queued mails you must start
@{b}AmigaSMail@{ub} with -X option.

     You want to deliver the queued mails for wastl :
     
     sendmail -Xhwastl

If the delivery fails again the mail will be re-queued.

The @{b}sendmail@{ub}/@{b}rmail@{ub}  and  @{b}SMTPd@{ub}  uses/accept the following SMTP commands:

   · HELO

   · MAIL

   · RCTP

   · DATA

   · QUIT

   · RSET

If    @{b}SMTPd@{ub}    (2) receives  a local mail it will try to find the  user
in AmiTCP passwd file or detect an alias entry.  If this  fails  and
the  SMNotExistsUser is set to @{i}No@{ui} the mail  will  rejected.  Else the
mail will be queued and after the   QUIT   command  the  mail  will  be
delivered  by  the @{i}RMAIL@{ui} command defined in @{b}uulib:config@{ub}.

If  @{b}AmigaSMail@{ub}  can't  @{i}resolve@{ui} the address for a host the mail will be
delivered to the smarthost defined in the option field of the sysfile
entry.

---------- Footnotes ----------

(1)  defined in RFC 821

(2)  SMTPd   means   a   copy   of @{b}AmigaSMail@{ub}  named SMTPd or started
with the -S parameter


@EndNode

@Node "Aliases" "smail.guide/Aliases"
@Next "Wish List"
@Prev "Miscellaneous"
@Toc "Main"

Aliases
*******


 @{" General " Link "General"} 
 @{" Alias format " Link "Alias format"} 
 @{" Mailing list " Link "Mailing list"} 
 @{" Include other alias files " Link "Include other alias files"} 
 @{" Mail forwarding " Link "Mail forwarding"} 
 @{" Execution Aliases " Link "Execution Aliases"} 
 @{" Fullnames " Link "Fullnames"} 


@EndNode

@Node "General" "smail.guide/General"
@Next "Alias format"
@Toc "Aliases"

General
=======

An attempt has been made to remain compatible with AmigaUUCP sendmail
alias  file format, though the syntax is much more format free  than
sendmail.  As distributed, case differences are ignored when comparing
names to aliases.  Only alias names which resolve to the  @{i}local host@{ui}
are recognized, and are stored in their local form.  Lines  which
start  with  a  white  space  are continuation lines.

@{i}Attention@{ui} If you want to use your AmigaUUCP alias files you have to
insert white spaces (1) as an indicator for a continuation line.
AmigaUUCP uses a comma at the of a line as an indicator to continue in
the next line.

Parenthesized  strings  are  taken  as comments (no nesting), as is
anything after a @{b}#@{ub}.  Here are some examples:

     # this whole line is a comment
     #
     # These are equivalent definitions
     
     alias_name      recip1 recip2 recip3
     alias_name:     recip1, recip2 , recip3
     
     alias_name      recip1 recip2
                     recip3
     
     alias_name      recip1  # Recip1's name
                     recip2  # Recip2's name
                     recip3  # Recip3's name
     
     alias_name      recip1 (Recp1's name) recip2 (Recp2's name)
                     recip3 (Recp3's name)
     
     alias_name@thishost     recip1 recip2 recip3
     
     alias_name@thisdomain   recip1 recip2 recip3
     
     thisdomain!alias_name   recip1 recip2 recip3
     
     test-list: user1@host1 user2@host2
     
     owner-test-list: tester
     
     friends: :include:~/.friends

All  aliases  are  recursive,  so  care  must  be  taken  in  their
definition.    @{b}AmigaSMail@{ub}   aliasing   attempts  to  prevent infinite
loops,  and  to  do  what  was intended by the user.  For example, the
alias:

                       mylogin mypc!mylogin mylogin

Expands to

                         mypc!mylogin mylogin

even  though  the  second  occurrence  of mylogin matches the alias
name.

If  you  want  to  prevent  @{b}AmigaSMail@{ub} from alias the second mylogin,
use a @{b}\ @{ub} before mylogin.

Both  forms  of file inclusion are recursive, too, so watch out for
nesting include files.  They may lead to infinite loops.

If   you   use   a  @{b}~@{ub}  in  your  @{b}:include:@{ub}  statement @{b}AmigaSMail@{ub} will
expand this to the home directory of the caller of the  @{b}AmigaSMail@{ub}  (if
there is a -f option this will be used else @{b}AmigaSMail@{ub} will try to
find your login name (differs if you use Getty/MUFS/AXSh version).

Example (see the @{b}friends@{ub} alias above):

If @{b}AmigaSMail@{ub} delivers a mail to @{b}friends@{ub} it will look in the home
directory of the user for a file called @{b}.friends@{ub} and deliver the mail
to every address written down there. So every user can make is personal
"friend" alias.

If  an  error  occurs while delivering to an address generated from the
@{b}aliases@{ub}  file, @{b}AmigaSMail@{ub} will attempt to send a copy  of the error
message to the "alias owner".  For example, if delivery  to
@{b}user1@host1@{ub} fails when delivering a message to the @{b}test-list@{ub}
mailing list, a copy of the error message will be  mailed  to  the
sender,  as  well  as to @{b}postmaster@{ub} and @{b}owner-test-list@{ub}.    If   the
address  does  not  exist,  no additional error message will be
generated.

---------- Footnotes ----------

(1)  space or tabulator


@EndNode

@Node "Alias format" "smail.guide/Alias format"
@Next "Mailing list"
@Prev "General"
@Toc "Aliases"

Alias format
============

There exists four types for aliases

@{b}normal aliases@{ub}
     Definition in the alias file:

          -----------snip --------------
          normalalias: user1, user2
          -----------snap --------------

     Expansion in the mail:

          To: normalalias
          
          expanded to
          
          To: user1, user2

@{b}pipe aliases@{ub}
     Definition in the alias file:

          -----------snip --------------
          pipealias: |uucp:c/autosys, root
          -----------snap --------------

     Expansion in the mail:

          To: pipealias
          
          expanded
          
          To: root

     In addition the @{b}uucp:c/autosys@{ub} command will be started with the
     mail piped to standard input.

@{b}append aliases@{ub}
     Definition in the alias file:

          -----------snip --------------
          pipealias: >uumail:log, root
          -----------snap --------------

     Expansion in the mail:

          To: pipealias
          
          expanded
          
          To: root

     In addition the mail file will be append to @{b}uumail:log@{ub}.

@{b}file aliases@{ub}
     Definition in the alias file:

          -----------snip --------------
          pipealias: "^sort from=%s to=t:sort", root
          -----------snap --------------

     Expansion in the mail:

          To: pipealias
          
          expanded
          
          To: root

     In addition the @{b}sort@{ub} command will be started with @{b}%s@{ub} replaced with
     the name a temporary copy of the mail which will be deleted after
     the @{b}sort@{ub} has finished.

@{b}alias from the fullname-file@{ub}
     Definition in the fullnames file:

          -----------snip --------------
          Haas signum@torfhh
          -----------snap --------------

     Expansion in the mail:
          To: Haas
          
          expanded
          
          To: signum@torfhh

@{b}unexpand aliases@{ub}
     Definition in the alias file:

          -----------snip --------------
          unexpandalias:: user1, user2
          -----------snap --------------

     Expansion in the mail:
          To: unexpandalias
          
          (un)expanded to
          
          To: unexpandalias


@EndNode

@Node "Mailing list" "smail.guide/Mailing list"
@Next "Include other alias files"
@Prev "Alias format"
@Toc "Aliases"

Mailing list
============

Mailing  lists  are  easily handled by two forms of file inclusion.
The first form is the same as is supported by Unix sendmail

                          mylist    :include:uulib:mylist

In  this  example, each entry in @{b}uulib:mylist@{ub} would be added to   the
alias   for  mylist.   The  second  form  is  unique  to @{b}AmigaSMail@{ub}.
It  allows  the  aliases file to include other aliases files.


@EndNode

@Node "Include other alias files" "smail.guide/Include other alias files"
@Next "Mail forwarding"
@Prev "Mailing list"
@Toc "Aliases"

Include other alias files
=========================

                            :include:uulib:more-aliases

This  would include the file @{b}uulib:more-aliases@{ub} as a regular alias
file.   This  makes  it easier to maintain groups of aliases that
change frequently, such as the list of netnews moderators.


@EndNode

@Node "Mail forwarding" "smail.guide/Mail forwarding"
@Next "Execution Aliases"
@Prev "Include other alias files"
@Toc "Aliases"

Mail forwarding
===============

There  is  another  form  of  aliasing  which  works with the alias
capability.   This  is  called  user  forwarding.  For a given user
name,   if   there   is   no  alias  for  the  user  and  the  file
@{b}users-home/.forward@{ub}  exists  its contents will be treated as an  alias
for  the  user.   The  syntax is the same as that of the recipient
lists in the alias file described above.  If you want to use
forwarding  in  @{b}uumail:@{ub} put a file with the name of the user  you  want
to forward in @{b}uumail:@{ub} and let the first line have  starts  with
@{b}Forward:@{ub}.   The rest of the file will be treated as an alias described
above.


@EndNode

@Node "Execution Aliases" "smail.guide/Execution Aliases"
@Next "Fullnames"
@Prev "Mail forwarding"
@Toc "Aliases"

Execution Aliases
=================

An @{i}execution@{ui} alias is a @{i}pipe@{ui} or @{i}file@{ui} alias.

A @{i}pipe@{ui} alias may be any AmigaDos command, preceded by the pipe  symbol
(@{b}|@{ub}).  This causes the message to be piped into the  command.  If the
invocation contains white space, it must enclosed in double quotes (@{b}"@{ub}).

A @{i}file@{ui} alias may be any AmigaDos command, preceded by the @{b}^@{ub} symbol .
This causes @{b}AmigaSMail@{ub} to replace the @{b}%s@{ub} in the alias string with the
filename of the temporary copy of the mail. After terminating the
command the temporary file will be deleted. If the invocation contains
white space, it must enclosed in double quotes (@{b}"@{ub}).

When  delivering  to a @{i}pipe@{ui} alias, @{b}AmigaSMail@{ub} gives the command  along
with  the arguments to the shell (minus the leading `@{b}|@{ub}'), and passes it
the message on standard input.

     pipetest: root,"|rx uulib:mail/pipetest.rexx",tester@testmachine

This  alias  entry  will send a mail to the local user @{b}root@{ub}, @{b}tester@{ub}
at  the  machine  @{b}testmachine@{ub}  and  run  the following  command  with
the whole mail as input (for C programmers stdin):

     rx uulib:mail/pipetest.rexx <t:JOSU4.0011

When  delivering  to  a  @{i}file@{ui} alias, @{b}AmigaSMail@{ub} gives the command
along  with  the arguments to the shell (minus the leading `@{b}|@{ub}'), and
copy the mail into a temporary file. The first %s in the alias string
will be replaced by this filename.

     filetest: root,"^C:sort from=%s to=t:sorted_file",tester@testmachine

Will execute the following command
     C:sort from=t:JOSU4.0011 to=t:sorted_file

The  command is started with the same stack size, environment variables
and path as the sendmail command.  If the command returns something
else than zero and "failed command" mail will be generated.

The following environment variables are set local for @{i}execution@{ui} aliases:

   · SENDMAIL_TO

     The alias name to whom the mail is send

   · SENDMAIL_FROM

     From whom the mail was send


@EndNode

@Node "Fullnames" "smail.guide/Fullnames"
@Prev "Execution Aliases"
@Toc "Aliases"

Fullnames
=========

@{b}AmigaSMail@{ub}  supports  another  type of aliasing intended for full name
resolution using a file, namelist, of name/address pairs.  This  allows
mail  to George.P.Burdell@gatech.edu to be delivered appropriately.

These  aliases  are  by their nature very simple since they are not
composed of long lists of recipients for each alias.  They are also
numerous,  since  mail  to  George.P.Burdell  may  be  addressed to
Burdell,  G.Burdell,  George.Burdell,  P.Burdell,  G.P.Burdell,  or
George.P.Burdell.  This simpler form of aliasing uses the same fast
searching  algorithm  that  is used for the paths file, so it keeps
resolution time manageable.

Here  comes  a  example  if you want to write to @{b}Ralph-Thomas Aussem@{ub}
with  Email  address @{b}aussem@mavhh.hanse.de@{ub} you can use  the following
syntax (Don't forget to use tabs to separate the entries)...

     -------------------------- snip -----------------------
     Aussem	aussem@mavhh.hanse.de
     Ralph-Thomas	aussem@mavhh.hanse.de
     -------------------------- snap -----------------------


@EndNode

@Node "Wish List" "smail.guide/Wish List"
@Next "Source Files"
@Prev "Aliases"
@Toc "Main"

Wish List
*********


@EndNode

@Node "Source Files" "smail.guide/Source Files"
@Next "Trouble shooting"
@Prev "Wish List"
@Toc "Main"

Source Files
************

To  recompile  @{b}AmigaSMail@{ub}  you need SAS C V6.XX and (HW)RCS.  If  you
want  to  recompile the AXSh version, you need the source files of
AXSh.lib  to  compile  a  resident  and  register  parameter version of
the axsh.lib.   If  you  want to recompile the MultiUserFileSystem you
need the include  files from MUFS (Version 1.4 or higher) distribution.
If you want to   recompile   the   AmiTCP version you  need  the
include  files  from  AmiTCP distribution   (Version  3.0  or  higher).
 Before  you  can  compile  the @{b}AmigaSMail@{ub}  with  the
netsupport.library you have to unpack the netsupport.lha and install
the header files.

@{i}Attention@{ui} If you change something:

   @{b}*@{ub} please inform me, so that I can submit your changes in the
     @{i}official@{ui} distribution.

   @{b}*@{ub} check  your changes in as branches !  It is easier for me to merge
     them.


@EndNode

@Node "Trouble shooting" "smail.guide/Trouble shooting"
@Next "Updating"
@Prev "Source Files"
@Toc "Main"

Trouble shooting
****************

   ·    @{b}AmigaSMail@{ub} gurus everytime you start it

     At the moment the netsupport.library crashes if there is no
     S:NSPConfig file. You must setup one.

   ·    @{b}AmigaSMail@{ub} return to command prompt without do anything

        - Do you installed the @{b}netsupport.library@{ub} from the archive you
          received @{b}AmigaSMail@{ub} ?

        - Start sendmail by hand with @{b}-v0@{ub} or @{b}-d0@{ub} and look at the output

   · Return-Receipt-Mails are only delivered to one address

     Return-Receipt-To recognition of @{b}AmigaSMail@{ub} handles only one
     address

   · Mail can't be delivered

        - Start sendmail by hand with @{b}-v0@{ub} or @{b}-d0@{ub} and look at the output

        - Do you have the path you installed @{b}AmigaSMail@{ub} in in your
          search path (AmigaOS path) ?

   · Wrong mail routing

        - Start sendmail by hand with @{b}-v0@{ub} or @{b}-d0@{ub} and look at the output

        - Do you have a @{i}SMSmarthost@{ui} entry in @{b}uulib:config@{ub} ?

   · All mail is delivered to the smarthost

        - Start sendmail by hand with @{b}-v0@{ub} or @{b}-d0@{ub} and look at the output
          whether the host is found in the path-file

        - Do you have the host you want to mail in the path-file?

        - start @{b}AmigaSMail@{ub} with the @{b}-F@{ub} option to force a new generation
          of the database files

   · All mail is delivered with UUCP (via send_uucp)

        - Do you have the host you want to mail in the sys-file ?

        - Start sendmail by hand with @{b}-v0@{ub} or @{b}-d0@{ub} and look at the output
          whether the host is found in the sys-file

        - start @{b}AmigaSMail@{ub} with the @{b}-F@{ub} option to force a new generation
          of the database files

   · I want to use my uulib:domain file

     @{i}You have to generate a path-file@{ui} But it is really easy !

     E.g you have the following @{b}uulib:domain@{ub}:
          ----------------------- snip ------------------
          *.berkeley.edu  MF	UU  ucbvax.UUCP
          *.cts.com	    MF	UU  fubar.UUCP
          ----------------------- snap ------------------

     You have to write in the path-file:

          ----------------------- snip ------------------
          4000	.berkeley.edu	ucbvax!%s
          4000	.cts.com	fubar!%s
          ----------------------- snap ------------------
     @{i}Don't forget the TABS@{ui}

     or in the maps-file

          ----------------------- snip ------------------
          ucbvax=.berkeley.edu
          fubar=.cts.com
          ----------------------- snap ------------------

   · mail delivery fails because host.domain is unknown

     Check your maps-file whether you use the right maps syntax:

          ----------------- snip ---------------------------
          host.with.domain=host
          yourhost host(DAILY+FAST)
          ----------------- snap ---------------------------
          
          NOT
          
          ----------------- snip ---------------------------
          host=host.with.domain
          yourhost host.with.domain(DAILY+FAST)
          ----------------- snap ---------------------------

     If you don't use the first one @{b}AmigaSMail@{ub} can't deliver the mail
     via @{b}uux@{ub} because normally host and not host.with.domain is know to
     your system (1).

   · Shell Escaping

     If  you  submit  a  string  with  spaces  for  an option (e.g for a
     subject),  you  have  to  enclose  them  into double quotes because
     @{b}AmigaSMail@{ub} use the normal argv[] parsing routines.

     Example:

     Wrong:
          SMail <mail -s this is a nice subject ...
     Right:
          SMail <mail -s "this is a nice subject" ...

     If  you  want  to  enclose  double  quotes themselves in your
     subject you have to stuff the double quotes.  in the CShell:

          SMail <mail -s "this is a nice *\"subject*\"" ...
     in C= shell:
          SMail <mail -s "this is a nice *"subject*"" ...

   · Aliasing with my AmigaUUCP alias file fails

     If you want to use your AmigaUUCP alias files you have to insert
     white spaces (2) as an indicator for a continuation line.
     AmigaUUCP uses a comma at the of a line as an indicator to
     continue in the next line.

   · Only the first line of alias include files are used

     You must use the same syntax as you use in a normal alias file.
     The same routines read the addresses of an alias are used to read
     an included file. So don't forget the leading space or tabulator
     at the beginning of the included file.

          ----------------- snip ---------------------------
           user1@host
          	user2@different_host
           user2@very_different_host
          ----------------- snap ---------------------------
          
          NOT
          
          ----------------- snip ---------------------------
          user1@host
          user2@different_host
          user2@very_different_host
          ----------------- snap ---------------------------

   · Aliases aren't used

     @{b}AmigaSMail@{ub} only test the time difference of ASCII file (3) and the
     database file. If you change included files you must tell
     @{b}AmigaSMail@{ub} with @{b}-F@{ub} option to regenerate the alias database file.

   · Incomplete alias resolving

     @{b}AmigaSMail@{ub} resolves only once the aliases.  This is done to reduce
     the time needed for aliasing. So don't expect that included files
     are re-aliased or alias like the following works:

          ----------------- snip ---------------------------
          postmaster: root
          admin: postmaster
          superuser: admin
          ----------------- snap ---------------------------

     (@{b}AmigaSMail@{ub} resolve @{b}superuser@{ub} to @{b}postmaster@{ub})

   · Pipe Problems under OS2.0 If you have problems with pipe (eg.
     Unable to open pipe/file) try to replace the pipe handler with the
     hwpipe from aminet.

---------- Footnotes ----------

(1)  written down in your @{b}uulib:l.sys@{ub}

(2)  space or tabulator

(3)  defined with SMAlias or @{b}-a@{ub}


@EndNode

@Node "Updating" "smail.guide/Updating"
@Next "History"
@Prev "Trouble shooting"
@Toc "Main"

Updating
********


 @{" From Version 1.0 " Link "From Version 1.0"} 
 @{" From Version 2.0 " Link "From Version 2.0"} 


@EndNode

@Node "From Version 1.0" "smail.guide/From Version 1.0"
@Next "From Version 2.0"
@Toc "Updating"

From Version 1.0
================

Remove  all @{b}AmigaSMail@{ub} options from your @{b}uulib:config@{ub} file  and
install  @{b}AmigaSMail@{ub} complete new.  Read the whole guide  file
(especially  See @{"Setup a path-file" Link "Setup a path-file"}).  There are too many changes and
incompatibilities for a simple update.


@EndNode

@Node "From Version 2.0" "smail.guide/From Version 2.0"
@Prev "From Version 1.0"
@Toc "Updating"

From Version 2.0
================

The best way is to do the same thing as described in @{"From Version 1.0" Link "From Version 1.0"} !

Else do the following

   · generate your pathfile new and DON'T use convert. (See
     @{"Setup a path-file" Link "Setup a path-file"} for more)

   · generate your sys-file (see @{"Setup a sys-file" Link "Setup a sys-file"} for more)

   · copy the ACTUAL netsupport.library (included in SMail3.lha) into
     your libs: directory

   · setup SMTempDir, SMTempSpace and SMBatchDir (see @{"Config options" Link "Config options"}
     for more)

   · setup the correct timezone (the syntax from Version 2.0 was
     invalid)

   · if your are using the environment variable MAILTONOTEXIST set the
     config option SMNotExistsUser to Yes

   · Remove config keyword SMBsmtpSites

   · The name of the AmigaUUCP styled logfile (previously SMLogfile) is
     now controlled by the netsupport.library. SMLogfile has now the
     function of SMMaillogfile.

   · The format of SMLogfile is changed (messageid and local delivery
     time added)

   · Remove batch_smtp and send_bsmtp

   · Remove all sendmail calls with -D and -i in crontabs or call
     scripts

   · no -L/-l and SMHandle anymore, because @{b}AmigaSMail@{ub} using now the
     address routines of Unix Smail 3.1.28

   · different debug/verbose message handling

   · insert white spaces as an indicator for a continuation line
     in your alias files

   · read carefully the following sections

     See @{"Setup a sys-file" Link "Setup a sys-file"}

     See @{"Setup a path-file" Link "Setup a path-file"}

     See @{"Domain Gateway" Link "Domain Gateway"}

     See @{"Netsupport.library" Link "Netsupport.library"}

     See @{"Timezones" Link "Timezones"}

     See @{"Config options" Link "Config options"}


@EndNode

@Node "History" "smail.guide/History"
@Next "Index"
@Prev "Updating"
@Toc "Main"

History
*******


 @{" Version 1.0 " Link "Version 1.0"}  Version 1.0 (16 Nov 1993)
 @{" Version 2.0 " Link "Version 2.0"}  Version 2.0 (1 Dez 1993)
 @{" Version 3.0 " Link "Version 3.0"}  Version 3.0 (Future)


@EndNode

@Node "Version 1.0" "smail.guide/Version 1.0"
@Next "Version 2.0"
@Prev "History"
@Toc "History"

Version 1.0 (16 Nov 1993)
=========================

»»»»»»»»»» INITIAL RELEASE «««««««««««


@EndNode

@Node "Version 2.0" "smail.guide/Version 2.0"
@Next "Version 3.0"
@Prev "Version 1.0"
@Toc "History"

Version 2.0 (1 Dez 1993)
========================

   - Rewritten the routines for error messages (see @{"Config options" Link "Config options"})

   - AmigaUUCP styled logfile output changed

   - Netsupport.library is now used

   - some changes in source files (you should not notice) and some
     little changes in output messages

   - improved  %-address support

   - fixed a bug in installer script (SMPath was invalid)

   - should now works with PGPMIP (great work Peter Simons !)

   - improved guide file

   - message id is now unique (using @{b}uulib:seq@{ub})

   - ~ in :include: statement for aliasing will be expanded to home dir
     of the program's caller

   - in the CNews styled logfile there is logged the delivering time of
     the mail (evaluated from the Date: Header)

   - there were be problems with the logfiles and Return-Receipt-To: if
     there are more than one addresses in To:/Cc:/Bcc: lines.  Only the
     first address were used. This is now fixed.

   - fixed some enforcer hits in aliasing routines

   - fixed a bug in finding a host in path-file (Thanks to Hans Maurer
     !)

   - fixed error in installer script (SMPath was invalid)

   - fixed error in passwd routines in the Getty version

   - timezone information now works


@EndNode

@Node "Version 3.0" "smail.guide/Version 3.0"
@Prev "Version 2.0"
@Toc "History"

Version 3.0 (Future)
====================

Too many to write down here...


@EndNode

@Node "Index" "smail.guide/Index"
@Prev "History"
@Toc "Main"

Top

Index
*****

@Index "Index"



 @{" -aliasfile " Link "Usage"}                           Usage
 @{" -batch-smtp " Link "Usage"}                          Usage
 @{" -bcc-line " Link "Usage"}                            Usage
 @{" -bsmtp-mode " Link "Usage"}                          Usage
 @{" -cc-line " Link "Usage"}                             Usage
 @{" -debug-mode " Link "Usage"}                          Usage
 @{" -force-new-dbm " Link "Usage"}                       Usage
 @{" -from-line " Link "Usage"}                           Usage
 @{" -fullnamefile " Link "Usage"}                        Usage
 @{" -helptext " Link "Usage"}                            Usage
 @{" -hostdomain " Link "Usage"}                          Usage
 @{" -hostname " Link "Usage"}                            Usage
 @{" -license " Link "Usage"}                             Usage
 @{" -no-bounce " Link "Usage"}                           Usage
 @{" -pathfile " Link "Usage"}                            Usage
 @{" -print-address " Link "Usage"}                       Usage
 @{" -queue-smtp-mode " Link "Usage"}                     Usage
 @{" -raw-mode " Link "Usage"}                            Usage
 @{" -realname " Link "Usage"}                            Usage
 @{" -repair-mode " Link "Usage"}                         Usage
 @{" -rerouting " Link "Usage"}                           Usage
 @{" -rmail-mode " Link "Usage"}                          Usage
 @{" -smtp-daemon-mode " Link "Usage"}                    Usage
 @{" -subject-line " Link "Usage"}                        Usage
 @{" -to-line " Link "Usage"}                             Usage
 @{" -verbose-mode " Link "Usage"}                        Usage
 @{" -a " Link "Usage"}                                   Usage
 @{" -A " Link "Usage"}                                   Usage
 @{" -b " Link "Usage"}                                   Usage
 @{" -B " Link "Usage"}                                   Usage
 @{" -c " Link "Usage"}                                   Usage
 @{" -D " Link "Usage"}                                   Usage
 @{" -d " Link "Usage"}                                   Usage
 @{" -f " Link "Usage"}                                   Usage
 @{" -F " Link "Usage"}                                   Usage
 @{" -G " Link "Usage"}                                   Usage
 @{" -g " Link "Usage"}                                   Usage
 @{" -h " Link "Usage"}                                   Usage
 @{" -H " Link "Usage"}                                   Usage
 @{" -M " Link "Usage"}                                   Usage
 @{" -N " Link "Usage"}                                   Usage
 @{" -n " Link "Usage"}                                   Usage
 @{" -no-rerouting " Link "Usage"}                        Usage
 @{" -o " Link "Usage"}                                   Usage
 @{" -O " Link "Usage"}                                   Usage
 @{" -p " Link "Usage"}                                   Usage
 @{" -r " Link "Usage"}                                   Usage
 @{" -R " Link "Usage"}                                   Usage
 @{" -raw " Link "Usage"}                                 Usage
 @{" -s " Link "Usage"}                                   Usage
 @{" -S " Link "Usage"}                                   Usage
 @{" -t " Link "Usage"}                                   Usage
 @{" -v " Link "Usage"}                                   Usage
 @{" -X " Link "Usage"}                                   Usage
 @{" -Z " Link "Usage"}                                   Usage
 @{" uulib:Domain " Link "Setup a path-file"}                         Setup a path-file
 @{" append aliases " Link "Alias format"}                       Alias format
 @{" batchfile " Link "BSMTP"}                            BSMTP
 @{" Compress " Link "Config options"}                             Config options
 @{" DomainPath " Link "Config options"}                           Config options
 @{" file aliases " Link "Alias format"}                         Alias format
 @{" Freeze " Link "Config options"}                               Config options
 @{" fullname aliases " Link "Alias format"}                     Alias format
 @{" GZip " Link "Config options"}                                 Config options
 @{" MailBounce " Link "Config options"}                           Config options
 @{" MailReadyCmd " Link "Config options"}                         Config options
 @{" MaxRmailLen " Link "Config options"}                          Config options
 @{" normal aliases " Link "Alias format"}                       Alias format
 @{" NSPConfig file " Link "Netsupport.library"}                       Netsupport.library
 @{" pipe aliases " Link "Alias format"}                         Alias format
 @{" rcsmtp " Link "BSMTP setup"}                               BSMTP setup
 @{" rfsmtp " Link "BSMTP setup"}                               BSMTP setup
 @{" rgsmtp " Link "BSMTP setup"}                               BSMTP setup
 @{" Rmail " Link "Config options"}                                Config options
 @{" rsmtp " Link "BSMTP setup"}                                BSMTP setup
 @{" Sendmail " Link "Config options"}                             Config options
 @{" send_uucp " Link "Setup a sys-file"}                            Setup a sys-file
 @{" SMAlias " Link "Config options"}                              Config options
 @{" SMBatchDir " Link "Config options"}                           Config options
 @{" SMCheckuser " Link "Config options"}                          Config options
 @{" SMDebug " Link "Config options"}                              Config options
 @{" SMDeliverHome " Link "Config options"}                        Config options
 @{" SMFilter " Link "Config options"}                             Config options
 @{" SMFreeMailSpace " Link "Config options"}                      Config options
 @{" SMFreeSpoolSpace " Link "Config options"}                     Config options
 @{" SMFreeze " Link "Config options"}                             Config options
 @{" SMFullname " Link "Config options"}                           Config options
 @{" SMHeadertype " Link "Config options"}                         Config options
 @{" SMLogfile " Link "Config options"}                            Config options
 @{" SMLogType " Link "Config options"}                            Config options
 @{" SMNotExistsUser " Link "Config options"}                      Config options
 @{" SMPasswd " Link "Config options"}                             Config options
 @{" SMPath " Link "Config options"}                               Config options
 @{" SMReceipt " Link "Config options"}                            Config options
 @{" SMRerouting " Link "Config options"}                          Config options
 @{" SMReturnFullMail " Link "Config options"}                     Config options
 @{" SMSentlog " Link "Config options"}                            Config options
 @{" SMSmarthost " Link "Config options"}                          Config options
 @{" SMSysfile " Link "Config options"}                            Config options
 @{" SMTempDir " Link "Config options"}                            Config options
 @{" SMTPd " Link "SMTP setup"}                                SMTP setup
 @{" SMUpdateDBM " Link "Config options"}                          Config options
 @{" unexpand aliases " Link "Alias format"}                     Alias format
 @{" uux " Link "Setup a sys-file"}                                  Setup a sys-file
 @{" UUX " Link "Config options"}                                  Config options

@EndNode

