[comp.unix.xenix] smail "front end" query

chip@ateng.UUCP (Chip Salzenberg) (10/16/87)

[Since this is a Xenix-specific question, followups have been directed
 to comp.unix.xenix.]

In article <838@seradg.Dayton.NCR.COM> pat@seradg.Dayton.NCR.COM (Patrick Pesch) writes:
>
>	I have just got "smail up on my SCO Xenix system and have a question
>	that somebody out there has probably encounterd.  Smail replaces
>	/bin/mail with a small front end called svbinmail (for systems
>	that do not have sendmail).  It moves the existing /bin/mail to
>	/bin/lmail, and uses it only when READING mail.  /bin/smail and
>	/bin/rmail (linked together) are used when sending mail.
>
>	My problem is that the smail interface seems pretty primitive,
>	compared to the Xenix mail that was there (mailx derivative).

I've installed smail here on an SCO Xenix 2.2 system.  I did _not_ rename
/bin/mail to /bin/lmail.  Instead, I installed a replacement for the
/usr/lib/mail/execmail program. (Execmail is Xenix's answer to sendmail).
This replacement program parses execmail's arguments and executes smail.
The arguments that execmail (and its replacement) understand are:

	-f user         This mail is from "user"
	-n              Perform no alias substitution
	-m              Mail to "me" too, if requested
	-r              Remote  [host!user instead of host:user?]
	-h count        Specify max hop count in bang path (default is 20)

(Perhaps some SCO wizards would care to clarify the usage of these options.
Specifically, I haven't been able to discern any actual affect from the
use of the "-m" and "-r" options.)

Xenix's /bin/mail, when it finally wants to deliver mail, calls execmail,
which on my system is actually smail in disguise.  And smail uses the old
execmail, which I've renamed to execmail.x, to deliver local mail.

About configuring smail for this setup:  I compiled smail without defining
SENDMAIL, and I defined ALIASES as "/usr/lib/mail/r_aliases".  All aliases
that go to remote users are in this file; all aliases to local users are
(still) in /usr/lib/mail/aliases. (Postmaster, usenet, network, Micnet
aliases, etc.) I'd have let smail do _all_ alias processing, except that it
doesn't understand "|pipeline" aliases. (i.e. rnews: "|/bin/rnews")

The fly in the ointment is /bin/mail, which seems to consider itself lord
and master of all it surveys.  When it sees a name like "larry@moe.curly",
it says "hey, there's no local user named `larry@moe.curly', and I don't
see a bang, so I'm not going to bother execmail with this one." As someone
wrote to me recently, /bin/mail is a hunk of junk.  So we don't use it --
we use mush and/or elm.  But if /bin/mail must be used, you can still mail
to `moe.curly!larry' and it works.  Barely.

Anyway, now that I can change routing at whim, I'll never go back to manual
bang paths.  Not willingly, anyway.

-- 
Chip Salzenberg         "chip@ateng.UUCP"  or  "{uunet,usfvax2}!ateng!chip"
A.T. Engineering        My employer's opinions are not mine, but these are.
   "Gentlemen, your work today has been outstanding.  I intend to recommend
   you all for promotion -- in whatever fleet we end up serving."   - JTK

paul@devon.UUCP (Paul Sutcliffe Jr.) (10/17/87)

[ This was originally posted in comp.mail.uucp.  I've cross-posted it
  to comp.unix.xenix, but have directed followups to comp.mail.uucp.  ]

In the referenced article, pat@seradg.Dayton.NCR.COM (Patrick Pesch) writes:
> 	I have just got "smail" up on my SCO Xenix system and have a question
> 	that somebody out there has probably encounterd.  Smail replaces
> 	/bin/mail with a small front end called svbinmail (for systems
> 	that do not have sendmail).  It moves the existing /bin/mail to
> 	/bin/lmail, and uses it only when READING mail.  /bin/smail and
> 	/bin/rmail (linked together) are used when sending mail.
> 
> 	My problem is that the smail interface seems pretty primitive,
> 	compared to the Xenix mail that was there (mailx derivative).
> 	Can smail prompt for "Subject:, CC:", etc... as mailx does?  Does
> 	anyone know how this could be done without actually adding the
> 	features to smail (maybe using the existing mailer as a front end)?

You appear to have installed SMAIL in (what the author refers  to  as)
the  "SYSV  without  SENDMAIL"  configuration.  The problem with doing
this on Xenix (SCO or Microsoft) is that, as you  pointed  out,  SMAIL
assumes  that  /bin/mail  is  a very dumb mailer, and replaces it.  In
fact, the Xenix /bin/mail is very intelligent (sic), and very  closely
resembles the UCB "Mail" package.

But to address your problem.  Take a close look at the contents of the
/usr/lib/mail  directory.   Therein you will find an executable called
"execmail".  This is roughly the equivilent  (albeit  a  slimmed  down
version)  of  sendmail.  Execmail is the delivery agent for /bin/mail.
It decides if the message is for UUCP, MICNET or  local  delivery  and
invokes  /bin/rmail, /usr/lib/mail/mail.mn or /usr/lib/mail/mail.local
respectively.

The solution, then, is to inform SMAIL that the local  delivery  agent
is  /usr/lib/mail/mail.local instead of /bin/mail.  Do this in SMAIL's
defs.h file.  This allows you to retain /bin/mail  (and  its  improved
features  over  svbinmail)  while  allowing  SMAIL  access  to a local
delivery agent.

- paul

-- 
Paul Sutcliffe, Jr.

UUCP (smart):  paul@devon.UUCP
UUCP (dumb):   ...{rutgers,ihnp4,cbosgd}!bpa!vu-vlsi!devon!paul

jpp@slxsys.co.uk (John Pettitt) (10/21/87)

In article <838@seradg.Dayton.NCR.COM>, pat@seradg.Dayton.NCR.COM (Patrick Pesch) writes:
>	[ stuff about standard smail install deleted ] 
> 	My problem is that the smail interface seems pretty primitive,
> 	compared to the Xenix mail that was there (mailx derivative).
> 	Can smail prompt for "Subject:, CC:", etc... as mailx does?  Does
> 	anyone know how this could be done without actually adding the
> 	features to smail (maybe using the existing mailer as a front end)?
> 	Would having "sendmail" help?
> 

I just got this to work !

Xenix mail (at least sco 2.2.1) uses several programs in /usr/lib/mail
to deliver mail.   If you install smail as follows then all should be
fine.

1) Compile smail (remeber to edit defs.h so that the local mailer
is /usr/lib/mail/mail.local.old and smail now lives in /usr/bin 
not /bin

2) in /usr/lib/mail 
	mv mail.local mail.local.old
	mv execmail execmail.old
	ln /usr/bin/smail mail.local
	ln /usr/bin/smail execmail

3) in /usr/bin
	mv rmail OLDrmail
	ln smail rmail

4) set up an alias file as needed.


This seems to work just fine.  The mail command still gives all
the prompts and ~ escapes and then uses smail to deliver the mail.
The only problem to date is that xenix mail thinks that user@site
is just a user name and so complains about not finding a passwd entry.
The temporary fix is to just use ! addresses, but now with the help (?)
of smail routing.

How this will stand up in a xenix micnet system is anybodys guess !


-- 
John Pettitt G6KCQ, CIX jpettitt, Voice +44 1 398 9422
UUCP:  ...uunet!mcvax!ukc!pyrltd!slxsys!jpp  (jpp@slxsys.co.uk)
Disclaimer: I don't even own a cat to share my views !

davidsen@steinmetz.steinmetz.UUCP (William E. Davidsen Jr) (10/21/87)

I use MUSH as a front end and it works beautifully.
-- 
	bill davidsen		(wedu@ge-crd.arpa)
  {uunet | philabs | seismo}!steinmetz!crdos1!davidsen
"Stupidity, like virtue, is its own reward" -me

chip@ateng.UUCP (Chip Salzenberg) (10/22/87)

Followups have been directed to comp.unix.xenix.  [Again. *sigh*]

In article <477@devon.UUCP> paul@devon.UUCP (Paul Sutcliffe Jr.) writes:
>In the referenced article, pat@seradg.Dayton.NCR.COM (Patrick Pesch) writes:
>
>[/usr/lib/mail/execmail] is roughly the equivalent ... of sendmail.
>It decides if the message is for UUCP, MICNET or  local  delivery  and
>invokes  /bin/rmail, /usr/lib/mail/mail.mn or /usr/lib/mail/mail.local
>respectively.

This is all true.  But then Mr. Pesch writes:

>The solution, then, is to inform SMAIL that the local  delivery  agent
>is  /usr/lib/mail/mail.local instead of /bin/mail.  Do this in SMAIL's
>defs.h file.

This is false!  The mail.local program is _not_ a suitable delivery agent:

	1.  Mail.local doesn't understand Micnet addresses ("machine:user")
	    so when you set up Xenix-net your mailer will break.

	2.  Mail.local doesn't do aliasing.  If you therefore let smail do
            your aliasing since execmail is out of the picture, you lose
	    pipe aliases (e.g. rnews: "|rnews").

Compile smail with SENDMAIL undefined, but use execmail as the local
delivery agent.  Just because you _can_ give UUCP mail to execmail doesn't
mean that you _have_ to.  Smail will siphon off all messages to other
machines and invoke "uux" directly, and execmail will only see local mail.

And it's a good idea to change the aliases file from "/usr/lib/aliases" to
something like "/usr/lib/mail/raliases".  There's no reason to start
putting mail files in /usr/lib.

-- 
Chip Salzenberg         "chip@ateng.UUCP"  or  "{uunet,usfvax2}!ateng!chip"
A.T. Engineering        My employer's opinions are not mine, but these are.
   "Gentlemen, your work today has been outstanding.  I intend to recommend
   you all for promotion -- in whatever fleet we end up serving."   - JTK