HyperCard StackStories 2: The Email System

Posted 2023-10-22 | Back to blog index

HyperCard StackStories 2: The Email System

Been seeing some talk about AppleTalk email on fedi lately so I thought I'd throw my hat into the ring

MacMail, a client/server AppleTalk email system written in HyperCard. It has no gateway to internet email, it's purely LAN

There is a server that you leave running on a Mac which stores incoming email for the clients to fetch when they go online. And a remote app which is required to admin that server

A screenshot of three folders in the Mac OS Finder, containing the MacMail Client, Server and Remote apps, documentation files, and a plugin development kit. Two windows, MacMail Server and MacMail Remote, each with a list of users, but Remote has actions like Add and Remove.

And here's the client! In preferences (suitably misspelled), you configure the server and your username and password, and can start sending and receiving email!

Email wasn't pushed to the client, so it was set to periodically fetch email from the server.

The app even had rudimentary filing and you could set up a single filter (the default example is dumb - who would get spam on their internal LAN email system??)

A screenshot of a basic preferences dialogPrefrencesUsername:BlackbirdDudePassword:blackbirdE Remember passwordServer address:*Lombard:MacMail Server 1.5FATAppend to replied subject:ReplyIdle,15:27:40More stuffBlackbird• Auto-check every00minutes.When a Compose Message window is closed:O SaveO Discard0) AskShow number of downloaded messages:O In dialog box© In status areaO Nothing A screenshot of a compose email dialogTo:LombardManSubject:Hello WorldSending messages overAppleTalk, the future is bright!• Date StampSend A screenshot of an incoming emailSubject: Hello WorldFrom:BlackbirdDudeDate:23.10.22 at 15:35Read2023-10-22:Sending messages over AppleTalk, the future is bright! A screenshot of a email filters window.File Cabinet - Edit filtersFilters ActiveOn recieve mail:Move into folder@Junk...contains A great offer!orInfomercial

The files date from 2000 so I was 15 when this was completed

This is probably one of the last things I did in HyperCard before moving on to REALBasic to get native UI

You can see I was really going all-in trying to make as native a UI as I could in HyperCard, with stuff like being able to open multiple compose windows at the same time, and I even made sure to support Balloon Help!

All this required a massive pile of XCMDs to work, including one from everyone's beloved @uliwitness

A screenshot of Help Ballon being shownClicking here will reply to the message selected to the right.This means that the current message is copied to theCompose Message window. If the window is not open, it opens first. A screenshot of an about dialogMacMail ClientVersion 2.0.3http://welcome.to/KalleBoo/kalleboo@yahoo.comMacMail Client uses the following CMDs:Dialog, Uli Kusterer ListWindow, Dartmouth College hasAppearance, KalleBoo NewAnswer, KalleBooBalloons, can't remember whoShowMore XCMDs...CreateFolder 1.3FindFolder 1.3FullResList 2.7GetDir 3.3KillRes 1.5ResText 2.5SetFInfo 1.2TextRes 2.6Free for non-commercial use. Use in commercial software subjected to prior acknowledgement and licensing from the author, reachable at the following network addresses:frederic.rinaldi@wanadoo.fr

If you were paying attention in the first screenshot, there was even a plug-in system. "Plug-ins" were just plaintext files with a custom type code containing HyperTalk code, and were added to a menu to create custom functions. I'm pretty sure not one person on the planet ever used this.

Another thing I did was store the email in a "custom file format" rather than in the HyperCard stack itself. This "format" was basically just a bunch of STR resources.

Anyway if anyone is masochistic enough to want to try this out, the download is available here http://kalleboo.com/history/downloads/macmail-2.sit

And if you missed episode 1 of my HyperCard Stack Stories it can be found here: https://bitbang.social/@kalleboo/111160844902088557

Back to blog index