.spr0.ap.ebb.date.fl subs
.require "ident"
.title $ident() User Guide
.subtit $ident()

###
.b6
.c;DEC INTERNAL USE ONLY
.b
.c;N#M#A#I#L
.b
.c;USER GUIDE
.b4

This document contains user information for $ident().
Nmail is a tool which allows mail sent from the VMS
MAIL utility to be queued for subsequent delivery, with recovery from
network failures and similar problems.

This Nmail kit is for use only within DEC.
DEC customers (in the USA at least) can buy Nmail through the ASSETS 
software library, also known as the Digital Solutions Library.

Nmail was written by Dave Porter and is entirely unfunded; 
please send comments, suggestions, gratitude and
legal tender to MU::PORTER. Supply of this software and documentation
does not commit me to anything, anytime.

.pg;.do contents "/deepest=2/double_space"

.pg;.hl1 Introduction
 
Nmail works in conjunction with the VMS MAIL utility to
implement queued transmission of mail.  This allows you to
queue up mail to nodes that are currently unreachable, for
example, or to transmit long documents without needing to
wait until transmission is complete.

Nmail requires no special software to be installed at the remote
node; it can send to any destination that ordinary MAIL can send to.

This document is the guide for general users of Nmail. There
is another manual which contains information of interest to
the system manager -- see file NM_$SYSMGR.DOC.


.pg;.hl1 Sending and receiving mail
 
Nmail is integrated with VMS MAIL for the sending and receiving 
of mail. 

.hl2 Sending mail
.require "nm$send.rno"

Nmail's 512-byte restriction on record length arises
because it is always necessary for Nmail to read the file
in record mode when building its work file.  
Thus, there needs to be some 
finite limitation, and the 512-byte record buffer supplied
by MAIL seems to be a reasonable limit for a text file.

MAIL, by contrast, is sometimes able to handle files
with long records, because it may be able to
send the file in block mode.  In this case, it simply
does not notice the excessive size of some records.
In other cases it will report an error just as 
Nmail does.

In any event, there is a simple workaround: use
SEND/FOREIGN to send files which contain records 
longer than 512 bytes.

.hl2 Receiving mail
.require "nm$receive.rno"

.hl2 Mail from the Nmail Daemon
 
If the Nmail system decides that it cannot send your mail, then the
sending daemon will send you mail to report this. This report will
be received as normal VMS mail; the sender will be NMAIL-DAEMON
on whichever node was attempting to send the mail; this may be different
from the one on which you entered the mail, in a cluster.
 
The report will include details which will allow you to identify which
message Nmail was attempting to send. Then, for each failing address,
Nmail will report the most recent error message encountered. This message
may indicate some condition directly reported by the Nmail daemon
(such as an unknown
node name) or some condition reported from the destination node (such as
an unknown user name).
 
After Nmail has reported a hard (irrecoverable) error to you, it will
cease attempts to send that message to that address.  It will however
continue to attempt to send the message to other as-yet-unsent 
addresses which have
not experienced any error.

Nmail will return the text of your original message at the end of
the error report. If you want to resend this message after fixing the
problem, then you can, for example, use MAIL's
EXTRACT command to save
the report in a file, edit it to remove all text other than your original
message, and then resend it.

.pg;.hl1 Nmail utility functions
 
Nmail provides some utility functions; these functions are not accessible
from within MAIL but rather are invoked by a DCL command, "NMAIL".
 
.hl2 Checking on the status of unsent mail
.require "nm$show.rno"

.hl2 Cancelling unsent mail
.require "nm$cancel.rno"

.hl2 Releasing held jobs
.require "nm$release.rno"

.pg.hl1 User-selectable options

There are a number of ways in which the individual user can modify
Nmail default actions and parameters. You can elect to receive positive
confirmation of Nmail job completion, and you can control the expiration
and retry periods for your messages.

Currently, user options are indicated by 
setting up DCL symbols in your process environment.  This is somewhat
kludgey in nature and will be changed as soon as something better can
be achieved. At that time, the current mechanism will be dropped.

Therefore, before you make use of the features listed in this section,
you must realise that details of the user interface is subject to 
change in future versions of the software. Got that? OK...

.require "nm$options.rno"

.b2
[End of Nmail User Guide]