[comp.mail.misc] Interactive SMTP over phone lines

merlin@hqda-ai.UUCP (David S. Hayes) (05/05/87)

     The recent traffic about batch smtp has set me to wondering.
Part of the problem with bsmtp is the 'b'.  SMTP is designed to be
an interactive protocol.

     At my site, we have some Symbolics lisp hardware.  These
machines have software for what Symbolics calls the "dialnet" mail
system.  This service works much like UUCP.  The difference is
that the login shell is (the lisp equivalent of) "sendmail -bs".

     We ought to be able to do this with the current BSD sendmail.
I see a mail transport agent.  Sendmail should be told to talk
smtp to the TA.  The TA dials, then just acts as a pass-through.
Of course, we don't get file transfer this way, but it still seems
like a reasonable approach.

     Anyone want to comment?
-- 
David S. Hayes, The Merlin of Avalon	PhoneNet:  (202) 694-6900
UUCP:  *!seismo!sundc!hqda-ai!merlin	ARPA:  merlin%hqda-ai.uucp@brl.arpa

feldman@tymix.UUCP (05/07/87)

In article <351@hqda-ai.UUCP> merlin@hqda-ai.UUCP (David S. Hayes) writes:
>I see a mail transport agent.  Sendmail should be told to talk
>smtp to the TA.  The TA dials, then just acts as a pass-through.

This is exactly what we did in order to get mail to other hosts on
Tymnet which speak SMTP but not TCP.  If a mailer definition is set up
in sendmail.cf with no $u (username) field in the mailer arguments,
sendmail will assume that it's speaking SMTP to the mailer program through
pipes on its stdin and stdout.  (This doesn't seem to be documented anywhere,
I discovered it while perusing the source.)

I wrote a mailer program which builds a Tymnet virtual circuit to the SMTP
server on the requested host and gets out of the way, passing data between
the stdin/stdout pipes and the network circuit.

You would have to do something similar, dialing the phone instead of
building a Tymnet circuit of course.

If you want a copy of the mailer program, let me know and I'll be glad
to send it to you.

	Steve Feldman
	Tymnet McDonnell Douglas
	..!sun!oliveb!tymix!feldman

kyle@xanth.UUCP (kyle jones) (05/07/87)

This certainly will work; I wrote code to do it a few months ago.
The thing had lousy throughput but that was the first communications protocol
I ever wrote; I was happy and amazed that it worked as well as it did.

If someone with more experience with communications protocols were to attack
this, smtp over phone lines could work.

kyle jones   <kyle@xanth.cs.odu.edu>
old dominion university, norfolk, va

rob@philabs.Philips.Com (Rob Robertson) (05/07/87)

In article <351@hqda-ai.UUCP> merlin@hqda-ai.UUCP (David S. Hayes) writes:
>     We ought to be able to do this with the current BSD sendmail.
>I see a mail transport agent.  Sendmail should be told to talk
>smtp to the TA.  The TA dials, then just acts as a pass-through.
>Of course, we don't get file transfer this way, but it still seems
>like a reasonable approach.

>     Anyone want to comment?


The problem is that smtp does not deal with error detection and 
correction with regard to line noise.  


rob
-- 
       william robertson			rob@philabs.philips.com

		"indecision is the key to flexi"ps:@

ken@rochester.ARPA (Ken Yap) (05/08/87)

I'm no mail expert but you can make sendmail talk to stdin and stdout
with /usr/lib/sendmail -bs [-v].

	Ken

bandy@amdcad.AMD.COM (Andy Beals) (05/09/87)

I don't know about you, but the last time I dialed-up a computer,
I got line-noise.  Interactive smtp is nice but you need to have
an error-free datastream between them.  So, anyone for writing a point-to-point
dialup tcp/ip?
-- 
Andrew Scott Beals, {lll-crg,decwrl,allegra}!amdcad!bandy +1 408 749 3683

lel@ida.liu.se (Lennart Lovstrand) (05/11/87)

In article <1209@tymix.UUCP> feldman@tymix.UUCP (Steve Feldman) writes:
> [...]
> Tymnet which speak SMTP but not TCP.  If a mailer definition is set up
> in sendmail.cf with no $u (username) field in the mailer arguments,
> sendmail will assume that it's speaking SMTP to the mailer program through
> pipes on its stdin and stdout.  (This doesn't seem to be documented anywhere,
> I discovered it while perusing the source.)

Hmm, I'm afraid you didn't look too hard.  Both my old BSD4.2 documentation
as well as the BSD4.3 clearly states this.

From section 5.3.6 of sendmail/doc/op.me:
# Finally, an argv template is given as the E field.  It may have
# embedded spaces.  If there is no argv with a $u macro in it, sendmail
# will speak SMTP to the mailer.  If the pathname for this mailer is
# [IPC], the argv should be
# 	IPC $h [ port ]
# where port is the optional port number to connect to.

In response to all those who have written and asked about the enhancements
to sendmail I promised to post earlier: Don't worry, it's coming.  The IDA
Sendmail Enhancement Kit will be released to comp.sources.unix the moment
I have finished the accompanying report and documentation, which should
happen sometime this or next week.  Thanks for your encouragement too, I
never knew the urge was this great for something of its kind.  I hope you
will like it just as much when you get it.

--Lennart
--
Dept of Computer and Information Science, University of Linkoping, Sweden
Internet: Lennart.Lovstrand@IDA.LiU.SE       EAN/X.400: lel@ida.liu.sunet
UUCP: {mcvax,munnari,seismo}!enea!liuida!lel    EARN/BITNET: LEL@SELIUI51
		(The BITNET address may be somewhat flaky)

lyndon@ncc.UUCP (Lyndon Nerenberg) (05/11/87)

> I don't know about you, but the last time I dialed-up a computer,
> I got line-noise.  Interactive smtp is nice but you need to have
> an error-free datastream between them. So, anyone for writing a point-to-point
> dialup tcp/ip?

All fine an well, but how about just wrapping a checksum and sequence
around each line.  E.g.

struct tiny_packet {

		unsigned char checksum;
		unsigned char sequence; /* overkill - % 8 should be fine */
		char line_of_text[];    /* CR/LF terminated */
}

Sure it chokes on 7 bit paths, but you get the idea... It's also
simple enough to be implemented very easily on a micro (a large
win in our case). Use a 7 line window and implied ACKS and away
you go.

david@ms.uky.csnet (David Herron, Resident E-mail Hack) (05/11/87)

welllll...  The idea of doing SMTP over phone lines has been visited
already by the CSnet folk, in the form of SMTP over the PhoneNet protocol.
It is currently in Beta Test.  It runs under MMDF and looks a whole
lot like the normal phone channel.

It does require MMDF and all that baggage.  "that baggage" means a minimum
of 2 megs of binaries and a large database (my dbm file is currently 8
megs, but there's lots of "holes" in that file).  The database can be
smaller if you don't try to know about everything.  I am also unsure of
how easy it would be for "everybody" to be able to get MMDF, and once they
have it be able to configure it.  The easiest way to get MMDF is to get
a copy of the 4.3BSD distribution.

Is it a good idea??

Well, I don't see any compelling reason to stop using UUCP.  It's a nice
flexible transport-level that all are accustomed to using.

I don't see the advantage of doing all the work to get an error-free
channel running into your "sendmail -bs" (or whatever) just so you
can run an interactive form of BSMTP.  :-)

Just as not every site runs MMDF, neither does every site run Sendmail.
It is also sort of difficult to acquire Sendmail.  It is definitely
extremely painful to configure Sendmail (part of the reason we're
running MMDF here is because I couldn't figure out Sendmail well
enough to get it configured).  It is easier to add my BSMTP program
to an smail system (or MMDF, or Sendmail) than it is to add MMDF
or Sendmail to a "nothing" system.

What will end up being done is whatever requires the least work.
I confident of that.  As I see it, the current "least work" for
a binary-only site that has no fancy mailer is to add either smail
or uumail.  Then we can think about using my BSMTP program to make
the world "more intelligent".
-- 
----- David Herron,  cbosgd!ukma!david, david@UKMA.BITNET, david@ms.uky.csnet
----- (also "postmaster", "news", and the Usenet map maintainer for Kentucky.)
----- bsmtp-users@ms.uky.csnet for bsmtp discussion
----- bsmtp-users-request@ms.uky.csnet for administrivia

ken@rochester.ARPA (Ken Yap) (05/11/87)

|All fine an well, but how about just wrapping a checksum and sequence
|around each line.  E.g.

Better still, why not modify a pair of Kermit programs to invoke
sendmail to deliver mail? If my memory isn't playing tricks on me, the
Kermit protocol allows a mail destination to be specified instead of a
file. I know that printer destinations are supported (but hardly
ever implemented) in the protocol.

	Ken

montnaro@sprite.steinmetz (Skip Montanaro) (05/11/87)

In article <16608@amdcad.AMD.COM> bandy@amdcad.AMD.COM (Andy Beals) writes:
>Interactive smtp is nice but you need to have an error-free datastream
>between them.  So, anyone for writing a point-to-point dialup tcp/ip?

Isn't that what SLIP (Serial Line IP) is supposed to do? (Maybe not TCP, but
at least IP.) It is my (perhaps mistaken) understanding that SLIP was used
to connect the research machines at Berkeley before Ethernet was available.
I'm not sure if SLIP is still distributed with any Berkeley distributions,
although it is still around (I've seen references to it on the net). It is
still vaguely referred to in the bk(4) man page (at least on SunOS 3.2):

     This line discipline provides  a  replacement  for  the  tty
     driver tty(4) when high speed output to and especially input
     from another machine is to be transmitted over an  asynchro-
     nous  communications  line.  The discipline was designed for
     use by a (now obsolete) store-and-forward local network run-
     ning over serial lines.

My question is:

     With SLIP in place, how difficult would it be to plop TCP and SMTP on
     top of it? Can SLIP be run over dialups or just point-to-point
     connections? (I've always thought it would be nice to run my backups
     using SLIP over a modem line to the network at work when (and if) I get
     a Sun at home. Just dial up, get the server to NFS mount my disk, and
     dump away. :-) ).
-- 
         Skip|  ARPA:      montanaro@ge-crd.arpa
    Montanaro|  UUCP:      montanaro@desdemona.steinmetz.ge.com
(518)387-7312|  GE DECnet: advax::"montanaro@desdemona.steinmetz.ge.com"

kyle@xanth.UUCP (05/12/87)

Earlier I mentioned that SMTP certainly can be implemented over dial-up
connections, and that it can even be done efficiently.  But why bother?
You're still stuck with bouncing your mail from host to host (unless your site
is fortunate enough to be connected to everyone).

kyle jones   <kyle@xanth.cs.odu.edu>
old dominion university, norfolk, va