RFC 784
Mail Transfer Protocol: ISI TOPS20 implementation
RFC 784: Mail Transfer Protocol, ISI TOPS20 Implementation π
Network Working Group β¨ Request for Comments: 784 β¨ S. Sluizer and J. Postel, ISI β¨ July 1981
Okay bestie, the title block tells us everything we need π. It's RFC 784, from the Network Working Group, written by S. Sluizer and J. Postel at ISI in July 1981. There's no category, obsoletes, or updates info in the header, so I'm not making any up π«Ά.
Okay so this memo is about the ISI TOPS20 version of MTP π . We're writing it in BLISS-10 π. It handles the MTP user and server functions over both TCP and NCP transport services, and it gives you interfaces to other mail delivery mechanisms. Iconic π¦
The transport services (NCP, TCP, etc.) are how an MTP sender and an MTP receiver talk to each other πΈ. In the rest of the memo, these communication paths are called channels π§.
Our model is kinda simple ngl π. Mail sources create mail files in user directories. The sources are both user mail composition programs (like Hermes, MM, SNDMSG) and system network mail receiving programs that accept mail from various input channels π¬. A background program processes the mail files and dispatches the mail to various output channels π₯. There's also a user version of the dispatcher, so you can send mail right away (as long as the necessary channel is available) π.
Here's the big glow-up π. To use MTP's multi-recipient feature, the mail is split into two files. The first is a control file. It has the delivery information and a pointer to the second file. The second file holds the mail data (including the RFC 733 header) that gets delivered π .
Why two files? Because the control information has to be changed while the mail is being processed, but the mail data only needs to be read (even though the file is eventually deleted or renamed) π. Say a message goes to different recipients through different channels. If one channel isn't available, the control file has to be changed to mark or delete the recipients the mail already went to, and keep the info for the recipients it hasn't reached yet π. In a future version of the dispatcher, the control information may be moved to a master table in its data area, so output channel use can be scheduled better π.
The dispatcher decides how to send mail to each recipient by checking a table. For each host, the table shows whether it can take mail via (1) MTP on TCP, (2) MTP on NCP, or (3) FTP on NCP (aka the old way) π¦. There's also a separate table for other cases, like delivering to hosts in England through another mail system made by UCL π¬π§β¨.
Sluizer & Postel Page [1]
Here are the individual pieces of this system π§©:
- MTP receiver for TCP.
- MTP receiver for NCP.
- Dispatcher.
- MTP sender for TCP.
- MTP sender for NCP.
- Mail composition programs (MM, HERMES, MSG, SNDMSG, ...).
- User mailbox files.
- Pending Mail files.
- Other Mail sources.
- Other Mail sinks.
- Host Mail Capability table.
- Host special processing tables.
So the plan is this π―. We're building 1 through 5 ourselves π. We hope others adapt 6 to this system (a version of MM has already been adapted at ISI) π«Ά. We're using the existing 7, defining and using 8, providing interfaces for 9 and 10 as requested, and creating and using 11 and 12 πΈ.
Page [2] Sluizer & Postel
Now the picture, because it's giving architecture πΌοΈβ¨:
+-----+ +-----+ +------+ +------+
| MTP | | MTP | | USER | |OTHER |
| TCP | | NCP | | MAIL | |MAIL |
| RCV | | RCV | | PGM | |SOURCE|
+-----+ +-----+ +------+ +------+
| | | |
| | | |
| | | |
v v v v
+----+ +----+ +----+ +----+
| | | | | | | |
Pending +----+ | +----+ | +----+ | +----+ |
Files | |-+ | |-+ | |-+ | |-+
| | | | | | | |
+----+ +----+ +----+ +----+
\ | | /
\ | | /
\ | | /
v v v v
+------------------+ TABLES
| | +----+
| DISPATCHER |<----->| |---+
| | | | |
+------------------+ +----+ |
/ / \ \ +----+
/ / \ \
/ / \ \
v v v v
+-----+ +-----+ +-------+ +-----+
| MTP | | MTP | | LOCAL | |OTHER|
| TCP | | NCP | |MAILBOX| |MAIL |
| SND | | SND | | FILES | |SINK |
+-----+ +-----+ +-------+ +-----+
Quick note π: the current implementation has the dispatcher and the senders for MTP-on-TCP and MTP-on-TCP combined in one program π. (Yes, it's written exactly like that in the original π.)
Sluizer & Postel Page [3]
π¦ where this page comes from
- ietf: rfc784 1981-07
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms