Of all the features of Dada Mail, I'm actually excited about this feature the most.
Why? Because this feature turns a mailing list manager with archiving abilities into something truly amazing. Think about it:
You send a message out, the message gets archived. It now exists as two things:
An email message, destined to your subscribers inbox, and content on your website.
With the addition of RSS Syndication, it also exists as part of an RSS feed, anyone can pick up.
2.9 adds the following to this mix:
- Atom Syndication Support
Atom Described:
http://www.atomenabled.org/
RSS ver .91 already comes with Dada Mail, but Atom support is pure icing. It's a bit better and supposively easier to work with development-wise. It also says, ``yes, we're really serious about this whole syndication thing''
- Pinging Update Services
Dada Mail 2.9 doesn't just syndicate its content, it'll reach out and let the major update services know about the updates.
So, to get back to our, ``what happens to your mailing list message'' train of thought -
Message gets delivered, message gets archived, message is syndicated, update services are notified.
Some of these update services, like http://technorati.com have a search engine, of just syndicated information for you to search through - Dada Mail let's Technorati know a new message has been sent, the message gets placed in Technorati's search results - in almost real time - truly incredible.
If you haven't noticed - this is almost exactly what a weblog does - sans perhaps the trackback URL and comments on the individual entries. The advantage of using Dada Mail is obviously the whole, ``it's first and foremost a mailing list manager'' - I still believe that there's greate value in using a Mailing List Manager. Used correctly, mailing list messages are really really useful.
Most of mail.cgi was rewritten, but I wanted to spotlight the Send an Archived Message to a Friend feature, which has been entirely rewritten; to sort of go with the above, your message is also resendable from visitors of your site, to their friends.
We didn't mean to, but the mail.cgi is rewritten. It weighs in almost 100k less
than the previous version. Wow!
HTMLArea, a browser-based WYSIWYG editor can now be integrated easily into Dada Mail. This means you can write richly formatted HTML, right in your web browser. The program has limited support for copying/pasting formatted text from products like Microsoft(tm)
Word.
Instructions are here:
http://mojo.skazat.com/support/documentation/Config.pm.html#html_area_integration___htmlarea_url
- Displaying Complex HTML Messages
A problem with being able to send very complex email messages, is that you have to support viewing the email messages that you send, if you have your archives available. In the past, Dada Mail's support for viewing multipart/alternative messages, with or without attachments was dismal.
Dada Mail now has great support to parse and display its archived messages. Messages authored using the, ``Send a Webpage'' technique show up absolutely perfectly.
(attachments are still not supported, although the encoded content does not spill out as a garbled mess in the archive screens)
- Archive ``Blurbs''
Archive ``blurbs'' have been developed, to show a snippet of an archived message, viewable befiore you click and see the entire archived message. In a glance, you can get an idea on what kind of messages are sent out in a given list.
Dada Mail now has an honest to goodness Email Message formatter that is completely MIME aware.
What's this mean? It means that your list templates will be applied correctly. It means that attachments work. It means your messages won't be flagged by email filters for poor formatting. It means you don't have to be an expert (really) on how to format email messages. You just need to write them.
More on this subject -
Using SpamAssassin as my test ( http://spamassassin.org ), I've been working on making Dada Mail's messages score better on the various torture tests it puts email messages, destined for your mailbox through. I used Spamassassin because it's well documented and is the basis of many commerical products, as well as it's own Open Source implementation.
To be direct and honest, my work on Dada Mail was not to apply tricks to get through SpamAssassin and other filters, but to use best practices when it comes to formatting email messages. Again. No tricks. None. Best practices - yes!
Some tests were surprising to me; for instance, a message formatted in HTML, but not having a proper format - ie: no start/end <head> tag, no start/end <body> tag, no start/end <html> tag get a significant penalty. Because of this, Dada Mail will now make sure that all HTML messages sent using the program will comply to this standard.
Another test that was surprising to me was finding out that HTML messages sent out without a PlainText version (known as a multipart/alternative message) get a similar rather significant penalty. Because of this, all HTML messages, sent using Dada Mail will include a PlainText version of the message automatically - meaning, you don't have to worry about it.
Many, many many of the Query Strings in Dada Mail - and not only in email messages, use a path info, instead of a query string. Here's a real example:
Query String Version:
http://justinsimoni.com/cgi-bin/dada/mail.cgi?flavor=archive;list=announce;id=20040604025003
Path Info Version:
http://justinsimoni.com/cgi-bin/dada/mail.cgi/archive/announce/20040604025003/
Both of these URLs go to the same screen.
Another example:
Query String Version:
http://example.com/cgi-bin/dada/mail.cgi?f=n&l=announce&e=justin%40example.com&p=8911234
http://example.com/cgi-bin/dada/mail.cgi/n/announce/justin/example.com/8911234/
Slightly shorter. Nicely shorter.
The email address is also now embedded within the URL, instead of being blatantly
encoded in - notice the, %40 in the query string version. %'s in URL's are a big no-no for some services, like AOL. Hopefully, that problem is fixed now
A nerdy feature, here's a nerdy description:
http://cr.yp.to/proto/verp.txt
In summary, VERP support means that we embed the recipient of a mailing list message into the Return-Path header of the message itself.
This is neat because:
- Helps parse bounces
It'll be easy to find out the true bouncing email address of a message
- AOL!
if you get a complaint from AOL, you'll be able to pick out what the email address is, and, for example, unsubscribe them from your list;
If you have more than one list, log into one of them using your Dada Root Password. You'll see on the right hand side a little widget to switch to the other lists available with a simple click. Handy.
You can now be notified after every x batches are completed, instead of every batch. Seems like a silly feature, unless you have a large lists and small batches.
Batch notices should also now include:
A very large and very justified complaint about Dada Mail was that most of the HTML of the program was embedded in the Perl code itself. This makes customizing, editing and translating the display text next to impossible.
We are very happy to announce that most (~ 95%) of the display text used in Dada Mail has been templated out!
This has several advantages:
Some of the more notable templated out HTML are:
There's a new screen in Dada Mail to help would-be subscribers make sure they actually receive the email confirmation message. Basically, it points out how
to add the list owner's email into the address book/white list/safe list/whatever-it's-called of their email reader. I don't have even the beginning of all the mail readers available, but it's better than nothing. Here's a real world example:
http://justinsimoni.com/cgi-bin/dada/mail.cgi/subscriber_help/announce/
The whole idea, again, is not to trick or hack about the problem, but to face the problem, and come up with a solution. Mail readers filter/flag email messages coming through, sometimes they suck at it - here's a way, using the mail reader to work around such suckage.
The original look and feel of Dada Mail was basically finalized in version ONE of the program. Since then, minor tweaks have been done to the design, but it's basically been the brown header, and content in a small, hairline bordered table.
The design itself was pretty good for 1999, whipped up by some 18-year-old punk, but times have changed and web browsers have caught up to web standards and there's better ways to format things than tables within tables within tables.
Saying that, The default Administration Template and List Template are completely xHTML Transitional compatible. Much work has been done to make sure every screen validates.
The design itself has been refreshed slightly, fonts are somewhat larger and screen real estate is being taken more advantage of. You won't be too lost using Dada Mail 2.9 if you're upgrading from an earlier verison, but it's a welcome surprise.
Some of the smaller enhancements are as follows:
- button styles - out of the Config.pm file
For reasons that elude me, the Button styles for Dada Mail were kept in the Config.pm file, under the %STYLE hash. These are now deprecated, and the styles themselves have been moved to the default css file.
If the needed parts are available (you'll need Perl 5.6), Dada Mail now saves the log in information NOT in the cookie, but rather in what's called a session file. What's this mean? It means you're not passing the list name and (encrypted) list password back and forth from the server to your web browser every time you access the list admin control panel. Depending on how you look at this, this is either a secuirty enhancement or a security hole blocked. I'll leave that up to you;
/dada/extras/developers/TODOlist.txt
Mostly intersting for dev versions, you can get a fresh copy at:
http://cvs.sourceforge.net/viewcvs.py/mojomail/dada_mail_stable/dada/extras/developers/TODOlist.txt?rev=1.32&view=log
Features Added:
Bugs Fixed
- Archives can be added to a list without sending an actual mailing.
- Mac iCal URLS, (webcal://...) are now supported and will be converted to a live
link in archives and in HTML from plaintext list messages, the same way http and ftp
links are.
- Broader email support
support for emails with new, 4 character top level domains (ie .info)
- SQL database support
Postgres, MySQL subscription list support, as well as framework for any other kind of subscription backend.
- Admin Control Panel Customizaton
Administration look and feel now skinnable
- POP-before-SMTP Authentication support
- Change the name of your list
- Included Bounce Handler
- Alphabetically sorted lists
- Rewritten dada_send.pl script
- Root Login Enhancements
Lists logins by root allow you to turn on and off certain features of the list control panel
- Better WinNT support
Bulk sendings do not have to be forked()
for greater WinNT compatibility
- Major Bug Fixes
'nuff said
- Invitation Feature
Send out a mailing inviting people to join your list. This is a much more polite way of subscribing people to your list
- List Backup Script
This version comes with a utitlity that allows you to backup your subscription lists.
- List Statistics Script
This version comes with a utility that allows you to create daily statistics about your subscription lists.
- Scripting Examples
Included with the Dada Mail distribution are sample scripts that give you an idea on how Dada Mail does it's mojo and how you can hook into the Dada Mail system yourself.
- Bug Fixies
many peculiar bugs that cropped up after the release of Dada Mail 2.4 and after that weren't found when in development have been delt with. Anyone who has been using Dada Mail 2.4 and above and been having trouble, please upgrade.
- Completely New Message Sending Control Panel
We've totally re-wrote the control panel for sending list messages, using the comments and ideas from users of Dada Mail. There are now two ways to send list messages in Dada Mail, Basic and Advanced.
- Basic Mode is what you're probably used to, you have a form where you can write ina subject, write your message and select how to treat the message as, either HTML, Plain Text, or both
- Advanced Mode gives you more control over the list message being mailed. You can change the From: Reply-To: and Errors-To: headers, as well as being able to set the Precedence and Priority of the message. Attachments are also now supported throughout Dada Mail. You can attach as many files as you would like to your list message. Finally, you can now write two different versions of your list message, a plain text version and an HTML version. People who receive your mailing will automatically see the correct version of the message, depending on what their mail reader supports.
- Archive Search Enhancements
Archive search results are now shown onscreen with a summary of every place your search term was found in the archived message.
- Bug Fixies
Several small bugs were found in Dada Mail 2.4, that are fixed in this version.
- Black List Rules
You can now specify what e-mail addresses are not allowed to subscribe to your lists (like you @yours.com), or match a part of an email address, (like .com or Homer). E-mail addresses are check to see if they are black listed when somone tries to subscribe to a list, when they confirm to a subscription e-mail and in the administration control panel, when e-mail addresses are added.
- Mojo Root Password allowed to log into any list
You now have the ability to use the mojo root password to log into any list on your site, instead of trying to keep track of many password lists.
- UI Redesigns
The ``Remove Subscribers'' screen has been clarified, as has the ``Administration Login'' screen, the sign in screen, and the ``new list created'' screen.
- Search Your List Subscribers.
Searching your list subscribers is accessable from the control panel menu (it is disabled by default)
- Batch Sending - Send lists messages in batches in specified intervals.
Very large lists can sent without bowser timeouts, mail program restrictions, or server overload.
- Receive Notice When Batches Are Completed - can be turned on and off
- Receive Notice When Entire List Mailing is Completed - can be turned on and off
- Mailing List Options - Hide your list, close your list, stop receiving subscription/unsubscription notices, stop requirng confirmation e-mails.
- Subscription Routines Rewritten - In with the new, out with the old.
Routines are now faster, more sophisticated and less error prone.
- Unsubscription Routines Rewritten - Ditto.
- Auto Generated Form Code Now Includes Unsubscription Option - Subscribe and Unsubscribe from any page on your site.
- View List Control Panel Customizable - Turn off and on features of the View List control panel, add domains and services to watch. This control panel has also been optimized to handle larger lists better.
- Tutorial and Help Links Right in the Program - Articles written to help you with template making, batch sending and the subscription process
- List Messages Include Full Subscription/Unsubscription Links and Real e-mail Address in the ``To:'' Header
- HTML Text Customization - Customize Confirmation, Subscription Successful and Unsubscription Successful HTML messages right in your list's control panel.
- New E-mail Validation Routines - Work better, '@' is now not found to be a valid e-mail address.
- Bug Fixes - Lists can now handle dots, '.' in their name, 'headers too big' sendmail error resolved, 'View List' control panel not loading resolved for very large lists, small bug fixes around the table.
- Send E-mails with your Email Program - with dada_send.pl, you can now send list messages using your favorite e-mail program, such as Eudora or Outlook.
- Group Lists Now Supported - Dada Mail can now be used for group discussion lists.
- E-mail Customization - Most e-mail messages sent by Dada Mail can be customized to look exactly like you want! You are no longer stuck using the default messages or try to go through the script and change the messages yourself.
- Back Links Created per List
you can now specify a link back to your site on a List by List basis
- Perl List Archive Options
you now have the ability to start and stop message archivings, as well as hiding archives to visitors on a list by list basis.
- Interface Changes
The Dada Mail web-based interface has been cleaned up and is now taking advantage of recent CCS style abilities.
- Internal Structure
Dada Mail can still be set up by changing just 4 variables, but can also be customized and tweaked using the CONFIG.pm file. Having the variables set in a Configuration file means other programs can be built to take advantage of Dada Mail's abilities (like dada_send.pl, included in the distribution) and you can now make utilities that work with Dada Mail.
- Modularization
Most shared subroutines are now kept in one Module, all HTML template subroutines are kept in another, all password subroutines are kept in still another and configuration settings are kept in one more. This means writting new abilities in Mojo will become far easier and Dada Mail utilities will be faster than ever!
- Default List
You can now set a default list that will set the overall look and design of Dada Mail screens, making Dada Mail blend transparently into your website like never before.
- Administration Customization
You can now specify which sections you want available to a user, if you want to set up this script for a client, you can simplify the interface so as not to confuse the person or keep them from playing around with something you don't want them to.
- Bug Fixies
Subscribing to a list when browsing list archives now works (again).
- HTML List E-mails Now Supported.
You can now send List E-mails in HTML, messages are saved in HTML when archived, and Mojo knows the difference between plain text messages archived and HTML messages archived and will show them correctly. When sending the List E-mail, you have the choice to send messages in plain text, HTML , HTML converted to Plain text and both HTML and Plain Text at the same time, garunteeing that the person reading your e-mail will be able to view it, even if their e-mail client doesn't understand HTML.
- Small Unsubscription Bug Fixed.
There was a small problem when trying to unsubscribe to a list, this has been resolved, List E-mails do not include the email and pin number in the unsubscription link, this is becaue Mojo does not send List E-mails one at a time, but all at once and cannot make each message different.
- Enhanced Admin E-mail Deleting.
The Delete E-mail Interface is similar to the ``Add E-mail'' interface now, with a clearer way to delete e-mails, e-mails can be chosen from the entire list into a seperate delete list instead of checking off exactly what e-mails should be deleted from a list of every single e-mail address.
- Enhanced E-mail Searching
all e-mails can be searched in your list, searches can be made in several ways; general searches, searches by Top Level Domains, and searches by popular ISP and e-mail searcices.
- Enhanced ``View List'' Control Panel
Several tables are now available under ``view list'' in each list's control panel that lets you see your subscribers sorted by Third Level Domain Names (.com, .edu, .net) and popular ISP's and e-mail services (Yahoo! Mail, Hotmail, Prodigy) The Administator can now also send the entire list to himself, or open the list in a new window.
- More List Information
When setting up a new list, you can now specify a list administrator, who will receive the list's e-mail error messages and also write a private policy statement. Both of these new fields are optional.
- Beginning of Modularization
Dada Mail is starting to Modularize itself, breaking up into smaller files for better performance and easier customization. Dada Mail now has seperate Modules for sending e-mail, its templates and misc. subroutines. These modules can be incorporated into your own Mojo-like program.
- Archives The index of each lists archives now show the date they were sent.
- Bug fixes, spelling corrections and improved clarity.
- The entire program has been totally rewritten.
Many new features have been added on the admin side, as well as the visitor side All features in place before have been enhanced in some way.
- Database Use
Dada Mail now uses the AnyDBM_File module instead of just the DB_File module, making it much more exportable to different server configurations.
- Archiving
Dada Mail has now been given the ability to archive its messages, and show these archives to your visitors and from the administration side. This ability can be turned off and on and archives can only be available to the administration if need be.
- Templates
The look of the script can be changed using templates that Dada Mail will recognize and use. This can be managed easilly on the administration side using your web browser.
- Password Protection
Dada Mail now uses encrypted passwords for all its lists, protected the information and the list itself
- List Mailings
Dada Mail delivers the messages to the mail program in a more streamlined manner, making delivery seem to take less time.
- Error Handling
Errors when using the script (not server side errors) are handled in a much more pleasant way.
- Internal Structure
The code of Dada Mail has been rearranged and clarified. Better coding methods have been taken advantage of and the script as a whole is more efficient. There were also a few speling mistakes fixed :)