[comp.mail.sendmail] smail 3.1.18 and transports

jamesd@techbook.com (James Deibele) (02/10/91)

I've been beating what brains I have against the docs for smail and
am having trouble figuring out how to configure it to allow another method
of transport.  I am running Waffle, a UNIX BBS program that will send RFC
standard messages out.  Unfortunately, to get mail into Waffle, you need to
run a special program called "mailin" which it provides.  The author suggests
providing an alias for each user, but with a lot of callers this quickly 
becomes impossible to maintain.  

I would like to define that mail to a specific machine (in this case it's
the "virtual machine" "wiffle" in the techbook.com domain --- there isn't
a real machine named wiffle, but this serves to differentiate between 
user "jamesd@techbook.com" who may not be the same person who uses the BBS
program with a login of jamesd) will be sent with a transport mechanism of 
"mailin" instead of the default uux.  So mail to "jamesd@wiffle.techbook.com" 
would be sent as "mailin jamesd".  I'm having trouble getting this to work 
exactly right.  I'm hoping that someone can help provide a valid setup for
such a thing.

Has anyone done such a thing?  Even if it's not exactly the same as this, 
I'd be interested in hearing how people use alternative transports.  Or if
I'm completely on the wrong track, and there's an easier way of doing this,
I'd like to know that too.

Thanks.

les@chinet.chi.il.us (Leslie Mikesell) (02/14/91)

In article <1991Feb10.013250.28368@techbook.com> jamesd@techbook.com (James Deibele) writes:
>
>I've been beating what brains I have against the docs for smail and
>am having trouble figuring out how to configure it to allow another method
>of transport.  I am running Waffle, a UNIX BBS program that will send RFC
>standard messages out.  Unfortunately, to get mail into Waffle, you need to
>run a special program called "mailin" which it provides.  The author suggests
>providing an alias for each user, but with a lot of callers this quickly 
>becomes impossible to maintain.  

>I would like to define that mail to a specific machine (in this case it's
>the "virtual machine" "wiffle" in the techbook.com domain --- there isn't
>a real machine named wiffle, but this serves to differentiate between 
>user "jamesd@techbook.com" who may not be the same person who uses the BBS
>program with a login of jamesd) will be sent with a transport mechanism of 
>"mailin" instead of the default uux.  So mail to "jamesd@wiffle.techbook.com" 
>would be sent as "mailin jamesd". 

It's easy to define your own transports in smail3 and if waffle's mail
looks anything at all like unix mailboxes and has a similar locking
scheme you can probably make smail deliver directly instead of running
another program.   You would do this by modifying the "transports"
file to make a variation of the "local" transport (copy the entry,
and give it a different name, making whatever changes would be needed
for the waffle format.)

If you want to pipe to another program instead, the "uux" driver would
be a good starting point.  I made a generic shell script driver so
I could add fake hosts and gateway functions easily.  It just pipes
to a shell script with the same name as the host in a "scripts"
directory giving the recipient as the argument.

script: driver = pipe
        from;
        cmd = "/bin/sh $lib_dir/scripts/$host $user",
        umask = 0022,
        pipe_as_sender

After setting up the transport, you need to arrange for the transport to be
used for the specific host(s).  You could set up a new router to find them
and assign this as the transport.  I just modified the standard "paths"
router entry to say:
   method = uucp
instead of:
   transport = uux
and created the methods/uucp file with some "host transport" entries.
Now I can add any name to the paths file, generally specifying itself
as the destination: e.g. "wiffle wiffle!%s".  Then an entry in
methods/uucp like "wiffle script" would send this to the script
transport, which would in turn pipe to the scripts/wiffle shell
script.

Les Mikesell
  les@chinet.chi.il.us