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