




                    MAIL  v4.15  Installation and manager's manual

                          (c)  Peter Davey,  27 March, 1993.

              SECTION                                                 Page
              1.  Introduction                                           3
              2.  How to USE MAIL                                        4
                  2.1  A quick start                                     4
                  2.2  Running the program                               4
                  2.3  The editor                                        6
                  2.4  The Mailbox                                       6
                  2.5  The Menu                                          6
                  2.6  Flags                                             9
                  2.7  Unread mail                                      10
              3.  How to INSTALL MAIL                                   11
                  3.1  The Program                                      11
                  3.2  The Directory                                    11
                  3.3  The Environment                                  11
                  3.4  Step by step - installing by numbers             12
              4.  Shareware Licensing                                   13
                  4.1  The package                                      15
                  4.2  Registration fees                                15
                  4.3  Registering                                      15
              5.  Limits and Requirements                               17
                  5.1  DOS version                                      17
                  5.2  BIOS                                             17
                  5.3  Number of users                                  17
                  5.4  User names                                       17
                  5.5  Defaults                                         17
                  5.6  Systems using 24 line displays                   17
              6.  Application notes                                     19
                  6.1  Security                                         19
                  6.2  Use on a single machine                          19
                  6.3  Maximum number of addressees                     21
                  6.4  Lock files  (Non-Novell networks only)           21
                  6.5  Error codes                                      22
                  6.6  The banner line                                  23
                  6.7  Using MAILSHOW.EXE                               23
                  6.8  Backup programs                                  24
                  6.9  Multiple Novell servers                          24
              7.  Release history                                       25
                  7.1  Released versions                                25
                  7.2  Version numbers                                  25
              8.  About the author                                      26
              9.  I N D E X                                             27



                      MAIL - the Network Electronic Mail Program


              1.  INTRODUCTION

                 The notes in this document refer to MAIL version 4.15, a
                 Shareware program by Peter Davey.  MAIL is written for
                 use on IBM compatible computers on a Novell network, but
                 it uses generic methods of file access, so that it
                 should work happily on any network running MSDOS or a
                 fully compatible operating system.  The purpose of the
                 program is to provide simple messaging between users of
                 a network - with the emphasis on simple.

                 MAIL has the following features:

                 *  A simple menu with single key selection.
                 *  A personal mailbox for each user.
                 *  Messages of up to 23 lines, either typed into a
                    simple full-screen editor, or read from a text file.
                 *  Messages may be sent to a single addressee or a list
                    of addressees.  DOS-style wildcard characters extend
                    this ability.
                 *  A file may be attached to a message and transferred
                    with it.
                 *  Messages can be copied to additional addressees,
                    edited, printed or filed.
                 *  Automatic addressing of answers.
                 *  Distribution lists define frequently used groups of
                    addressees.
                 *  Recipients can be made to answer or print out
                    messages before deleting them.
                 *  A "recorded delivery" service is available.
                 *  A command line option allows a message from a text
                    file to be sent to a list of addressees.
                 *  A command line option lets the program check whether
                    there is new mail.
                 *  Help is available, DOS 5 style, with the /?
                    parameter.

                 The copyright of the program and documentation is
                 retained by Peter Davey, and the version included here
                 is ready for up to 15 users (see paragraph 5.3) for 15.
                 Please see Shareware Licensing (page 13) for full
                 details.

                 Electronic mail can only be properly installed on a
                 network by the network manager, and it is assumed that
                 the manager has a working knowledge of the operating
                 system.  Therefore, these notes are not written at the
                 level of a novice, and no instruction is given on
                 operating system commands.










                                           3
              MAIL v4.15                             (c) Peter Davey 1993



         2.  HOW TO USE MAIL

         2.1  A quick start

            To test out the program, try the following steps (or
            equivalent):

            Ŀ
             MD F:\PUBLIC\MAIL                           
                                                         
             SET MAIL=F:\PUBLIC\MAIL                     
                                                         
             SET ID=SUPERVIS                             
                                                         
             MAIL                                        
            

            You will not actually be able to send any mail at this
            point, because the system will only know about the one
            addressee, "SUPERVIS", and you cannot send mail to
            yourself.  However, you can explore the program, and the
            example shows how simple it is to use.

            NB:  When logged on to a Novell network, the environment
            variable ID is not used as the program will use the
            user's login name.

         2.2  Running the program

            2.2.1  With no arguments

            The command MAIL displays the menu, together with the
            first unread message, if there is one.  In the absence
            of an unread message, the message which was on screen
            last time the program quit is displayed.

            2.2.2  With the ? argument

            The command MAIL ? operates as above, but only if there
            is unread mail.  If there is no unread mail, the program
            quits, returning errorlevel 0.  As long as unread mail
            exists, the next unread message is displayed, and a
            highlighted box at the top left of the screen shows how
            many more unread messages remain.

            2.2.3  Sending a file from the command line

            The contents of a text file may be read in and sent as a
            message using the command line option.  The syntax is
            MAIL FileName AddressList.  FileName is the name of the
            file containing the text to be sent;  AddressList is a
            list of addressees, separated by spaces.  For example:

            Ŀ
             MAIL MYFILE.TXT FRED JIM SHEILA             
            

            would send the contents of MYFILE.TXT to addressees
            Fred, Jim and Sheila.  Only the first 23 lines of the
            text file are sent.


                                      4
         MAIL v4.15                             (c) Peter Davey 1993



                 This command line option is intended for use in batch
                 files to send pre-defined messages to users
                 automatically.  Note that it does not send the file
                 itself, but reads the text of the file and sends it in
                 the form of a message;  the TRANSFER option, which sends
                 a file of any type or size with an attached message, is
                 not available from the command line.

                 2.2.4  With the /? switch

                 The command MAIL /? displays a help screen.

                 2.2.5  The /D switch

                 This changes the current directory while the program
                 runs.  This will be the default directory for saving
                 messages using the FILE option, and when transferring
                 files using the Transfer flag.  e.g.

                 Ŀ
                  MAIL /DC:\MYDIR                             
                 

                 The previous current directory is restored before the
                 program quits.





































                                           5
              MAIL v4.15                             (c) Peter Davey 1993



         2.3  The editor

            A full screen editor is used whenever a message or a
            distribution list is to be edited.  The editor is very
            simple, and has a status line which shows what is being
            edited.  It operates in insert mode, and the following
            keys may be used:

            ENTER     - moves the cursor to a new line, inserting a
                        line if the screen is not already full.  Can
                        be used to split lines.
            Backspace - deletes the character to the left of the
                        cursor.  Can delete a line break if the
                        resultant joined line is shorter than the
                        screen width.
            Delete    - deletes the character under the cursor.  Can
                        delete a line break if the resultant joined
                        line is shorter than the screen width.
            Arrow keys  -    Up, Down, Left, Right.
            Home      - beginning of line.
            End       - end of line.
            CTRL-Y    - deletes the line containing the cursor.
            CTRL-U    - restores the last deleted line.

            The WordStar-style ^E ^S ^D ^X cursor keys may also be
            used.

         2.4  The Mailbox

            A user's mailbox is created automatically when he or she
            first runs the program.  All messages, both incoming and
            outgoing, are kept in the mailbox.  When the program is
            run, the menu line is displayed at the top of the
            screen, above the current message.  The messages are
            arranged in a circular list, so that continually
            selecting NEXT or BACK will cycle through them
            repeatedly.  Messages may be left in the mailbox, or
            deleted as required, and so the mailbox acts as a sort
            of combined IN and PENDING tray.

         2.5  The Menu

            The full menu line has fourteen options, but the menu is
            context sensitive, so only relevant options are
            displayed.  Options are chosen by typing the first
            letter of the option, which is highlighted.  In the
            explanations below, "Current message", means the message
            currently displayed, and "Sender" means the originator
            of the message or, if it was copied, the copier.

            2.5.1  $dist

            Allows the creation or editing of a distribution list.
            When chosen, the user is prompted for the name of a
            distribution list.  This may be up to seven characters,
            as the first character of a distribution list file is
            always $.  The default name for a distribution list is
            $DIST.  After the name is entered, the message editor is
            displayed, and the names of addressees for the
            distribution list may be typed in.


                                      6
         MAIL v4.15                             (c) Peter Davey 1993



                 There is no limit on the number of addressees in a
                 distribution list, and repeated addresses will not cause
                 duplicated messages to be sent.  The format is free;
                 the only stipulation is that names must be separated by
                 spaces or new lines.  A distribution list may contain
                 the names of other distribution lists;  this nesting may
                 reach a depth of five.  Blank lines are permitted, and
                 comment lines may be entered, starting with a /
                 character.  For example:

                 Ŀ
                  / This is a distribution list               
                                                              
                  / My friends:                               
                  FRED JIM SHEILA                             
                                                              
                  / My boss:                                  
                  SIR                                         
                                                              
                  / Another list that I want included         
                  $MYDIST                                     
                 

                 2.5.2  Answer

                 A special case of SEND.  This option creates a message
                 addressed to the sender of the current message, and
                 clears the Answer flag of the current message.  Except
                 for not asking the name of the addressee and the
                 subject of the message, it is the same as the SEND
                 option.

                 2.5.3  Back

                 Displays the previous message.

                 2.5.4  Copy

                 Allows the current message to be copied to other
                 addressees.  The prompts are the same as for the ANSWER
                 option, but the message editor is not entered.

                 2.5.5  Delete

                 Deletes the current message.

                 2.5.6  Edit

                 Enters the editor with the current message, allowing
                 additions or alterations to be made.  The message may
                 subsequently be copied to other addressees.

                 2.5.7  File

                 Allows the current message to be saved to a text file.
                 The user is prompted for the name of the file.  This
                 option will append to an existing file, or create a new
                 file, as appropriate.  Full pathnames are accepted, and
                 no check is made that the file is of an appropriate
                 type.


                                           7
              MAIL v4.15                             (c) Peter Davey 1993



            2.5.8  Help

            Enters the help menu, which allows seven screens of help
            information to be selected.

            2.5.9  Kill

            For the Supervisor only.  If the current user's ID (or
            Novell login name) is SUPERVIS, then this option is
            available to kill any mailbox.  The supervisor might
            need this in order to remove the mailbox of a user who
            is no longer on the system.  (MAIL truncates user names
            to 8 characters, so on a Novell Netware network,
            SUPERVISOR's mailbox name is SUPERVIS).

            2.5.10  List

            Allows known addressees to be listed.  The user is
            prompted for addressees, and DOS-style wildcards may be
            used.  The first default is *, which gives a list of all
            addressees and distribution lists known to the system.
            For a given input line, LIST will show all the users who
            would be addressed if sending a message with the same
            line given as the addressee.

            Giving the name of a distribution list, e.g. $DIST,
            lists all the addresses defined in the list;  likewise,
            $* lists not the names of the lists, but the combined
            contents of all distribution lists.

            On successive operations of LIST, the prompt will show
            the addressees previously listed.  The line can then be
            edited to try something different.  The purpose of this
            is so that if necessary, different combinations of
            wildcards can be tried out until the required users are
            listed.  When subsequently using SEND, the same list of
            addressees is offered as a default.

            On a Novell system, users who are actually logged in at
            the time are listed in red.

            2.5.11  Next

            Displays the next message.

            2.5.12  Print

            Prints the current message to the default printer, and
            resets the Print flag of the current message.

            2.5.13  Quit

            Quits the program, returning errorlevel 0.  A check is
            first made for new mail, and if it is found the program
            does not quit, but displays the next unread message.







                                      8
         MAIL v4.15                             (c) Peter Davey 1993



                 2.5.14  Send

                 Creates a message and sends it to the nominated
                 addressee.  There are five stages to sending a message:

                 1. A prompt is given for the addressee.  In reply to
                    this, a list of addressees may be entered, e.g. Jim
                    George Fred.  DOS-style wildcards may be used in the
                    list, as may the names of distribution lists.  On a
                    Novell network, the address ** means, "All users
                    currently logged on".
                 2. A prompt is given for the subject of the message.
                    The line entered is displayed at the foot of the
                    message screen.
                 3. The message flags are displayed, and the user is
                    invited to set them as appropriate.  At this point,
                    transferring a file or reading in from a text file
                    may be selected.
                 4. If file transfer or reading in from file has been
                    selected, the user is prompted for file names.  These
                    may be a full pathnames.
                 5. The editor is entered.  When editing is finished, the
                    message is sent.

                 2.5.15  Space Bar

                 Pressing the space bar causes a check to be made for new
                 mail.  This check is also made automatically whenever
                 the contents of the mailbox are changed by editing or
                 sending messages.

              2.6  Flags

                 When creating or copying a message, flags can be
                 attached to it to control certain features.  Five flags
                 are available, and are prompted for when the message is
                 created or copied.

                 2.6.1  Answer

                 If this flag is set, the recipients of a message will be
                 unable to delete it unless they first send a reply,
                 using the ANSWER option.

                 2.6.2  Immediate (Novell only)

                 On a Novell network, flash messages can be sent to
                 logged-on users, and displayed in a banner at the bottom
                 of the screen.  The Immediate flag causes a flash
                 message to be sent to all logged-on recipients of a
                 message telling them that an Immediate message has been
                 sent.  If there is only one addressee, then the Recorded
                 Delivery flag is also set, and a flash message is
                 returned to the sender at the moment that the message is
                 read.  (If you want to, you can send an Immediate,
                 Recorded Delivery, message to any number of users but
                 this is not the default because you would be continually
                 getting flash messages back).




                                           9
              MAIL v4.15                             (c) Peter Davey 1993



            2.6.3  Lock

            The Lock flag prevents a message from being edited or
            copied by its recipients.

            2.6.4  Print

            The Print flag makes the recipients unable to delete the
            message until they have printed it using the PRINT
            option.

            2.6.5  Recorded delivery

            If the Recorded delivery flag is set, an acknowledgement
            of receipt is returned to the sender of the message.
            The acknowledgement is sent at the moment that the
            message first appears on the recipient's screen.

         2.7  Unread mail

            Whenever unread messages exist, a highlighted box at the
            top left of the screen shows how many unread messages
            remain.  While the box is displayed, the BACK option is
            not available on the menu, and the NEXT option will
            always move to the next unread message.

            Although messages may be left in the mailbox as long as
            the user wishes, old mail is usually left for a purpose,
            e.g. pending action.  To prevent old messages being
            overlooked, any message over 60 days old is flagged as
            unread;  that is, it will start to appear as a new
            message each time MAIL is called.  If it is actually
            required to be kept in the mailbox, then the message
            date may be reset simply by selecting EDIT, and then
            pressing Escape without making any changes.  The message
            can then remain for another 60 days before once more
            being brought to the user's attention.

























                                     10
         MAIL v4.15                             (c) Peter Davey 1993



              3.  HOW TO INSTALL MAIL

              3.1  The Program

                 Only one executable program is involved, named MAIL.EXE.
                 It is not sensitive to where it is put, as long as it
                 can be executed by any user who needs access to E-mail,
                 so your DOS or UTILITY directory could be a good place.

              3.2  The Directory

                 A directory must be made for the mail, and it is best
                 that it should be used exclusively by mail files.  All
                 the users' mailboxes, distribution lists, transferred
                 files and the locking semaphores are held in this
                 directory, so you should arrange for users of the mail
                 system to have Read / Write / Open / Create / Delete
                 rights.  The mailbox files are text files, with each
                 message terminated by a Form Feed.  This allows direct
                 printing out - but you may find the message headers
                 rather telegraphese.

                 The name of a mailbox file is the same as the first
                 eight characters of the user's ID (or Novell login
                 name).  Mailbox files are hidden, since many users have
                 access to the directory;  this prevents casual snooping.
                 There has been no attempt to prevent users from hacking
                 into each others mailboxes if they are well enough
                 versed in DOS to find the hidden files.

                 Transferred files have hidden and system attributes.
                 They are named using the DOS function which creates a
                 unique file name.  Once a transferred file has been
                 delivered to its addressee, its temporary file is
                 deleted.

              3.3  The Environment

                 Mail makes use of two environment variables.  The
                 variable MAIL points to the mailbox directory.  The
                 variable ID is the user's unique name, which is not
                 needed if your network is Novell Netware.  Each user
                 should have a different ID because it is used to create
                 the user's mailbox in the mailbox directory.  The best
                 way to arrange this is to set the environment variable
                 in each user's login script (or the equivalent on your
                 network).  If you have a Novell network, the program
                 will discover the user's name without needing an
                 environment variable.

                 Since it is used to create a file, only the first 8
                 characters of the user ID are significant.  I'm sorry
                 about this limitation, but it is fundamental to the
                 simplicity of the system.  When I first wrote the
                 program, our network was still in the planning stages,
                 and so our user IDs were created with the limitation in
                 mind.





                                          11
              MAIL v4.15                             (c) Peter Davey 1993



         3.4  Step by step - installing by numbers

            3.4.1  The program

            Copy MAIL.EXE to a directory where all mail users can
            find it without trying too hard.  Modify the users' PATH
            variable to point to it if you like.

            3.4.2  The MAIL directory

            Make a mail directory, wherever is most appropriate on
            your system.  On a Novell system, I would suggest
            SYS:EMAIL.

















































                                     12
         MAIL v4.15                             (c) Peter Davey 1993



                 3.4.3  Access to the MAIL directory

                 Ensure that the MAIL directory is shared as a resource
                 over the network, and that all users who require it are
                 able to attach/map to it or are attached automatically
                 when they log on.  They should have Read / Write / Open
                 / Create / Delete rights.

                 3.4.4  The Environment

                 Make sure that each user has the necessary environment
                 variables.  MAIL should point to the MAIL directory, and
                 ID (not required on Novell networks) should be the
                 user's unique name.

                 3.4.5  Running it

                 Get all users to run the program.  The best way to do
                 this is to put the command:

                 Ŀ
                  MAIL ?                                      
                 

                 in their logon scripts, or in the loop of whatever menu
                 system you use (you should be using mine!).  Running the
                 program the first time creates the user's empty mailbox,
                 and subsequently each call with the ? argument will
                 check for new mail, and exit if there is none.

                 3.4.6  Making users aware

                 Let the users know that E-mail is available.  Put the
                 MAIL command on the appropriate menu, if you use a menu
                 system.  Arrange a way of running the MAIL ? command
                 often (at least every time a user logs on) so that users
                 are alerted to new messages (see paragraph 2.2.2).
                 Systems that I set up are usually arranged to check for
                 mail in this way each time an application quits back to
                 the system menu.


              4.  SHAREWARE LICENSING

                 I will not explain the whole Shareware thing.  The world
                 and his editor are writing reams of column inches about
                 it now, so unless you are a Tibetan monk...

                 The version distributed as shareware is for 15 users.
                 See Limits and Requirements (page 17) for the physical
                 limits, and the definition of a user.  The registration
                 fee for up to 15 users is 15.  There is no restriction
                 on copying and distribution of the package, provided
                 that all of the files listed below are distributed
                 together on one disk, and that no charge is made
                 (libraries may charge their usual copying fee).  If you
                 think the program is worth having, share it with others.

                 I do, however, ask you to do the decent thing and send
                 me the required fee.  I will then send you a licensed


                                          13
              MAIL v4.15                             (c) Peter Davey 1993



            copy, and put you on a mailing list for updates and
            support.

            Just as a reminder, the program will nag you
            occasionally if it finds that you are addressing more
            than the licensed number of users.  How much it nags
            will depend on just how may users you address!  The idea
            behind this is that you still have a fully working piece
            of software, and plenty of time to contact me for a
            registered upgrade.




















































                                     14
         MAIL v4.15                             (c) Peter Davey 1993



              4.1  The package

                 The package consists of the files listed below.  If the
                 package is copied and handed on to other parties ALL OF
                 THESE FILES are to be included:

                 MAILREAD.ME   Final release notes
                 MAIL.EXE      The executable file
                 MAIL286.EXE   A version compiled for 286 processors
                 MAILSHOW.EXE  Utility to un-hide files in the mail
                               directory
                 MAIL.DOC      This document, in MS WORD 5.0 format
                 MAIL.TXT      This document, in ASCII format, with form
                               feeds;
                               printable on A4 using COPY MAIL.TXT PRN

              4.2  Registration fees

                 The registration fee in the table below is accepted in
                 return for an exclusive licence to use the package for
                 up to the number of addressees shown.  I retain the
                 copyright of the program and documentation, and
                 ownership of the intellectual property rights inherent
                 in them.  By accepting your registration, I agree that
                 you may keep copies of the program and documentation as
                 required for use, and for back-up purposes, and you
                 agree not to violate my copyright by selling the program
                 whether separately or as part of a value added package,
                 or reverse engineering the code for gain.

                 Violation of these terms will render this agreement
                 void, irrespective of what monies have been paid.

                 Ŀ
                    Number       Charge    
                   of users     (No VAT)   
                 Ĵ
                   Up to 15       15      
                 Ĵ
                   Over 15    1 per user  
                 Ĵ
                  Single PCs    5 each    
                             (minimum 15) 
                 

                 I am not registered for VAT, so VAT is not payable on
                 the fees above, nor can I provide a VAT invoice.

              4.3  Registering

                 You may register by sending the requisite fee to the
                 following address.  Cheques should be made payable to
                 Peter Davey (Personal Computer Services).

                 Peter Davey (Personal Computer Services)
                 5 Malvern Close
                 Worthing
                 Sussex.
                 BN11  2HE



                                          15
              MAIL v4.15                             (c) Peter Davey 1993

































































                                     16
         MAIL v4.15                             (c) Peter Davey 1993



              5.  LIMITS AND REQUIREMENTS

              5.1  DOS version

                 The program runs under any networkable version of DOS -
                 that is, version 3.1 or above.

              5.2  BIOS

                 Machines running MAIL should have an IBM-compatible
                 BIOS.

              5.3  Number of users

                 The version of the program included here is licensed for
                 15 users (on payment of the registration fee), but
                 compiled for up to 200 users.  A user is defined as a
                 mailbox or distribution list file in the MAIL directory,
                 so you can have up to 200 files.  Temporary files (which
                 are used by the TRANSFER option) and .LOK files do not
                 count.

              5.4  User names

                 The user name, as set in the environment variable ID or
                 by Netware, has up to eight significant characters.
                 Longer user names may be used, but they are truncated to
                 a length of eight characters in order to create the
                 mailbox files.

              5.5  Defaults

                 There is no default for the user name.  If the program
                 cannot find the user's name it will exit, returning
                 errorlevel 2.  (This can happen on a Novell system if
                 you try to run MAIL while logged out).

                 There is no default for the MAIL directory name.  If the
                 environment variable MAIL is not set, the program will
                 exit, returning errorlevel 3.

                 The default directory for transferring files, and saving
                 messages using the FILE option, is the current
                 directory.  This default may be changed using the /D
                 switch.

              5.6  Systems using 24 line displays

                 Some display adaptors give only 24 lines of text.  The
                 program does not make any allowance for this.  The only
                 difficulty likely to be experienced with these is that a
                 full 23 line message will cause the screen to scroll up
                 one line, losing its header underneath the menu line.
                 If this is a serious problem, I can provide a version
                 which limits messages to 22 lines.







                                          17
              MAIL v4.15                             (c) Peter Davey 1993

































































                                     18
         MAIL v4.15                             (c) Peter Davey 1993



              6.  APPLICATION NOTES

              6.1  Security

                 The system cannot be said to be secure, because although
                 the mailbox files are hidden, they are in a directory in
                 which all mail users have Read/Write/Create access.  You
                 may be able to get round this if your network system
                 allows you to set individual file permissions such that
                 other users can append to a file, but not read it.  You
                 could apply this protection to the mailbox of each user
                 who particularly wants his mail to be private. If you
                 try this successfully, please let me know, and I will
                 add the details to this section.

                 When you are experimenting with permissions on a non-
                 Novell network, you should remember that all users must
                 be able to create and delete the lock files (described
                 below) when accessing mail.  They also need to create
                 temporary files which hold the contents of files
                 transferred from user to user.

                 Alternatively, if you are happy about security
                 generally, but need to give attention to the privacy of
                 mail for a particular group (say, Senior Management),
                 you can use two different mail directories.  Make a
                 private directory accessible by the closed group only,
                 and then set the environment variable MAIL to point to
                 this directory for these users.  They will then have
                 their own closed mail group.  The disadvantage of this
                 approach is that if they also want access to the main
                 mail directory they would have to quit the mail program,
                 change the MAIL variable, and run the program again.
                 This of course would be easily achieved under batch file
                 or menu control.

                 If I get enough feedback on this question, I might
                 consider adding a closed group working feature to the
                 program.

              6.2  Use on a single machine

                 Why is there a registration option for single machines?
                 Well, in fact this program was originally written for
                 use on a stand-alone machine, and the network file
                 locking was added later.  I was assisting some
                 departments where each PC was shared by several users,
                 who were mostly interested in doing their jobs and not
                 in PCs.  They wanted to make the machines easy to use,
                 and so we installed a menu system, which I wrote because
                 none of the available commercial or Shareware systems
                 seemed to do exactly what we wanted.

                 The menu system involves a logging-on screen, partially
                 for security, but mostly so that it knows which user in
                 on and can display the right menus.  Once we had a
                 system which knew who was logged on to it, it seemed
                 natural to add an E-mail package so that they could
                 leave messages for each other.  The network version of



                                          19
              MAIL v4.15                             (c) Peter Davey 1993



            the mail program was not born until we planned to join
            all of these stand-alone PCs together.

            I still install mail on stand-alone machines - the idea
            isn't as daft as it sounds.

























































                                     20
         MAIL v4.15                             (c) Peter Davey 1993



              6.3  Maximum number of addressees

                 Technically, the limit of 200 only shows when you are
                 using wildcard addressing, or listing users.  You can
                 actually get away with as many users as you like as long
                 as you do not try to address or list more than 200 of
                 them in one go, although of course I would require you
                 to register and receive a copy for the appropriate
                 number.  If you require more than 200 users, you will
                 need an upgrade version from me.

              6.4  Lock files  (Non-Novell networks only)

                 6.4.1  Method of locking

                 Files are locked by the creation of semaphore files.
                 This is primitive, but has the advantage that it ensures
                 compatibility even with networks which are not fully
                 compatible with MS-DOS's low-level file locking
                 functions.  Lock files have the root name of their
                 associated file, with the extension .LOK.  The name of
                 the user who created the lock is written to the lock
                 file.  Lock files are not usually visible in the mail
                 directory, because they normally only exist for a
                 fraction of a second.  The exception is when a
                 distribution list is being edited;  in this case an
                 associated lock will exist until editing is complete,
                 and while it is in place no user can send a message
                 using that distribution list.

                 6.4.2  Effect of system faults

                 If lock files are left intact, due to system faults,
                 they may be deleted without penalty.  Individual lock
                 files are also removed automatically when the owner of a
                 locked mailbox tries to access his mail.  This ensures
                 that the system can continue to function normally if
                 nobody has the expertise required to delete lock files
                 by hand.

                 6.4.3  Dealing with spurious lock files

                 When the program tries to access a file, it attempts to
                 create the lock.  If the lock already exists, the
                 program retries 160 times.  After the maximum number of
                 retries, it reads the lock file to find out who owns it.
                 If the lock is owned by the current user, then it
                 carries on, otherwise it gives up, unless it is
                 accessing the user's own mailbox, in which case it
                 ignores the lock, and then clears it when finished.

                 In most circumstances, the program assumes that a lock
                 is incorrect if it is over five minutes old, and it can
                 then be cleared.  If this is not the case, then the lock
                 remains in force, and the associated file cannot be
                 accessed.  When a file is not accessed because of a
                 lock, an error message shows who owns the lock.

                 Using this information it can be seen how lock problems
                 can be solved by users, even if they have no access to


                                          21
              MAIL v4.15                             (c) Peter Davey 1993



            DOS to kill the lock files.  Suppose that the mailbox of
            user Fred has been left locked by user Sheila;  as a
            result, other users are unable to send mail to Fred.  If
            Fred is available, he can unlock his mailbox simply by
            reading his mail.  If he is unavailable, then Sheila can
            achieve the same result by sending a further message to
            Fred;  since Sheila already owns the lock, she will be
            allowed in, and the lock will be correctly cleared
            afterwards.  In the case of a distribution list, only
            the user who locked it can unlock it;  this can be done
            by selecting the list for editing, using the $dist
            option.

         6.5  Error codes

            Several error codes are returned in cases of abnormal
            termination.  Two of these have been mentioned in
            paragraph 5.5.  All are listed below.

            Errorlevel 1 is returned if the user's mailbox file
            cannot be opened.

            Errorlevel 2 is returned if environment variable ID is
            not set.

            Errorlevel 3 is returned if environment variable MAIL is
            not set.

            Errorlevel 4 is returned when the command line option is
            used, and the file to be sent does not exist, or is
            empty.

            Errorlevel 5 is returned when the command line option is
            used, and no valid addressee is given.

            Errorlevel 6 is returned when an invalid directory name
            is given with the /D switch.

            Errorlevel 7 is returned when an invalid command line
            switch character is given.

            Errorlevel 8 is returned if, when quitting the program,
            it cannot write changes back to the mailbox because it
            is locked.

            Errorlevel 9 is returned when unable to close a mailbox
            file after attempting to write a message to it.  This
            can happen if the operating system does not allow the
            file to be extended.  It could be the result of a "Disk
            full" error;  on a Novell system, it might be that the
            owner of the file has used up all of his allotted
            storage space.

            Whenever an errorlevel is returned, the program first
            displays an error message and pauses for it to be read.
            The error number given in the message is the same as the
            errorlevel returned.





                                     22
         MAIL v4.15                             (c) Peter Davey 1993



              6.6  The banner line

                 At program start-up, when the mailbox is empty, the
                 program displays a copyright line.  Registered copies of
                 the program may contain your own message if required.

              6.7  Using MAILSHOW.EXE

                 This utility clears the hidden and read-only attributes
                 of mailbox files.  Its purpose is to allow the system
                 manager to manage unwanted mailboxes, and it may be used
                 on single mailboxes, or the entire mail directory.  The
                 environment variable MAIL must exist.

                 Notes:

                 1  Using the utility does not lock users out.  If any
                 user sends a message to a mailbox, the mailbox becomes
                 hidden again.  Bear in mind that this could happen at
                 any moment.

                 2  If a user is given a new ID, his mailbox file may be
                 renamed after being un-hidden by MAILSHOW.

                 6.7.1  In the mail directory

                 The command MAILSHOW unhides all files in the mail
                 directory, listing the pathname of each file.


































                                          23
              MAIL v4.15                             (c) Peter Davey 1993



            6.7.2  On individual mailboxes

            Appending a user ID to the command makes it act on that
            ID alone, or a group of IDs if wildcards are used.  For
            example:

            Ŀ
             MAILSHOW FRED                               
             MAILSHOW W*                                 
            

         6.8  Backup programs

            When using MAIL ? the mail program detects new mail
            because the archive flag of the mailbox is set.  If you
            have backed up the directory containing E-mail, your
            backup program may have cleared the archive flags after
            backing up.  It is thus possible that, although no mail
            has actually been lost, some users may not detect new
            mail if you have carried out a backup in between the
            time when the message was sent and the time the mailbox
            is checked.

            The work-around for this is either not to back up your
            mail directory, or to set your backup software (if
            possible) to leave the archive flags alone when backing
            up E-mail files.  Since the files are hidden anyway,
            some backup programs may not touch them.

         6.9  Multiple Novell servers

            There is no restriction that should prevent MAIL from
            being used on any network with multiple servers.
            However, because of the additional features of MAIL when
            used with Novell, a detail about Novell servers might be
            useful.

            Novell systems have a concept of Primary, Default and
            Preferred servers.  The Primary server is usually the
            server that a workstation first attached to when it was
            started.  The Default server is the server to which the
            current drive is mapped;  if the current drive is local
            then the Default server is the Primary server.  The
            Preferred server only exists if it has been specifically
            defined by an application program on a workstation.

            When a network request is made, it is sent to the
            Preferred server, if it has been defined, or otherwise
            to the Default server.

            When listing addressees, or sending to ** (which, on a
            Novell network, means "All users currently logged on"),
            MAIL makes network requests.  These will be serviced by
            the Default server.  Suppose that you have three
            servers, MAIN, ACCOUNTS and GRAPHICS.  Each of your
            users are mapped to the MAIN server and one other.  If a
            user in accounts runs MAIL and sends a message to **,
            the message will go to all the users who are logged in
            to his Default server, and which server that is will
            depend on what is his current drive.


                                     24
         MAIL v4.15                             (c) Peter Davey 1993



                 To avoid surprises it helps to ensure that users always
                 have the appropriate current drive when using MAIL.
                 This may be achieved either by logging on to a drive
                 before running MAIL, or by running MAIL with the /D
                 switch, giving the name of a drive and directory which
                 will become current while the program runs.  The
                 advantage of using /D is that the program then restores
                 the previous current drive and directory before
                 quitting.


              7.  RELEASE HISTORY

              7.1  Released versions

                 Version 3.4 of MAIL.COM was the first version of MAIL to
                 have been generally released.  Earlier versions were
                 used only in-house, so if you have ever seen one it was
                 probably an illegal copy.

                 The shareware version has a banner which reads, "Mail
                 (c) Peter Davey, March 1993. v4.15 15 users."
                 Registered copies will be the same version, but may
                 report a different number of users, and may have the
                 user's company name or message added to the banner.  If
                 you see this, you will be looking at the same program,
                 but not the shareware version.  You are not authorised
                 to copy and pass on non-shareware versions.

              7.2  Version numbers

                 I use version numbers as follows:

                 The major version number is changed only with
                 significant changes to the software, usually involving
                 compatibility issues;  e.g. files used with a new
                 version may not work with older versions (although I
                 always try to ensure compatibility the other way).  In
                 the case of the change from 3.xx to 4.xx the major
                 changes were the addition of file transferring, which
                 was a significant upgrade, and a change of compiler to
                 Turbo Pascal 6.0.

                 The first digit after the point usually designates small
                 changes and additions that do not affect compatibility
                 although they are useful upgrades.  The most recent
                 example is the addition of Novell-specific features.

                 The final digit is used for minor cosmetic amendments
                 and bug-fixes.












                                          25
              MAIL v4.15                             (c) Peter Davey 1993



         8.  ABOUT THE AUTHOR

            I am a network manager and have had a close working
            experience of several generations of desk-top computers
            over the years.  I started my network experience in the
            early days installing and managing a RM Nimbus system,
            and moved on to Novell.

            I plan to remain involved with the computer industry in
            the future, and put more low-cost Shareware utilities
            onto the market.  These are programs that I wrote
            originally for use in-house, and so they will have to be
            checked over and manuals produced.  I want to keep
            standards high, and I will always be grateful for
            feedback and constructive advice.  Particularly, if you
            find a bug - let me know!

            A lot of work goes into the production of even the
            simplest program.  When preparing this one for
            distribution, I thought it would be easy because it has
            already been used in-house for over four years, but in
            fact I found that I wanted to add various bits of
            polish.  Getting the documentation prepared takes some
            time too!  I like support to be of the highest quality,
            and I hope that if you experience problems I will be
            able to help.  However, please remember my family - they
            like to see me sometimes.



































                                     26
         MAIL v4.15                             (c) Peter Davey 1993




                                     9.  I N D E X

                                             FileName   4
              $DIST   6, 22                  Files
                listing   8                    as released   15
              24 line displays   17            in mail directory   17
              Access   13, 19, 21            Flags   9
              Acknowledgement   10             Answer   7, 9
              Additions or alterations   7     Immediate   9
              Addressee   3, 4, 7, 9, 22       Lock   10
              Addressees   3, 4, 7, 8, 9       Print   8, 10
                in distribution lists   6      Recorded delivery   10
                number of   7, 15, 21        Form Feed   11
              AddressList   4                Help   3, 5
              ANSWER   7                       screens   8
              Application notes   19         Hidden files   11
              Arguments   4                  ID   11, 13, 17
              BACK   6, 10                   Immediate flag   9
              Back-up   15                   Licensed copy   13
              Backup programs   24           Limits and Requirements
              Banner   23                        13, 17
              Batch file   19                List   4, 6, 9
              Batch files   5                List of addressees   3
              BIOS   17                      Lock files   19, 21, 22
              Closed mail group   19           spurious   21
              Command formats                Lock flag   10
                MAIL   4                     Login script   11
                MAIL /?   5                  MAIL   11, 13, 17
                MAIL /D   5, 25              MAIL ? (see Command formats)
                MAIL ?   4                       13
                MAIL FileName AddressList    MAIL directory   12, 13, 17,
                    4                            21, 23
              Command line   3, 4, 5, 22       default name   17
              Copying fee   13               MAIL.EXE   11, 12, 15
              Copyright   3, 15, 23          MAIL286.EXE   15
              Current message   6, 7, 8      Mailbox   3, 6, 11, 13, 17,
              Defaults   17                      19, 21, 22, 23
              Delete   6, 10, 19               file   22
              Directory   11, 12, 19           files   19
              Distribution list   21         Mailing list   14
              Distribution lists   3, 8, 9   Menu   6
                creating and editing   6       $dist   6
                nesting   7                    Answer   7
              Documentation   3, 15            Back   7
                in ASCII format   15           Copy   7
              DOS   3, 8, 9, 11, 17, 21,       Delete   7
                  22                           Edit   7
              EDIT   10                        File   7
              Editor   3, 6, 7, 9, 13          Help   8
              Environment   11, 13             Kill   8
                variables   11, 13, 17         List   8
                  ID   4, 22                   Next   8
                  MAIL   4, 19, 22, 23         Print   8
              Errorlevel   4, 8, 17            Quit   8
                levels 1-9   22                Send   9
              File                             Space Bar   9
                locking   19, 21             Menu line   6, 17
                permissions   19             More than 200 users   21
                sending   9                  Multiple Novell servers   24
                transfer   9
         
         
         Network 3, 11, 13, 19
           version   19                    
         New mail   3, 8, 13
         NEXT   6, 10
         Novell   3
           Error 2   17
           Error 9   22
           Flash messages   9
           listing users   8
           MAIL directory   12
           User ID   4, 11
         Number of users   14, 17
         Operating system   3
         Originator   6
         Pathnames   7
         Physical limits   13
         Print flag   10
         Protection   19
         Quit   8, 19
         Recorded delivery   3
         Recorded delivery flag   10
         Registering   15
         Registration fee   15
         Registration fees   15
         Restriction on copying   13
         Reverse engineering   15
         Rights   11, 13, 15
         Security   19
         Semaphore files   21
         Send   4, 5, 7, 9, 13
         Sender   6, 7, 10
         Shareware   3, 19, 25
           Licensing   13
         Significant characters   17
         Single machine   19
         Status line   6
         Subject   7
         Text file   3, 4, 7, 9
         The package   13, 15
         Tibetan monk   13
         Unread
           flagging old messages   10
         Unread mail   4, 10
         Unread messages   8
         Upgrade   14, 21
         User
           definition   17
           names   17
         VAT   15
         Version
           of DOS   17
           of MAIL   25
         Wildcard   3, 8, 21
         WordStar   6
