Review: Mojo Mail 2.6.7
Developer: Justin Simoni
Price: free; donations accepted
Recommended: Mail agent that can pipe incoming messages to a program (filter), some Unix experience for installation, some Perl experience if you want to take advantage of its open source code.
A mailing list is a special kind of e-mail address. When someone sends a message to the list address, e.g., email@example.com, the message is sent to every e-mail address that’s on the mailing list, e.g., to all the ATPM subscribers. This is a bit like the group feature in your e-mail program’s address book, except that mailing lists are managed by specialized programs called list servers. List servers are more than mere address books. They let people subscribe and unsubscribe themselves from lists, and they can accept or reject messages sent to the list address based on various criteria. For instance, some lists are used for announcements and only the list owner is allowed to post. Other lists are used for discussions and anyone (or perhaps any subscriber) is allowed to post.
Like most other kinds of server software these days, list servers either cost hundreds of dollars or they’re free. This review is about Mojo Mail, a relatively new list server that’s free. It’s released under the GPL, so the source code (written in Perl) is available if you want to tweak it to better fit your needs.
What is Mojo Mail?
Mojo Mail is a list server that runs on Macs, but it is not a typical Mac program. Unlike Mac list servers such as LetterRip and ListSTAR, there’s no icon to double-click. Mojo Mail runs on a Web server and its entire interface is accessed through a series of Web pages. This is troublesome when setting up new lists as there are many settings to change. LetterRip provides a remote administration application that lets you log into your server from anywhere on the Net and configure it using a real Mac interface. On the other hand, the LetterRip administrator runs only on Mac OS 9. Mojo Mail’s Web interface isn’t as comfortable to use, but it works on any machine with a Web browser. Once I’ve set up a list, the Web interface is great for making little changes from whatever machine I happen to be using.
Installing Mojo Mail
Mojo Mail runs on a wide variety of machines and operating systems, including Mac OS X, Linux, and Windows NT. It comes with installation instructions for common configurations, including Mac OS X. To install Mojo Mail you need to copy its files into the proper locations and set their permissions. You do not need administrator access to the server. Then you have to configure it by editing a few text files so that it knows where your mail program is, where to save its preferences, and what the URL and password will be.
The installation process involves using the command line and may be uncomfortable for some Mac users. It certainly helps if you know a bit about Unix (see the book review in this issue) and Perl. However, the first time I installed Mojo Mail I blindly followed the instructions to a T and it worked on the first try. If you do have trouble installing Mojo Mail, there are a mailing list and a Web-based discussion board where you can get help.
You may also need to install an additional program called mojo_send. If you want to run a discussion list, Mojo Mail has to be able to receive messages sent to the list’s address. Unlike some other list software, which “pulls” messages from POP accounts, mojo_send receives messages “pushed” to it by the mail server. This means that you need to be able to configure your mail server to pass all the messages sent to the list address to Mojo Mail, which acts as a “filter.” This feature may not be supported by all mail servers, and some Web-hosting companies do not allow you to filter incoming mail.
ATPM’s server is run by Pair Networks. This screen shows how I configured it to filter messages through the mojo_send program.
Using Mojo Mail
Once you’ve installed Mojo Mail, using it is easy. The Web-based administrator interface is by far the best I’ve seen. The interface is attractive. The settings are thoughtfully organized. Most settings have a short label along with a description that explains the setting in plain English. Often, there is a link to the Mojo Mail documentation where you can find more information.
The administrator interface is protected using passwords. The Mojo Mail root password (which you set when you install Mojo Mail) is required for creating lists. The root user can log in to modify the settings of any list. Additionally, each list can have a separate password for the list owner.
Logging Into Mojo Mail’s Admin Interface
Each page in the admin interface has a menu at its left where you can select a screen of settings to edit. The main part of the screen shows the settings themselves.
The Admin Interface’s Menu
The first group of screens is for sending messages. You can send a message to the list from the Web interface. Mojo Mail supports plain text messages as well as HTML. If you send an HTML message, it’s nice to include a plain text version too. Mojo Mail can generate this from the HTML version, or you can specify the plain text version separately. The sending screen also has an Advanced interface that lets you specify the Reply-To, Errors-To, Precedence, and Priority headers, as well as upload attachments to accompany the message.
The easiest way to send an HTML message is to use Mojo Mail’s Send a Web Page feature. You specify a subject and a URL, and Mojo Mail sends the source of the Web page in an e-mail, adjusting the links (using the <base> HTML tag) so that images on the page will display properly. When you compose a message using the Web interface, Mojo Mail lets you send a test message to the list’s owner. That way you can be sure that the message will look right before sending it to everyone on the list. This is a nice touch.
Finally, you can use Mojo Mail’s Web interface to send invitations for joining your list. Each invitee will receive a customized message with a link he can click to subscribe to the list.
Changing the List Information
You can hide a list so that it is only available in the administrator’s menu, not in the public list control panel. You can close a list so that only the administrator can add subscribers. (There is no automated way to allow anyone to subscribe subject to the administrator’s approval.) Mojo Mail can automatically notify the list owner whenever someone subscribes or unsubscribes, and it can optionally require confirmation from users before processing their subscribe or unsubscribe requests. The confirmation process works very well. First, the user makes a request using the Web interface. Then, Mojo Mail sends her a confirmation e-mail containing a URL. She can then click the URL to confirm the command. This process prevents malicious users from subscribing or unsubscribing other users. Other list servers require users to send reply e-mails or to remember passwords; the clickable URLs are more reliable in my experience.
Mojo Mail has several options for how messages are sent. You can control how many messages it tries to send at a time (to help control server load), and it can optionally send the list owner status messages so he can track how many users have received the message so far. If your message has an attachment, Mojo Mail sends the owner a copy of the attachment with each status message. Luckily, Mojo Mail is open source so I was able to remove this “feature.”
The next screen lets you choose whether the list is a discussion list (group list) or an announcement list. Only the list owner can post to announcement lists, but any subscriber can post to discussion lists. There is no way to allow non-subscribers (or subscribers sending from non-subscribed addresses) to post, nor is there a way to reject posts from certain subscribers.
Mojo Mail can optionally disallow HTML messages sent by list members, but I’ve found that this setting also rejects messages with attachments. Mojo Mail can also add the list’s name to the subject of each message. Unfortunately, this text is not configurable and Mojo Mail always puts it before the “Re:” in replies; most other programs know to keep the “Re:” first. Mojo Mail can add a Reply-To header so that replies are directed back to the group. If you don’t select this option, replies are directed to the message’s sender.
You can view the list’s subscribers, though unfortunately Mojo Mail shows them all on one page. It displays them in a scrolling list; for large lists your browser may not be able to display such a long list. Fortunately, Mojo Mail can also display the subscriber list in plain text or mail it to the list owner. The latter feature is nice if you ever want to switch to a different list server; Mojo Mail doesn’t hold your subscriber list hostage like Mailman, another Web-based list server, does.
Of course, as the list owner, you can add and remove subscribers. When adding subscribers, you can paste a bunch of addresses into the form at once or import them from a local file. Either way, Mojo Mail shows you the addresses it’s going to add and won’t add anything that doesn’t look like an e-mail address. Removing subscribers is just as easy. Mojo Mail shows you a scrolling list of who’s subscribed; you can then remove one or more addresses at a time.
Most users will probably subscribe themselves, and Mojo Mail lets you set up a Black List to control who is allowed to subscribe. You can put specific addresses on the Black List or use regular expressions to block certain domains or only allow subscribers from particular domains.
The coolest feature, though, is that you can search for a subscriber by entering part of her address. When I used other list software, I often received complaints from people who couldn’t unsubscribe themselves. They’d subscribed to the list under an address like firstname.lastname@example.org. Then, when they tried to unsubscribe email@example.com, the list server would complain that that address wasn’t on the list. With Mojo Mail, it’s easy to search for “person” to find the address in Mojo Mail’s database. This feature alone would have saved me hours spent wrestling with Mailman over the years.
Mojo Mail can archive the messages that are sent to a list. It can make the archives available on the Web for administrators or for everyone. In either case, it hides the messages’ senders to prevent spam. The archive feature is rather primitive, but it’s more than adequate for basic use and includes a search feature. I hope that future versions of Mojo Mail will add a threaded archive view and support for downloading archived messages in mbox format.
Customizing Mojo Mail
Mojo Mail is very customizable. You can customize the look of its Web pages and make them link back to your home page. The Mojo Mail root user can choose which administration screens the list owner has access to. More importantly, you have full control over the e-mails Mojo Mail sends out. You can edit templates for the confirmation e-mails when people subscribe or unsubscribe, the welcome message, the goodbye message, and the error messages (for instance, if someone tries to post to an announcement list). Of course, you can also customize the template for normal messages sent to the list. The templates can include special tags that Mojo Mail fills in, kind of like a mail merge.
Put these tags in your templates and Mojo Mail will fill them in.
This is the template for messages sent to the list. As configured here, each subscriber gets a customized unsubscribe link below the message body.
One problem is that if you send a message with an attachment, Mojo Mail discards all of the template below the [message_body] tag. I’d like for ATPM subscribers to receive customized subscribe and unsubscribe URLs with each message, but this bug prevents that (except on our notification list, which has no attachments).
The Subscriber Interface
So far I’ve talked about how to administer Mojo Mail. The interface for subscribers is similar, but much simpler as it has fewer commands. One screen shows the publicly available lists and their descriptions. Another lets people unsubscribe. In either case, Mojo Mail provides immediate feedback. If you try to unsubscribe from a list using the wrong address, Mojo Mail tells you from the browser that you weren’t on the list. This is much better than other software I’ve used, which provides the feedback through e-mail.
Mojo Mail can also help you generate custom interfaces for subscribing and unsubscribing, such as the one ATPM uses.
Mojo Mail is written almost entirely by Justin Simoni, who is a full-time student. As such, Mojo Mail doesn’t feel like a professionally developed piece of software. I found lots of minor bugs in the first few minutes of using it. Since I know Perl, I was able to fix them myself in short order. Simoni himself is responsive to fixing bugs, although he has not yet fixed all the ones I reported. There have already been seven maintenance updates since the 2.6 release in April. It’s certainly good that the bugs are being fixed, but they should be fixed before new versions are released.
The Mojo Mail Web interface is full of misspellings and typos. When I first installed Mojo Mail, there were also typos in the default e-mail templates. I had to correct these each time I made a new list. I think this problem is fixed in the latest version, but it’s embarrassing that the version I first installed shipped with those mistakes.
Mojo Mail lacks a few features that are common among other list servers. It does not support digests or moderation and it only stores subscribers’ addresses, not their names. Storing names would be particularly nice given Mojo Mail’s support for templates and tags. There are some basic bounce management features, but I wasn’t able to get them to work.
I mentioned in the Installing Mojo Mail section that Mojo Mail receives messages as a filter rather than from a POP account. As such, it has to rely on the message’s headers to determine the list that the message was sent to. This means that the list address has to appear in the To header; you can’t BCC the list. Likewise, Mojo Mail looks at the From header to determine who sent the message. This means that anyone can post to an announce-only list if they fake their From header so it looks like the message came from the list owner.
Mojo Mail’s installation instructions are good, but the rest of the documentation is only adequate. Some of the features are documented for programmers, not users, and some features aren’t documented at all. Despite these flaws, the documentation is still way above par for an open-source program, but Mac users expect more.
I like Mojo Mail. For basic lists, it’s a great free alternative to Yahoo! Groups. There are no advertisements and the list address can use your own domain name. It’s much easier to install than other Unix list servers such as Mailman and Majordomo, though installation isn’t as simple as drag-and-drop and you may need a bit of Unix knowledge.
Mojo Mail isn’t as polished as the commercial Mac list servers and it lacks some of their features. Nevertheless, the Mac list servers aren’t yet OS X native and many Mac users don’t run Mac servers. Mojo Mail runs on most Web hosting accounts. You don’t need special administrator access to the Web server, and you can install Mojo Mail like an ordinary CGI.
Mojo Mail has a lot of flaws when I compare it to my ideal mailing list server. But compared to the software that actually exists, it shines. The forthcoming OS X version of LetterRip will probably be a better choice for people who run Mac servers, but Mojo Mail has the advantages of being free and available today. There’s no one feature that’s so much better than what you’ll find in its competitors, but Mojo Mail covers a broad range of features in one integrated package. It feels like a Mac program in that it doesn’t give you every possible option, but it presents the options that it does have in an intelligent, accessible manner.
The ultimate test, though, is that people find Mojo Mail easy to use. In the past, ATPM has used LetterRip and Mailman to manage its subscriber list. Each time we released an issue people would ask us for help subscribing or unsubscribing. We received a lot of complaints after switching to Mailman because people had trouble with its cumbersome password confirmations and poorly designed Web interface. I probably spent an hour each month helping people with their subscriptions. Since switching to Mojo Mail two issues ago, we’ve received only two subscription questions and no complaints. Once I had Mojo Mail installed, I could pretty much forget about it. All server software should be that way.