The way things were…. MS Mail & OS/2

So I’ve been spending the last day fighting some Active directory, and Exchange 2010 fun. I suppose if I wanted to be all new and exciting I’d document that journey. Maybe I will. But after all that fun, it had me remembering the way things used to be done, and really wondering how much further we’ve either come, or maybe…. not come.

So for the sake of it, I’m going to build out a postoffice, and connect the bastardchild of IBM & Microsoft, OS/2 to it!

How you gonna do it? PS/2 it!


So first I need to establish a server to run my postoffice on. The cool thing about MS Mail is that it could run on all kinds of things, from Novell Netware, Lan Manager, or any other file sharing network out there that MS-DOS’s lock could work with. Originally the product was for Macintoshes, before Microsoft bought it! The bad part, buried in there is that there isn’t a dedicated IPC like server, it really is a flat, shared, database. A bunch of files.

Just like MS-Access.

Really.

As luck would have it, there is a copy of MS Mail 3.5 on one of my Exchange CD’s so looking at the date, Windows NT was out at the time. So I figured for the sake of the experiment, I’d use Windows NT 3.51 . While I’ve used Windows NT 3.1 a bunch, I figured I’d try 3.51 . 3.51 came to us at a time of mass transition, when everything was going forward to Chicago (Windows 95), and the old program manager/presentation manager world was going to finally slip away.

Looking back it’s so archaic, it’s hard to believe that anyone thought progman/fileman were good ideas.

I also wanted to use Microsoft OS/2 1.3 however installing the network client causes it to trap. It does work on real hardware but that wouldn’t be quite as virtual as I wanted. Another wrench is that I’m on my Sprint access card waiting for something, and if I try to do some fun networking it disconnects me.

However I do have a workaround for Sprint’s lameness. You see “SmartView” isn’t all that smart, and thankfully it doesn’t care about interfaces *without* TCP/IP. So we take a loopback network adapter, and *ONLY* bind the Virtual PC protocol to it, by unclicking everything else..

And now we can connect our VM’s to this loopback interface. Then we could, say install an OpenBSD firewall VM that has 2 NIC’s one configured for usermode NAT, and the other on that LoopBack interface. We can now VPN to our hearts content, and even have a virtual LAN. Hell I bet you could even connect a physical Ethernet, connect Virtual PC to that as well, and plug that into a WAP. I hate it when stupid software tries to limit us, but you know… There is always a way around.

So getting back to the experiment at hand, I setup Virtual PC 2007 sp1 (making sure to tag it to a single core, imagecfg doesn’t work for some reason) and I disabled the hardware virtualization. I know OS/2 does some weird stuff with it’s LDT that most things cannot dodge, and it seems that NT 3.51 doesn’t play nice either. But no problem, luckily we can disable it.

I installed Windows NT 3.51 by first generating the 3 needed boot floppies to kick off the install. While IDE CD-ROM’s are supported by NT 3.5 & 3.51, they El-torrio boot method is not, so you need to make the 3 diskettes under MS-DOS if you’ve lost them (WINNT /OX) then you can boot off of those, and install. I setup a 2GB IDE disk, and partitioned it 512 (NTFS for NT) for C, 256 for E (FAT to swap) and finally a 1.2GB F drive to install the post office to.

Yes, the installer really is MS-DOS based. So you could run this thing on anything modern today… I would imagine even the ‘share’ hack for DOSBox could work.

Naturally we’ll create a new post office.

As I had mentioned above, I’m going to store mine on the F: drive. Don’t forget that you end up sharing out the data directory, and everyone maps it to the M: drive… If you install to the M: drive bad things happen as it expects the mail directories to be in the root… Although I guess you could just slam it in the root, but it seems… wrong.

I’ll call my post office, POSTOFFICE for the theme.

And the corporation may as well be any given MEGACORP. This was semi popular in small corporations. But it being based on fileshares meant it didn’t scale all that well. You could use special MTA’s (Mail Transfer Agents) to transmit mail from one post office to another.. We’ll get into that later.

I’m going to install with MS sharing hooks… But look a MS product that supports NetWare! Embrace, Extend & Extinguish!

I’m going to install the admin tools & agents. I don’t plan on using a modem, so scratch that!

Let’s keep the admin tools away from the users!

And let’s support MS-DOS, Windows 3.0 & OS/2. That’s right the OS/2 / Windows option is the same, that is because of WLO. This makes this one of the handful of things that shipped with WLO, (Windows Libraries for OS/2. It is a ‘port’ of the Windows 3.0 API to OS/2 as an underpinning. This was the foundation of porting Windows to NT, into Win32. Or at least that is what showstopper mentions.)

And deploy the clients to the drive that I’ll share for mail.

Everything looks good, so let’s go!

Files are copying….

And we are done!

And for the heck of it, I’m going to install the big exciting thing for Windows NT at this point, the Microsoft Mail Multitasking MTA. And it was a big deal at the time, because, naturally almost *NONE* of the other agents were multitasking (ie supported OS/2 in OS/2 mode). In fact it wasn’t un common for people to try running this stuff on Windows/386 or Windows 3.0 / 3.1 in enhanced mode with multiple MS-DOS VM’s. It was not a thing of beauty and stability. And don’t forget prior to OS/2 2.0, OS/2 could only run a single MS-DOS session, and only when it was in the foreground.

Kicking off the install.

Point it towards the mail directory.

By default the admin account it ‘admin’ and the password is ‘password’. We haven’t had a chance to change it, but those are the defaults.

I’m going to put the agent in the mailexe directory. It creates sub directories so it’s no big deal.

This isn’t a preconfigured store, so overwrite it, I don’t care.

Files copy…

Pick a group…

And we are done!

So now I’ve gone over how Sprint’s modem access is limited, and presented a way using VM’s to get around it. It’s really needed if you want to use a VPN (Virtual private network) so it is relevant to other people. Then I’ve installed Windows NT 3.51, and MS Mail 3.5 along with the MMTA. This is getting long, but in part two, I’ll setup OS/2 2.0 on Virtual PC. In part three I’ll get the network working along with some information on running MS Mail 3.5 on OS/2.

17 thoughts on “The way things were…. MS Mail & OS/2

  1. Never tried it… Can't say I've had a burning need to but there is someone in Italy that would probably be up to it..

  2. Most people don’t realize that Microsoft MAIL only supported internal email, not external internet email.

    I worked on a client in 2016 that was getting away from M$FT MAIL. I suggested using a SSL secured XMPP server locally hosted, but I left that position before I found out what they did.

    • Public email wasn’t a thing back then. You couldn’t just buy a domain, or just hook up, it was all so guarded back then. X400 was the popular way to exchange emails and it was not only crazy expensive but almost always required custom connectors.

      Opening the internet changed all this, and it made tcpip the defacto protocol (remember that in the pc world we were mostly IPX/SPX). We are lucky that not only did Bill Joy’s tcpip rule the 80s, but Vint chose to use a 32bit word for the address space, creating a ridiculously large network. Although we are already at the edge of exhaustion

      In the end, open standards and free software ruled them all, which meant Unix and BSD Tcpip, along with sendmail.

  3. Hi. Say *some* noobie forgot the admin password, what to do? There’s no option to recover, set a new one, or burn all config and start from scratch. Thanks.

      • Just doing it for fun in my virtual network 🙂

        I remember creating only one user, and that’s the one with the missing password.

        Already tried admin/admin but it seems this default user do not exist.

        Thanks.

        • I know its a PITA to save/backup but as far as I know you’d need something like ‘john the ripper’ source and an API to login and let it run wild to crack the password.

          itd been so long since I did an install but I used to write the passwords on a sticker and put them insdide the case of the PDC. these days I use a password manager. I can’t remember them all or have strong/unique so I let the password manager do it for me. 😐

          • Solved by recreating the postoffice. Good not to be a production system 🙂

            Nice trick hiding the pwd’s inside the case 🙂 But I’m sure the case had some phisical protection right?

            Oh yeah, these days I use keepassX. Excelent program.

          • yeah sometimes the easy way out is just to back it up and nuke it. Thankfully it had nothing important but I always make silly passwords of password or save it in a file on the root of the disk to be found later… not that I’ve ever built virtual LAN’s and locked myself out.. . Also watchout for those password expirations!

  4. Hi. Wow. This is kind of hilarious 😀

    Former Microsoft Mail developer here. How y’doin’? Got here because I was trying to find out if anyone had digitised and uploaded the administration manual for the MMTA anywhere yet and found you.

    First: Microsoft Mail for Macintosh was a different product entirely to Microsoft Mail for PC Networks, which is what you’re installing. They don’t share any code base or ancestry at all; one did not become the other. To be fair, the name confusion was SUPER annoying then, too. Mail for PC Networks was originally Courier Mail, out of Vancouver, BC, which became Workgroup Canada, to which I was attached for most of this time.

    I never worked on the Mac product. Microsoft Mail for PC Networks, where I did work, _did_ have a Macintosh client, though not a very good one; the nice one that shipped for Windows and OS/2 _almost_ shipped for Macintosh, but got cut for time when 3.0 was so very, very late out the door.

    (And even then, it shipped over my dead body. I told GregCr that the MTA wasn’t stable and I meant it and I was right and yelled at him in public when he signed off on it. I was so very right that I got to set the MTBF goals for 3.2. They were… much higher.)

    Secondly: Justin’s not just wrong, he’s _very_ wrong. While yes, the MTA and MMTA themselves only talked to Microsoft Mail for PC Network server points, we had _the_ biggest gateway set of anyone out there by far – we talked to _everybody_, including X.25/X.400 and shit nobody remembers like SNADS. And our Mail 3.0 (“It’s Better Than Being Killed With a Forklift”) SMTP gateway was flat out the best in the world amongst PC-LAN email systems. It wasn’t just us saying that either, it was the press. They _couldn’t_ knock it over, and they tried. It was maybe the single most bulletproof product Microsoft shipped in the 90s and I’m proud to have been a part of the team making it that way.

    Third: we shipped the last new OS/2 code at Microsoft, specifically in the form of both the client you mentioned and the MMTA for OS/2, first shipped with Mail 3.2 (“And this time, it works!”), then again with 3.2a (“And this time, we mean it!”). That was an actual port of the MTA, a new product for OS/2 specifically, and we shipped it with a copy of Microsoft OS/2 1.31 to run it on. And while we did like to fuck around with team slogans (see in parentheses above – it was a very bitter group in a lot of ways xD ), 3.2 MTA actually was pretty solid – it was reasonable even on DOS. Which gets us to:

    Fourth: Mail 3.5 (“Desperately Clinging to Market Share Until Exchange Can Get Its Ship Together”) is hilarious because the “Windows NT” MMTA you’d just installed before making this post? It’s _just_ the 3.2a OS/2 MMTA running under NT’s 16-bit OS/2 subsystem inside an NT services wrapper. With a bunch more bug fixes, of course, mostly but not exclusively by me. It _looks_ like an NT native process, but it’s _not_.

    Me, I was mostly working client-side for 3.5 and also kinda trying to find my way out and over to a different group, so I didn’t have much to do with that hilarity. But hey, I mean, it worked fine, so why the hell not ship it? The wrapper gave it better logging and an administration interface so it’s not like you weren’t getting something out of it.

    Funny part is, I ended up sticking around until Exchange actually shipped as the last SFS (shared file system) mail developer standing. I’m not saying the two-year transfer-freeze death-march didn’t have anything to do with that fact, but being over in Desperately Clinging to Market Share land honestly wasn’t so bad. Not compared to the rest of that hellscape, anyway. xD

    • Oh, and, um, I presume you have the administrator’s guide in digital form, am I right? That way I won’t have to scan the 3.2 Beta… I think 1… version I just discovered I still have. xD

    • Meanwhlie Microsoft never used msmail they were using that Unix based thing. The real burning question is where is Xenix for the PDP-11, and What Unix did they run on the VAXes?

      Sadly in the era I was stuck on Lotus Notes, but you are right we were all x.400/x.25 back then, when you paid per email, and per kb. Those 5MB email attachments cost like $20 or something insane, I can still remember being yelled at for not knowing that some attachment went to an external address.

      It wasn’t until 99 did I have to deal with Exchange. But 5.5 is pretty solid, I still use it! It was a snap to setup with Office 365, it lets you forward custom domains to a SSL fronted SMTP server.

      I suppose if I ever got that SMTP gateway working it could go to MS Mail 3.5.. .

      • No, we did! We did run it! All of Workgroup Applications division did, and I ran the server room for my entire division as part of our systems interop test initiative! That was one of the reasons our SMTP gateway was so good, it’s because we were running a fleet of it on our own network for years, when we had 10- to 100 times the mail volume of anyone else in the world.

        People HATED moving from xenix mail to MS-Mail. HATED IT. Partly because wzmail (DOS xenix mail client) didn’t work against it and people hated change. (Raymond Chen got it running again but I’m not sure … that might’ve been against Exchange. But… no. I think he had it running against msmail for a while too. Not sure.)

        But they also hated it because Bcc: didn’t really work the way you expected because of the database we inherited from Courier. (The Couter Mail database had no concept of envelope vs. display headers and fixing it would’ve been… a problem. And Exchange was going to replace it anyway.)

        xenix mail was also a mess, just so you know. It wasn’t RFC-822 compliant so broke EVERYTHING if you weren’t on its own network, including parsing addresses in not-even-right-for-UUCP-or-RFC733 ways.

        Also after 3.2 shipped and I managed to foist that lab off ITG (the actual systems management group at Microsoft), Bill and the exec team also got onto a true MS-MAIL server, just because of the optics of not being on one. ITG replaced me with _five_ people, which was hilarious because they were whiny as hell about it and I was like I DID ALL FIVE OF YOUR JOBS, NOW SUFFER LIKE I DID. xD

        (The war between me personally and ITG was kind of the stuff of legend, because basically they saw our little server room as some kind of intrusion on their turf and wanted to stop it. Which would’ve been fine with me, I didn’t sign up for that, I signed up to write code, but there you are. And after I left, I kept getting CC:ed occasionally by people on MS-MAIL operations and after a while I finally went, “I _know_ you know I don’t do this anymore, why are you Cc:ing me?” and was told, “Okay. Look. Here’s what’s going on. When we need ITG to actually do something and not push back at us, we Cc: you on the mail, and they are _so afraid_ that you’ll actually get involved that they shut the hell up and just do it.” To which I replied, obviously, “You may continue to Cc: me on this topic until the END OF TIME.” xD )

        Setting up the SMTP gateway is pretty easy, particularly if you run only a single post office, but you will need a smarthost because while it’s robust it’s not real smart? And also runs under DOS. So each gateway needs to talk to one (1) smarthost to do the actual routing. We used… uh.

        dang, I forget. Interactive? We tried SCO and it was dogshit, which was hilarious and/or embarrassing because we had a partnership with them but I didn’t care… Yes, Interactive, that was it. ( https://en.wikipedia.org/wiki/Interactive_Systems_Corporation )

        Anyway, because ITG would only let our smarthost talk to the Xenix mail servers via UUCP (and also artificially throttled the hell out of even that, because turf wars and fuck you guys) I ended up handcrafting a sendmail.cf compiler before those were things, and did name- and server-level least-travel-cost routing, just mass-rewriting headers on mail for best delivery. It was a nightmare but it worked as well as anything could. It was the kind of sendmail.cf that made people cry. Once again, I’m kinda proud of it. xD

        (The code that made _me_ cry was our X.25/X.400 gateway. I was trying to fix a customer issue and… the original developer… wow. I never met her, but she was a mad genius and I mean both words. And unfortunately, she was gone by then. It was a state machine built out of a stack of TSRs that functionally implemented interrupt-driven multitasking on DOS and was _incredibly performant_ as a result but absolutely impossible to debug if you didn’t already understand it perfectly because even adding breakpoints would screw up the timing and change the problem. We had to NOT FIX that, which was fortunately okay because the network stack they were trying to use wasn’t on our supported list anyway. And it was also the only bug report we ever got after ship. Stuff of legend as far as _I’m_ concerned.)

      • Oh also uhhhhh… I don’t remember what the unix/xenix was on the vaxen, I wasn’t on one for very long. Trivia, though: originally they were all named for muppets. And we had the dropcable-interface network hubs that were branded MPT, and I’ve looked for any sign of those and haven’t succeeded in finding them, and they were called “muppet boxes.” I _think_ but do not know that’s how we got to muppet names for mail servers.

        (Sadly by the time I was there I my mail account was on “locust” because they’d run out of muppet names.)

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.