WEBVTT

00:00.000 --> 00:12.840
Well, welcome, my apologies. For some reason, I left things that this thing is 6480 and it refuses

00:12.840 --> 00:20.760
to do anything more. So that might become a problem later. We shall see.

00:20.760 --> 00:27.760
What? So first, I wanted to show you this.

00:50.760 --> 00:57.760
Well, this is what we're talking about.

00:57.760 --> 01:08.760
I would like to stress that I did not make this. They used this to sell their product.

01:08.760 --> 01:14.000
Who am I? I'm H.P. von Bram, a board member of the Gado Foundation and a Gado contributor

01:14.000 --> 01:19.760
for the last ten years or so. And I do Gado consulting for a living and I like to play with

01:19.760 --> 01:23.760
old computers in my spare time.

01:23.760 --> 01:29.600
So what is this talk about? This talk is about map two, which stands for message exchange

01:29.600 --> 01:35.600
protocol two from MCI, the company that you just saw the wonderful ad for. The interesting

01:35.600 --> 01:44.760
thing is that it is not SMDB. So what was MCI? MCI was a company that did commercial

01:44.760 --> 01:54.760
email starting in 1983 and they kept running until about 2003. What they did was initially

01:54.760 --> 02:03.760
they had a sort of an alternative to things like talax and so I'm a little bit discombobulated

02:03.760 --> 02:10.080
for everything now working. Talax and telegrams and such. I had a cheaper way of doing that

02:10.080 --> 02:16.080
essentially. I worked as you paid them five dollars a month in 1983 money, so that is definitely

02:16.080 --> 02:24.080
a lot more money than it is today. And that would let you send five messages a month with

02:24.080 --> 02:30.080
some additional costs if you wanted to send more and more messages. And it sounds insane,

02:30.080 --> 02:36.080
but at the time the alternative was to send a telegram where you paid by the word, which

02:36.080 --> 02:43.840
they didn't charge you for. Another thing you could do was you could dial in to the MCI

02:43.840 --> 02:50.320
mail system and send a physical letter to someone and how that worked was they would send the

02:50.320 --> 02:56.960
message through their network to the closest laser printer that was available, printed out and

02:56.960 --> 03:00.960
then mail it to the recipient, meaning that you could send the message from one side of the

03:01.040 --> 03:08.400
US to the other side of the US. And at the time I ridiculously short amount of time. Also at

03:08.400 --> 03:12.640
the time having a laser printer was really expensive. So there were people that would just send

03:12.640 --> 03:17.680
themselves documents that I wanted to wanted to need it to be printed. And it was cheaper to

03:17.680 --> 03:24.240
just use your MCI thing to just have laser laser printed copies of their documents mail to you.

03:24.240 --> 03:34.320
So originally it was a BBS-like system and originally this is a thing that changed pretty

03:34.320 --> 03:40.640
quickly. You didn't pay to dial up because the thinking was you paid your $5. You're going to

03:40.640 --> 03:46.880
be dialing in to the service to send or receive your five messages and that was it. But people

03:46.880 --> 03:53.840
found that you could use the BBS-dyline server because I didn't charge you for storing

03:53.840 --> 03:58.320
draft emails. So people would just use them as a word processor so that he didn't have to buy

03:58.320 --> 04:06.720
a word processor. So that is when the free dial in ended and it's stopping. So you could send

04:06.720 --> 04:13.120
your electronic email via anything at the time that basically lets you send any messages at all.

04:13.120 --> 04:18.480
So if I had a terminal to another person with a terminal for you to post telegram facts,

04:18.480 --> 04:27.200
Deluxe X400 computer and eventually even other internet users. And the internet was really a

04:27.200 --> 04:34.400
very different place at the time. So this was a very proud message that was sent to the periodic

04:34.560 --> 04:45.360
electronic newsletter that was entirely dedicated to MCI mail and they were very proudly telling

04:45.360 --> 04:54.080
you that it switched their connection to computer users by the more standardized X400 interface.

04:54.080 --> 05:00.880
You know the one that we still use today to send email. So why am I even talking about this?

05:00.880 --> 05:06.080
Well first of all just seeing old software working is fun at least I think so. I guess all of you

05:06.080 --> 05:10.160
think so as well because although I should probably wouldn't be in this room. And the other thing

05:10.160 --> 05:17.040
is it's just a completely different way of dealing with emails compared to what we do today. So

05:17.040 --> 05:24.960
first I'm going to give you a very short graphic here about how email works today. So if you send an

05:24.960 --> 05:29.520
email you're email client assuming you're still using email client or realize that a lot of people

05:29.520 --> 05:33.920
will only be using web mail but let's pretend for a moment you're using a native email client.

05:35.200 --> 05:40.160
You type your email in your email client. Your email client makes a connection to an email server.

05:40.800 --> 05:46.240
It uses the simple message simple mail of message transfer protocol. I forget which one of the two it is.

05:46.240 --> 05:55.360
Probably should have remembered that. Send the email to your ISP's SMTP server. Your ISP's SMTP server

05:55.360 --> 06:02.560
will call the ISP's SMTP server of the person that has your mailbox, the target mailbox and then

06:03.200 --> 06:09.120
something else happens whereas the receiver doesn't get their email via the simple mail transfer

06:09.440 --> 06:16.720
protocol that via I-MAP or pop 3. The post office protocol or the mail application block.

06:22.000 --> 06:28.400
That is not how MEP2 worked. So in the bottom left you see a

06:29.680 --> 06:34.240
if you send a message to between two people who are both subscribed to MCI mail.

06:34.960 --> 06:43.120
Send their message to the server using MAP2 and the receiver also uses MEP2. So there is now

06:43.120 --> 06:49.440
distinction between sending and receiving messages between clients and servers with a map2 protocol.

06:50.160 --> 07:00.240
If you wanted to talk to other servers, the map2 servers could talk SMTP to internet users later

07:00.240 --> 07:06.640
when that became a thing or they could talk to so-called REM servers, remote email systems.

07:06.640 --> 07:14.880
We'll talk about that later using different protocols. So the interesting thing here really

07:15.520 --> 07:24.800
is just that there is no defiant role in an MEP2 implementation. So every client has to be a full

07:24.800 --> 07:30.400
server because the only way to send a message is by becoming a server and sending a message to

07:30.400 --> 07:38.960
the client. I'll try to go a little bit faster. MCI was only ever accessible for your dial-up,

07:38.960 --> 07:45.120
so there was never a TCP app interface to it at all. Although they did for some reason have a

07:45.120 --> 07:49.200
web client at some point so you could throw away the way to get your email without dialing up

07:49.200 --> 07:54.320
what's via this web interface. And it expects a connection to only be 7 bit clean, which is really

07:54.320 --> 08:02.560
interesting. So all of the packets expect to only ever send 7 bit ASCII and everything else needs

08:02.560 --> 08:11.040
to be escaped. Which is a very interesting thing. So how does a basic MEP2 session work? The server sends

08:11.040 --> 08:16.480
a reply in it to the client, even though never got to a risk leave. The client can do something

08:16.480 --> 08:25.120
like scan a folder inbox. See if there's any messages. Server replies with a reply scan. The server

08:25.120 --> 08:30.640
then a client says turn in this case that means out there are messages for me. Turn means reverse

08:30.640 --> 08:36.720
the client and server roles. So in this case the client which starts off being the server says,

08:36.720 --> 08:43.520
okay, now I want to be declining now. Then you see the server creates a message and talks

08:44.480 --> 08:50.000
and the interesting thing is that if the client did have the message to send this thing would

08:50.000 --> 08:54.640
look exactly the same except that the turn would come after the client had sent the message using

08:54.640 --> 09:03.200
the exactly the same protocol. So this is another short message example. So for instance if the

09:03.200 --> 09:10.800
client asks what messages are in my inbox and there aren't this is the kind of the message that

09:10.880 --> 09:18.240
would get sent back and forth. The first message that the client that a server receives

09:18.240 --> 09:26.080
is this in this case reply in it. It's a very, it's a very friendly protocol. Every PDU at the

09:26.080 --> 09:30.240
top will always say this is successful or not successful in plain to experience very friendly.

09:32.640 --> 09:39.200
See, this is also a very interesting feature and this is the thing where it really kind of

09:39.200 --> 09:47.280
the parts from what we expect the message service to be now. So every subscriber to MCI mail is essentially

09:47.280 --> 09:53.040
part of a global address book and you can just use the same protocol to see who is behind this

09:53.040 --> 09:59.120
address. So in this case we tried to send an email to just this name so no address or anything

09:59.840 --> 10:05.920
but the MCI mail server did not have an account by this name. And here we tried to send an email

10:05.920 --> 10:11.760
to someone just called Jay Smith and turns out we have more than one Jay Smith persons we have.

10:11.760 --> 10:18.400
And here we have someone just this number and the mail server will happily just resolve this number

10:18.400 --> 10:24.240
for you. So there's not really any anonymity in this. If you give someone your email address or your

10:24.240 --> 10:32.800
MCI number then you've also given them where you work where you live etc. So why did I learn all of this?

10:32.800 --> 10:39.840
Well, the only way to reverse engine or anything is spiked obviously. I was looking at MCI

10:39.840 --> 10:45.520
mail because of the Microsoft Bob mail clients. Why I was looking into that you'll have to see

10:45.520 --> 10:50.640
me other talk yesterday. And somebody was basically trying to scan people to giving them money to

10:50.640 --> 10:58.160
get the MCI to get the mail server clients in Microsoft Bob working again and I was like how hard

10:58.320 --> 11:05.200
can that be two years ago. So I wrote a replacement server because you know come to

11:05.200 --> 11:09.600
come to have this situation going on people not using the Microsoft Bob mail clients terrible thing.

11:11.840 --> 11:16.880
So one of the interesting thing is because the client and the server are the same thing

11:18.000 --> 11:22.080
figuring out what the client and the server expect is relatively straightforward because if you can

11:22.080 --> 11:27.520
reverse engineer clients you've basically seen most of the things that the server can do as well.

11:27.600 --> 11:33.200
The only real difference with the client and the server is that the server so like a normal client will

11:33.200 --> 11:39.840
not reply to a request for what is in my inbox because the client doesn't have one. It everything

11:39.840 --> 11:46.880
else is basically the same. And when I got quite far in reverse engineering it I ended up actually

11:46.880 --> 11:53.680
getting a copy of the official spec from about 92 from someone who used to work there. They actually

11:53.680 --> 12:00.160
did like a new revision of the spec to get rid of some of the names that they had in their official

12:00.160 --> 12:07.200
spec but yeah it was very fun. But I wrote it in Rust and you know when someone uses

12:07.200 --> 12:16.320
Rust because they will tell you. And I will try to see if the demo is going to work and this set up.

12:17.280 --> 12:24.320
I'm somewhat skeptical but we shall give it a go. That's it. This is even going to fit.

12:30.800 --> 12:34.320
Yeah. Well that's a no.

12:47.200 --> 13:00.480
This is the Windows 10 client in 64480. Let's see. See if this will do anything.

13:09.600 --> 13:15.440
Thank you. Thank you. Yeah this is this is a very visual medium

13:17.280 --> 13:23.280
and let's see if the DOS clients will work. I got this is terrible.

13:24.800 --> 13:31.520
That didn't sleep well this is how you want to this is the most you will ever want to see if

13:31.520 --> 13:38.480
from Windows any way. So I guess I guess that's okay. Let's see if my DOS box will start.

13:48.800 --> 13:55.840
Right. I think maybe the demo is going to have to

13:55.840 --> 14:06.560
where I'm just going to have to believe me that it works I guess. Let's see. All right can we go?

14:12.560 --> 14:13.600
Nope. No.

14:20.000 --> 14:20.800
This is fun.

14:26.560 --> 14:33.920
Okay. You think this would be the worst talk I've ever given but it's really not.

14:38.480 --> 14:41.120
I'm going to let's see if this will do this come back now.

14:41.120 --> 14:58.480
Yeah okay well nothing works anymore. I got to quit this. It's something maybe.

15:01.040 --> 15:03.040
Let's see if I can get back to the

15:11.600 --> 15:21.600
this work. No. Okay well I guess that's the end of my time.

15:28.960 --> 15:36.640
You can go to see if you want to try this if you ever want to see this there you can sign up

15:36.640 --> 15:43.680
for an account for this thing at MCIMail.net which I was going to show you but if you ever want to try

15:43.680 --> 15:46.400
this yourself okay.

