Mail Shop SuiteFollowing a discussion on the Frontier-talk list in June 1997, several people are working on mail servers running in Frontier. Recent experiments with EIMS show that a faster Mac-based mail server is possible. Maybe a Frontier-hosted one will have competitive performance? It'll be interesting to see.
Anyway, people are asking how to do a mail storage system in Frontier, and I realized that I have a full one with hooks into FileMaker. I think it's an elegant design, done in August 1996, and did a search and found that it's not in distribution anywhere on the scripting.com server. So here it is, baked into this fat page, with documentation following.
It was a work-in-progress when I moved onto other things. The docs and scripts are as-is. Full source code is provided. If you're implementing a mail server in Frontier, feel free to scavenge.
A full rewrite of the MailShop suite. An attempt at mail nirvana. Finally! I'm ready for it, with hundreds of messages coming in my inbox every day, and dozens going out. My conventional emailer is out of gas. It was never designed to handle the kind of load that I'm pushing thru it.
What I want. Multiple indexes, sorted to that I can see all messages pertaining to a specific subject, or from a particular person, or any combination of attributes. An efficient storage system so that messages are only stored once, and not using the inefficient blocking strategy that the Mac file system uses (a one-sentence email message can take up to 16K on my disk. The Mac file system was never designed for this kind of load either.)
I also want to be able to search my back-email as I would search the web using a search engine like Alta Vista. I accomplish this using FileMaker. The new mail for each day is indexed at 2AM while I'm sleeping. This fits my workstyle. I'll be able to find today's messages because they're frontmost in my mind and accessible from the top of the outline structure. The ones I need indexing for are the ones I wrote two months ago. I remember who I sent it to, or can think of a keyword, but can't easily navigate to it thru the outline structure.
One more big feature -- I want the option of flowing any number of outlines to a website so other people can access them. The rendering for these pages should be done at 2AM too.
The key is to reorganize the power of today's machines so they are more effective at serving the needs of intense email users.
No change in habits
It's really important that this approach doesn't force you to switch from the emailer you use now (assuming you use Eudora). I'm not ready to switch yet. Neither are you (probably). So this new software hooks into Eudora, using a defacto standard set of Apple Events that can be supported by any emailer. It's archiving the messages as you send and receive them. By choosing commands from Eudora's menu bar, you can quickly look at your outlines, read archived messages, and use the search engine.
However, if this environment proves to be a natural way to read and write email, we can hook into faster protocols coming soon via direct TCP from Frontier.
Another way of looking at it
It's like data mining for your email. All kinds of information flows thru your mailbox. We capture more of it. Things like web and email addresses. And by organizing email in outlines, according to your rules, and making it searchable in a database, we give you the tools to find patterns and valuble information isn't quite so buried anymore.
Key concept -- The "Router" Outline
The Router outline is the center of Mail Shop's intelligence. From this outline, you control where each incoming and outgoing message will be routed to. That's where it gets its name from.
It's an outline. Each main head contains a condition. If the condition is true, the message is routed to the mailbox listed subordinate to the main head.
Here's what a simple router outline looks like:
direction == "in" "in" direction == "out" "out" string.lower (recipient) contains "frontier-talk" "frontier-talk"
You can have as many conditions as you want. For each condition that is true, the mailbox it points to will receive a pointer to the message. When you want to look at all the messages from the frontier-talk list, for example, you can just open the outline from the MailShop menu.
Each mail message you send or receive flows thru the router. If you're sending it, "direction" will equal "out"; if you're receiving, it will equal "in". In the third condition, "recipient" is a bit of information about the mail message that's being routed.
Other bits of information about the mail message are available to the router. They are, in alphabetic order:
Builds on standards
How to install
After importing the suite from this page open mailShop.importSuite and click on Run. It sets up user.mailShop and installs an agent at system.agents.mailShop.