Path: utzoo!utgpu!water!watmath!clyde!att!mtunx!osu-cis!tut.cis.ohio-state.edu!mailrus!ames!pasteur!agate!ig!uwmcsd1!leah!itsgw!steinmetz!uunet!ncc!lyndon From: lyndon@ncc.Nexus.CA (Lyndon Nerenberg) Newsgroups: comp.mail.uucp Subject: Re: BSMTP - Its time has come Summary: The implementation isn't that scary! Message-ID: <10268@ncc.Nexus.CA> Date: 9 Jun 88 05:34:28 GMT References: <14605@uunet.UU.NET> <10127@mcdchg.UUCP> <10266@ncc.Nexus.CA> <1787@van-bc.UUCP> <10267@ncc.Nexus.CA> <9593@g.ms.uky.edu> Reply-To: lyndon@ncc.nexus.ca (Lyndon Nerenberg) Organization: Nexus Computing Inc. Lines: 100 In article <9593@g.ms.uky.edu> david@ms.uky.edu (David Herron -- One of the vertebrae) writes: [ ... ] >Queueing. To take advantage of the batching in bsmtp you want to >have as many mail messages in the batch as you can manage. But >neither smail or sendmail will handle more than one message at >a time, will they? (My memory on them is a little poor, but I >don't remember anything for handling more than one message at >any one moment). In this case, smail has a lot more brains than sendmail - see my comments later... >Under MMDF I would write a channel program derived from the SMTP >channel. It'd look through the queue, pick up all the messages >headed for a particular host, bundle them up and send them out. >I'd also schedule the daemon to run (say) once an hour to increase >the chances of having >1 message in a bundle. Exactly the plan I have [ see later... ] >Under sendmail or smail how would one have a good chance of having >more than one message per bundle? If you end up having only one message >per bundle then there's no decrease in the number of files sent, >and even a loss because of more data being sent -- the BSMTP wrapper. This is a big problem with (our) sendmail right now, anyway. The solution I see is to redefine the mailers into sendmail classes based on the "transport" layer. What this means is we have to massage the output from pathalias a bit. As an example, about 80% of our mail wants to route via uunet. Unfortunately, sendmail doesn't know this. It assumes anything not on the Ethernet should get punted to a "relay" host. What I have in mind is to take the output from pathalias and sub-divide it, based on who the first host in the path is. If, after generating my paths database, I extract all the paths that route via uunet as the first hop, I can take those site names and place them into a file such that sendmail can understand that they are a class unto themselves: FB/usr/local/lib/uunet-bsmtp Any host found in this database would get routed to the "bsmtp" mailer, in preference to the generic "smail" mailer. The bsmtp mailer would queue into a directory which would be batched up just prior to my hourly UUCP polling rounds. Obviously you would need a seperate class for each site you talk to via bsmtp... (even *I* don't have that many direct uucp/mail links (yet :-) ) The second option is to build a table that tells smail how to get to the first host in its route. This would save a lot of CPU cycles in comparison to the first solution. >Routing. Yes, you can say that uunet does BSMTP (assuming that >you get Rick to implement it). Now, what do you do after that? >You'll have other sites with BSMTP capabilities also. Other >places might want to send BSMTP to remote sites. How do you >tell the world that you can do BSMTP and what domains you're >willing to handle gatewaying? I'm not saying this very well >so I hope I'm getting through anyway. Who you route to, and how you get the mail there, isn't something fred@foo shouldn't have to worry about. Depending on the phase of the moon, I might decide to route via uux, tcp, bsmtp, or tin can and wax string. Once the message is on my box, all I have to do is get it to the next node as specified in the envelope (without munging the header info). Whether it's via bsmtp is not important. The routing information is already provided by the Internet nameservers, and the UUCP map info. >I'm curious about something. There's no error recovery in the >BSMTP program. Has anybody had any problems because of this? >Should there be error recovery? This isn't any different from the current uux batching system. > [ ... ] What should the arguments >for obsmtp be? At the moment I'm using: > > obsmtp [ -f from ] [ -h local-host ] [ -t to ] ... [ -c cmd ] I think all you could reasonably pass along outside of the envelope context is the sending hosts name, and the transport protocol. >But don't really see how to make that do multiple things properly. >My immediate application can't use multiple things in one batch >because I don't badly need it for sending mail across BITNET. >Besides, I'm not sure if the Crosswell mailer will decode a bsmtp >file that has multiple messages -- it ought to. So let's fix Crosswell :-) All we're doing is cloning bnews' sendbatch. [ Call me when you get your Trailblazers, Dave ] -- {alberta,utzoo,uunet}!ncc!lyndon lyndon@Nexus.CA