.SH
The BBOARDS Channel
.PP
Sites that run the MH message system, version mh.5, may install
a \fIbboards\fR channel which delivers messages 
from interest-group mailing lists to a special ``bboards'' directory  .
The bboards software,
which is compatible with the MH message system, keeps track of which
messages have been seen by individual users, and allows designated bboards
managers to control the size and access for different bboards.
.FN
See the \fIman\fR entry mh-gen.8 in the MH distribution.
It is important to note that the choice to install ``bboards'' 
must be made when MMDF is generated.  The ``news'' facility mentioned
in the MH documentation is not supported by CSNET.
.FE
.SH
The UUCP Channel
.PP
The task of integrating UUCP mail into MMDF was a prime
goal for BRL.
Our users would not tolerate having to use
two radically different mail interfaces for two different
kinds of mail connections.
We decided to write a channel to interface to the UUCP
mail world that would take care of the necessary format
conversions to allow mail to traverse the two mail worlds.
The channel has two parts.  The input portion of the channel
is the program \fB/bin/rmail\fR which is executed by the UUCP
program \fBuuxqt\fR when mail is being delivered.
The output portion is a standard channel that invokes the UUCP
system after reformatting the message.
.PP
The \fBrmail\fR
program has been totally rewritten to interface to MMDF.
\fBRmail\fR's primary task is to collect and reformat the
address strings in the message.
To reformat each address, \fBrmail\fR uses the UUCP channel table
to determine what hosts are known to this host and shortens
an host!host!host! string down to the single most distant host we know
about and any subsequent hosts we do not know.  For example
knownA!knownB!knownC!unknown1!unknown2!user would become
knownC!unknown1!unknown2!user.
It then converts this to an RFC822 style address by putting the unknown
hosts and the user in the local part and putting the known host with
a domain in the domain portion, e.g. unknown1!unknown2!user@knownC.UUCP.
If all the hosts are known, then only the user
is left in the local part, and the address winds up being user@known.UUCP.
Since you always know the hosts you talk to, you can build any arbitrary
UUCP path by simply saying arbitrary-host-path@neighbor.UUCP.
.PP
\fBRmail\fR is prepared to accept destination addresses in two forms.
If the addressee is just another UUCP host addressed using host!host!...
notation, then \fBrmail\fR forwards the letter via UUCP without header munging
since the destination host may not support RFC822 style mail.
An addressee of the form user@domain will
cause the message to be fed to \fBsubmit\fR and into MMDF proper
where the message can be delivered to another UUCP site or any other site
accessible via MMDF.
\fBRmail\fR will reformat the message header in the latter case to conform
as much as possible with the RFC822 specifications.
.PP
The outbound portion of the UUCP channel is a MMDF channel program called
``uucp'' which is invoked by \fBdeliver\fR.
The job of this program is much
easier since all it must do is reformat the ``From:'' line to be compatible
with UUCP mail.
The outbound channel must also reformat the destination addresses
which become arguments to \fBuux\fR.
The outbound channel uses the same channel table that
\fBrmail\fR used but performs the reverse action on the address so,
for example, root@mcnc.UUCP becomes unc!duke!mcnc!root and this is
then further divided to form the uux command
``uux unc!rmail duke!mcnc!root'' (assuming the channel table maps
mcnc.UUCP into duke!unc!mcnc).
.PP
The UUCP channel would have to be classed as the only ``flakey''
portion of MMDF since some of these address transformation really need
an advanced AI system to make an intelligent transformation.
In general, though, the channel does a very good job and has little trouble
with ``normal'' UUCP addresses.
