Yes, the Tops-20 mail transport system is designed to do exactly what
your RSX mailer does. Some history:
At the time of the DECnet SMTP work, we were getting multiple 20's (we
got up to six of them), and needed to send email between them. The vast
majority of the systems on CCnet at the time were 20's, CMU had five of
them and Case Western had at least one.
Another consideration was that you couldn't (directly) use the ARPAnet
(NCP) or early Internet (TCP/IP) unless you had some sort of a DoD
contract. As a result, many 20's were running versions without ARPAnet
(or Internet) support to save on memory. So you could route email, but
you couldn't directly send it from certain hosts.
The most mature, robust and featureful email system at that time was
SMTP. To this day, a great deal of infrastructure uses a variant of it,
ESMTP. The sole VAX on CCnet at the time only spoke MAIL11 and, after
some analysis, the feeling was that it was lacking certain functionality
as a platform, although at this juncture, I don't recall what that would
have been and I'm wondering if some of it was just plain NIH, anyway.
There was blistering, virulent ill-will going around.
Having the 20 speak MAIL11 would have required an entirely new component
to crack the protocol and convert everything and, at the time, there was
no local knowledge to do this nor any to be found on any ARPA/Internet host.
Enhancing the 20's email system to handle DECnet was straightforward
enough. It was changed to use primary input (.PRIIN) and output
(.PRIOU) instead of handling the JFN directly. These are special JFN's
to refer to the user's logged in terminal, so they are equivalent to
Unix's STDIN and STDOUT, respectively. A small server (SMTJFN) was
written to catch the incoming Internet email requests, fork a MAISER and
perform an SPJFN% to change its console. All that had to happen was
another small server for DECnet, which was also done (SMTDCN).
At some point, the Tops-20 MAIL11 component was written, VMAIL.MAC.
What changed everything was DNS, which came along very late in the
game. I don't recall that the last DEC release of Tops-20 has DNS.
PANDA has the MIT implementation, CHIVES and another module was written
called HSTNAM to handle the different transports. This is what uses that
.#Internet suffix, which I've never been particularly fond of. As a
matter of fact, I think it is, dare I say it, kind of a hack.
The obvious place to put the hosts' transport capabilities is in a
resource record (RR) in CHIVES, which already knows about CHAOS. Well,
at seemed obvious... Except, I couldn't find any documentation on it at
all and I stared at the C source code for days. I was shocked to not
even be able to find the places where it parsed the value. I couldn't
even figure out what a RR should look like. I mean, I've written entire
embedded file systems in C, it's not like I don't know the language
(which I've used for going on five decades, now)...
Another problem was that PANDA /really/ expects a host to be in the DNS
and if it doesn't find it, it waits about three minutes before CHIVES
times out the GTDOM% JSYS and HSTNAM falls back to using the pre-DNS
JSYS interface (GTHST%) to look in SYSTEM:HOSTS.TXT. This is the inverse
of what Windows and Unix do, which is check the hosts file, /first/. I
spoke to MRC about it several times but got nowhere. My options to get
fast email were: set up my own DNS server and use that, come up with and
document RR's or do some coding. I eventually tracked down the CHIVES
author and found out enough to set up my own local RR's.
But this all seemed too complex, too arcane and just plain cruel to a
beginning hobbyist. So, since I couldn't do it the 'right way', I fixed
it by doing what I did know how to do:
1. I changed HSTNAM to prefer SYSTEM:HOSTS.TXT (GTHST%) over CHIVES
(GTDOM%) for Internet host name resolution,
2. I enhanced Tops-20 to return some additional information for .NDVFY
(creating the .NDVFX function),
3. I changed HSTNAM to prefer NODE% .NDVFX name resolution over CHIVES,
4. I changed HSTNAM to prefer DECnet transport to TCP/IP, and
5. Made some other modifications to handle simple pre-DNS addresses, so
I could type SLOGIN@VENTI2 instead of
SLOGIN(a)VENTI2.something.somethingelse.mobettasomethingelse.#Internet.
I mean, who wants to be bothered with all that baloney, even if it is
right? Yech!! And that three minute wait which was driving me nucking
futz was gone.
It triggered a bug in MMAILR which I needed to modify the debugger to
fix and while I've fixed DDT, I haven't finished up some other things to
turn back to MMAILR. I'm getting closer, though.
I can't send Internet email from a 20 anymore, all my ISP's want ESMTP
because of the spam 'problem'. So it goes...
------------------------------------------------------------------------
On 9/30/23 6:59 PM, Johnny Billquist wrote:
Thing is - nothing else does SMTP over DECnet, so that feature is not
very useful.
But for the rest of it, sounds like T20 would be possible to use the
same way I use my mail daemon under RSX.
But notation is a bit easier with the RSX host involved. Sending a
mail from anywhere on HECnet to anywhere on the internet:
MIM::user@host.domain
Sending mail from anywhere on the Internet to a host on DEChet:
node::name@mim.stupi.net
But with all that said, unfortunately Google is broken, and you cannot
send mails from nodes on HECnet to any gmail account. Google refuses
mails where the from-address have '::' in the username. And mails will
have a from address of the form "node::user"@mim.stupi.net
Johnny
> ------------------------------------------------------------------------
>
> On 2023-09-30 19:55, Thomas DeBellis wrote:
>
> Tops-20 will do both MAIL11 and SMTP over DECnet (which I use every
> day). It will also route email between the two mail transport types
> as well as route SMTP from DECnet to Internet and the other
> transports it can use. Columbia routed a lot of email this way.
>
> It recognizes what to do based on the address specification. If you
> do FOO(a)BAR.#DECnet, then it will use SMTP. If you do BAR::FOO, then
> it will use MAIL11. It will also route Internet mail to DECnet;
> let's suppose you have user FOO on VMS DECnet host BAR, which has
> connectivity to Tops-20 Internet host BAZ, domain EDU. To send email
> to from an Internet host, you'd specify
> "BAR::FOO"@BAZ.EDU.#Internet"., or something along those lines (I
> forget). Same thing with BITnet and (somehow) with Unix "!" (Bang)
> addresses.
>
> The modules which do this are MAISER, MMAILR and HSTNAM. Locally,
> there was a split at some point to modules name DMAISER (or some
> such) for the DECnet related functionality, part of which was first
> done at Columbia. Not all that code made it back into the PANDA
> sources and the monitor needed some minor enhancements to provide
> some information that HSTNAM wanted.
>
> It's on my list of things to finish debugging, one problem being that
> doing so tickled a limitation in the debugger (DDT) that I had to
> fix. Typical rabbit hole.
>> ------------------------------------------------------------------------
>> On 9/30/23 12:54 PM, Johnny Billquist wrote:
>>
>> I should probably mention that it's possible to get mails both over
>> HECnet, using DECnet MAIL-11, and Internet, using SMTP. (I do like
>> to promote the silly software that I've written, including that mail
>> package for RSX that talks both, and acts as a gateway between them...)
>>
>> Johnny
>>> ------------------------------------------------------------------------
>>> On 2023-09-30 17:59, Wilm Boerhout wrote:
>>>
>>> Thanks Johnny! Sign me up for the updates mail please. It really
>>> simplifies my update scripts.