v4.x Changelog

Dada Mail Changelog for version 4.x.x


Summary 4.9.1

This release of Dada Mail includes fixes for bugs found in the 4.9.0 version of Dada Mail, plus support for the Amazon SES SMTP Interface.

Features 4.9.1

Amazon SES SMTP Interface Supported

You can learn more about Amazon's SES SMTP Interface here:


Dada Mail can now be configured to use Amazon's SES SMTP Interface, as well as working with the Amazon SES API - whichever you prefer. See the Amazon SES docs for more information:


Bugfixes 4.9.1

Images do not show up with HTML::Template::Pro template engine


tmpl_set tag not working with HTML::Template::Pro


Black List Matching Problems


<!-- tmpl_var date --> tag used, but not supported anymore





Summary 4.9.0

This release focuses on many parts of Dada Mail to optimize performance. Benefits of all this work include faster mass sending speeds. Potentially must faster.

Features 4.9.0

Bounce Handler

Rename to: Bounce Handler

The Bounce Handler (Known in the past as, "Mystery Girl") has been renamed to simply, Bounce Handler. I don't very much listen to the Yeah Yeah Yeahs anymore.

The config variable $PLUGIN_CONFIGS also referred to this plugin as, "Mystery_Girl" - as in this code snippet:

        $PLUGIN_CONFIGS = { 

                Myster_Girl => {
                        Server                      => undef,
                        Username                    => undef,
                        Password                    => undef,
                        # ...etc

This has also been change to simply, Bounce_Handler:

        $PLUGIN_CONFIGS = { 

                Bounce_Handler => {
                        Server                      => undef,
                        Username                    => undef,
                        Password                    => undef,
                        # ...etc

Set Scorecard Prefs per-list, instead of Globally

Bounce Handler preferences, including the Soft Bounce Score, Hard Bounce Score and Score Threshold are now set per mailing list, instead of having to be set in the global config.

Decaying Scores

Bounce Scores can now, decay, or be reduced every time a mass mailing is sent out. This is to help minimize scores from email addresses that temporarily have had problems with delivery, but are otherwise valid email addresses. An email address's bounce score will also now be automatically removed, if the score goes at or below, 0.

Bounce Scorecard Conveniently on the default screen

The Bounce Scorecard is now presented on the default screen for the bounce handler, instead of being shown on a separate screen. Navigating the scorecard is now a little more intuitive, as well.

Forward bounces to List Owner

Bounce messages can now be forwarded to the List Owner, once the Bounce Handler has reviewed the message.

SES Support

Dada Mail/Bounce Handler should now have support for Amazon SES sending. This is still marked as, Experimental (as is SES support in total), but SES-specific rules have been whipped up. Please give us feedback!

HTML::Template::Pro support, Faster Template Rendering

HTML::Template::Pro renders the templates that Dada Mail uses throughout the app, including HTML screens and custom email messages, much faster than what's included with Dada Mail (HTML::Template). HTML::Template::Pro will need to be installed separately.

See the features doc on HTML::Template::Pro for more information:


Faster sending using Amazon SES

Dada Mail now uses a persistent HTTP connection when talking with Amazon SES. This can speed up sending by .3 - .7 seconds/message.

New Template Tags for Date/Time

Dada Mail now has support for various simple Date and Time formats to use in HTML and Email templates, as well support for more flexible/advanced strftime formats:


New import script, dada_archives_backup_to_sql.pl

This script allows you to import archive data from the backup of a DB File, to the SQL backend. This helps if your DB Files are corrupted/incompatible with your current server environment.

Changes 4.9.0

Documentation Updates

A new/update entry in the General FAQ, Tuning Dada Mail to Send Mass Mailings Faster:


Installer: some plugins/extensions installed by default

CPAN Module Changes and Updates

LWP unbundled

The LWP group of Perl modules is no longer available with Dada Mail. LWP is used for such things as, Send a Webpage and some web services, like Amazon SES. You will have to install LWP yourself. Most shared hosting companies will have this already installed, for you.

MIME::Tools upgraded to v5.502

This upgrade to MIME::Tools has a very positive improvement on sending speed.

Bugfixes 4.9.0



Summary 4.8.4

This release consists of fixes for issues found in the 4.8.3 release.

Of large note is a big memory leak found and fixed in v4.8.4 that happens whenever you mass mail an HTML email message, regardless of how it was first created.

This memory leak could grow to many 100's of megabytes to gigabytes of memory within a few thousand messages sent and could potentially kill off the sending process and more likely than not, slow down mass mailing by ~10% (potentially much greater, depending on how large the amount of RAM is consumed).

For more information, see this issue:


Bug Fixes 4.8.4

Sending Preference Test Doesn't Work


"You Are Not Subscribed Message" not editable


Embedded images mangled by reCaptcha MailHide


Archived Messages with, "advanced templating syntax" will break message archives


Installer: SQL connection test uses, "auto" for port, instead of actual port number


Installer: SQL "tables exist" test is whack




Large Memory Leak when sending out HTML mass mailing


"Remove ALL Subscribers" broken in PostgreSQL


Mailing Monitor - verbose flag/parameter set to, "0" doesn't stop verbosity



Summary 4.8.3

This release consists of fixes for issues found in the 4.8.2 release.

Bug Fixes 4.8.3

Verbose errors in the error log?


"Advanced Templating Syntax" does not work for Mass Mailings


Tracker: Internet Explorer and Display Problems


Dada Bridge strips Cc and Bcc headers from list emails



Summary 4.8.2

This release consists of fixes for issues found in the 4.8.1 release.

Bug Fixes 4.8.2

Open discussion list setting broke


"Unsubscribe ALL Subscribed Subscribers" will send "Farewell" mass mailing message, even if option disabled


"Unsubscribe ALL Subscribed Subscribers" will NOT add removed addresses to Black List, even if that option is enabled


Setting, "Continue to Allow Black Listed Addresses to be Invited/Subscribed Via The List Control Panel. " doesn't work


"Activate White List " option broken



Summary 4.8.1

This release consists of fixes for issues found in the 4.8.0 release.

Bug Fixes 4.8.1

"Setup Info" screen broken w/error: "attempt to set parameter 'config_vals' with a scalar"


Profile Widget shown in Mailing List Messages when, "Wrap your HTML Mailing List Messages in your Mailing List Template " is enabled.


"Mailing Finished" messages aren't sent when using Amazon SES


Multiple Mailing List Sending docs refer you to edit the Config.pm file, not the .dada_config file


"Sending Preferences" Test Message sent blank



Summary 4.8.0

Features 4.8.0

Dada Bridge: Customize Email Templates per Mailing List

The following email messages that used to be embedded in the source of Dada Bridge are now saved in the Dada Mail global config and can now be edited in the list control panel of Dada Bridge:

Changes 4.8.0


Documentation on the CAPTCHA for Dada Mail has been moved out of the Config.pm docs and expanded.

They're now located at:


This the addition of docs for reCAPTCHA Mailhide, including how to install the missing CPAN Module needed, via a cPanel setup.

HTML::Scrubber CPAN module included with Dada Mail distro

The HTML::Scrubber CPAN module is used in Dada Mail to remove potentially insecure JavaScripts from email messages. This is particularily important for discussion lists where messages are coming from a potentially untrusted source.

More information on HTML::Scrubber:


Parameters for HTML::Scrubber are also now saved by default in the Config.pm file and can be overridden and customized in your own .dada_config file. Look for the config variable named, $HTML_SCRUBBER_OPTIONS.

Bug Fixes 4.8.0

subscribe_soap_server.cgi has library typo


SOAP fields don't seem to work? (And bug in subscribe_soap_client.cgi)


Subject tags don't work well for emails forwarded through Dada Bridge


User logged out of list control panel if accesssed disable control panel screen. Why?


"Save, Then Test Your Sending Preferences..." button removes "Add the Sendmail '-f' flag..." pref


Dada Bridge: Append message subjects with the... Should be, "PREFIX message subjects..."


Unsubscribing Emails from Search gives error (Default Backend)


Dada Bridge: List Email check incorrect for List Owner/Admin


<form> tags have no, 'accept-charset="..."' parameter


Installer broken if current SQL config is incorrect



Summary 4.7.2

This release has a small bug fix from v4.7.1, but is really to fix the problem with the 4.7.1 release, namely the download link is not working on Github.

Bug Fixes 4.7.2

Tracker: Tracking "message opens" enabled by default


Changes 4.7.2

Tracking Message Opens is NOT enabled by default

See Issue #205


Summary 4.7.1

This release is a bug fix-only release of bugs found in the 4.7.0 release.

Bug Fixes 4.7.1

Docs: Amazon SES $AMAZON_SES_OPTIONS examples incorrect


Wrong Manual version used in v4.7.0 (defaults to 4.6.0)


Mailing Monitor: embedded tracker shows Server Error 500 if not "installed"


Dada Mail cannot send Profile email messages



S_PROGRAM_URL override does not seem to work


Library error in dada_clickthrough_plaintext_to_sql.pl


Opener Image: No dimensions set, set on top


Amazon SES: Some headers not written (Content-type)


Using the entity, "&#65279;" borks up mass mailing - HTML to Plaintext Conversion?


New "nope. Not defined." errors


"x Over Time" Tracker graphs are broken in Default Backend



Summary 4.7.0

This release of Dada Mail provides additional tools to help you manage your mailing list through the list control panel.

With this version, you now have the ability to:

Features 4.7.0

Tracker Reports in Mailing Monitor

Tracker Reports are available right in the mailing monitor of mass mailings to your subscribers and updated while your mass mailing goes out.

Enable this option in the Tracker plugin, the option is labeled, Show Message Reports in Mailing Monitor

Invitation-Only Mailing Lists

Mailing Lists can now be truly, Invitation-Only. The list owner of a mailing list must send out an Invitation Message from the list control panel and individuals may not self-subscribe.

List Control Panel Subscriptions Enhancements

Send a "Welcome" Message to Addresses Subscribed by the List Owner.

Mass subscriptions in the list control panel (if this option is enabled) can automatically be followed up with a, "Welcome" message sent to only the new subscribers.

This welcome message can be customized in the list control panel in the, Appearance and Templates - Email Message Templates screen under, "Welcome" Message to Addresses Subscribed in the List Control Panel

Send the Newest Archived Message to Addresses Subscribed by the List Owner.

As well as sending out a Welcome Message, you may now send out the newest archived message to just the subscribers that were newly added.

List Control Panel Unubscriptions Enhancements

Send a "Farewell" Message to Addresses Unsubscribed by the List Owner.

Mass unsubscriptions in the list control panel can automatically be followed up with a, "Farewell" message sent to only addresses that have just been removed.

This Farewell Message can be customized in the list control panel in the, Appearance and Templates - Email Message Templates screen under, "Farewell" Message to Addresses Unsubscribed in the List Control Panel

Tracker Enhancements

"Forward to a Friend" Logging

The Tracker plugin now has the ability to log every time the, "Forward to a Friend" form is used. Enabled by default.

Individual message reports will show the total number of times "Forward to a Friend" was used, as well as usage over time and by geography.

Archive Views Logging

The Tracker plugin now has the ability to log every time an archived message is viewed. Enabled by default.

Individual message reports will show the total number of times an archived message was viewed, as well as views over time and by geography.

Changes 4.7.0

"Enable, "Subscribe Checked Subscribers" button in the, Manage Subscribers -> Invite/Add -> Verify screen" option MOVED

The option, Enable, "Subscribe Checked Subscribers" button in the, Manage Subscribers - Invite/Add -> Verify screen > was not removed, but was moved to, Your Mailing List - Mailing List Options under, List Control Panel Subscriptions. The option has been relabled, Enable Adding Subscribers from within the List Control Panel

Closed Lists Behavior Changed

"Closed" lists are now truly closed, meaning that now subscriptions may be made either by a individual, or in the list control panel.

The behavior you may want instead, if you were running a closed list, is an, "Invitation-Only" list.

"Send the Newest Archived Message to All New Subscribers." Option Moved

The, Send the Newest Archived Message to All New Subscribers. option has been moved from, Message Archives - Archive Options to, Your Mailing List - Mailing List Options under, Subscriptions

Bug Fixes 4.7.0

Dada Bridge: Messages not checked, when stale messages in the way


"Manage Appearance" used instead of, "Appearance and Templates "


Docs: Missing dot ( . ) in code example.


Docs: Missing dot ( . ) in code example.


"Monitor Your Mailing" documentation(?) page is blank on pro 4.3



Summary 4.6.1

This a purely bug fix release, with most of the bugs fixed for the Dada Bridge plugin, to stop potential infinite loops from occuring.

Changes 4.6.1

CPAN Module Updates

Features 4.6.1

Bug Fixes 4.6.1

auto_pickup.pl: Can't locate object method "run" via package "tracker"


"Revert ALL Text to Defaults" at "Email Message Templates" not working


Discussion Lists with a List Name the same as the List Email can cause Infinite Loops!


Dada Bridge: Ability to subscribe List Email to Subscription List


Dada Bridge: Ability to set List Email address to same address used for List Owner or List Admin address


Dada Bridge: Ability to set List Email to a List Email used on a different list


Closes #180 List-Subscribe: header used even if the list is CLOSED


"Unsubscribe Tag Options" not reflected in, "List-Unsubscribe" header



Summary 4.6.0

v4.6.0 includes experimental subprojects, like Amazon SES support and unsubscribe tag/link flexibility, as well as updates and refinements to the default mailing list message templates, social bookmarking links, forward to a friend functionality, as well as a new plugin called, Mailing Monitor

Features 4.6.0

Amazon SES Mail Sending Support

Amazon SES allows you to send email messages with Dada Mail using the Amazon SES Web Service. This service could potentially allow someone running a website with a small mailing quota send out mass mailings to a very large list, utilizing Amazon's services.

This feature is currently labeled, Experimental. We need feedback. We want to make the feature better. Give us feedback!

See Also:


Forward to a Friend

It's now possible to place a, "Forward to a Friend" link into your mailing list messages.

The Forward to a Friend form is available to both subscribers as well as visitors to your mailing list archives.

More Information:


You can now change the behavior of what Dada Mail does, after a user clicks the Unsubscriber Link.

The second option is hoped to thwart absent-minded clicks, as well as auto link prefetching.

This feature is currently labeled, Experimental. We need feedback. We want to make the feature better. Give us feedback!

New Plugin: Mailing Monitor

The, Mailing Monitor plugin replaces the, auto_pickup.pl extension.

Compared to the old extension, the Mailing Monitor plugin has a nicer list control panel interface and much more simplified instructions.

The auto_pickup.pl extension will still be shipped with Dada Mail, but will simply be a redirect to this new plugin.

See Also:


Install Plugins/Extensions with the Dada Mail Installer

The installer that comes with Dada Mail now supports the installation of most of the plugins and extensions that come with Dada Mail.

The installer also gives you the option, when used to upgrade your current Dada Mail, to either keep your current .dada_config file, or to create a new .dada_config file, while also keeping your current .dada_files directory structure and contents.

See Also


Changes 4.6.0

Better-Written Mailing List Message Templates

Default Mailing List Messages are now much less verbose and more useful, with already-included "Forward to a Friend" link and better design.

The Facebook link has been replaced by the Facebook, Like button and the, Plus Google button has been added.

GeoIP data updated

The freshest GeoIP data has been included with Dada Mail.

Fresh as of 03-Aug-2011, fetched from:


Bug Fixes 4.6.0

POP3 Login Paramaters not getting passed correctly?



Summary 4.5.2

v4.5.2 fixes some small bugs found in v4.5.1 of Dada Mail, as well as adding additional capabilities to the Tracker Plugin

Bug Fixes 4.5.2

"Download List (CSV)" (PlainText backend) all on one line


Features 4.5.2

Tracker: Domain Breakdown of bouncing email addresses

Tracker: Messages Opens Over Time

Tracker: Messages Clickthroughs Over Time


Summary 4.5.1

v4.5.1 fixes some small bugs found in v4.5.0 of Dada Mail, mostly dealing with the Tracker plugin

Bug Fixes 4.5.1


Clickthrough.pm misc. debug code (warnings)


Tracker: Clickthrough URL report isn't contained


Tracker: GeoIP Country -> # report table has no order



Features 4.5.0

New Plugin! Tracker

Tracker is the heir to the once venerable but now quite rickety clickthrough_tracking.cgi plugin, rewritten to be better at everything clickthrough_tracking.cgi was supposed to be good at.

Tracker tracks the following Mass Mailing events:

Tracker also allows you to automatically track all the links in your mass mailing messages (instead of having to do everything manually) and provides very fancy charts/graphs of the information it compiles, for easy digestion.

More Information

See the Documenation for the Tracker plugin at:


Changes 4.5.0

clickthrough_tracker.cgi plugin removed

Replaced with the Tracker plugin, which is tons better.

Subscriber and # Mailing Lists Quotas changes

Dada Mail ships with a limit of 3 (instead of 5) mailing lists and a limit of 10,000 subscribers (instead of 25,000) quotas by default. We encourage you to use Pro Dada, if you need more than that: https://dadamailproject.com/purchase/pro.html

Bug Fixes 4.5.0



Advanced Sending Preferences: Unable to change three settings


Dadaized FormMail.pl - syntax errors?



Changes 4.4.3

Clickthrough Tracking Redirect Tags Now Support mailto: URLS

v4.4.2 introduced stricter checking of the redirect tags, to make sure they look like URL's. This essentially broken any redirects that didn't start with, http://, https:// or ftp:// (there's a few others, as well)

One redirect that was being used by some users was a mailto:, like this:



 <a href="[redirect=mailto:user@example.com]">Email Us!</a>  

Support for such redirects has be re-introduced.

ajax_include_subscribe.cgi - set the mailing list you want the form to use, by query string parameter

In the, ajax_include_subscribe.cgi script, you had the choice of either creating a form that allows you to show ALL lists available, or set a configuration variable within the script, to only show one list by default.

You may now set whichever list you would like the subscription form to use, via the, list query string parameter:

 <script type="text/javascript" src="http://example.com/cgi-bin/dada/extensions/ajax_include_subscribe.cgi?list=mylist"></script> 

to show a subscription form for just that list. This works better than setting it within the extension, as you have the choice of making a specific subscription form, for any of your lists.

Documentation Move Dada Mail Between Servers/Accounts

New documentation is now shipped to give guidance on how to move Dada Mail between hosting servers/accounts

The docs are readable here:


View List Screen Doesn't Show So Much Stuff if There's Nothing to Show

If you don't have any Subscribers/Addresses to show, the View List Screen no longer shows all that Stuff it usually shows.

Black List Additions are Made a Little More Clearly Known

In the List Control Panel, if you remove addresses from your mailing list, the number of addresses that are then black listed is now displayed, instead of just mysteriously being added.

Bounce Handler: Erase the Scorecard in the list control panel

You can now erase the Bounce Scorecard on a list-per-list basis in the list control panel.

Bug Fixes

Attachments Unviewable in Archives if the attachment has a space in the filename


Finished Mass Mailing Notification has unparsed template tag


Clicking, "Send Invitations" with no addresses to invite leads to a broken screen


A "closed" list still allows invitations to be sent - which cannot be answered.


Dada Mail Logo not showing up in installer


multi_admin_subscribers.cgi - doesn't show search results


multi_admin_subscribers.cgi - won't work with mixed cased email addresses


Raw Clickthrough log not listed in log_viewer.cgi


Embedded (regular - non-AJAX) Javascript subscription form does not work


Send a List Invitation - PlainText Version (only) does not work


"SQLite" backend and Sessions: wrong table, "sessions" being used?


Use of, DADA::MailingList::Subscribers::remove_from_list deprecated method


prototype JavaScript library is out of date - using: 1.6, current: 1.7


Send a List Invitation - PlainText Version sent in multipart email - both plaintext


Send a List Invitation - Email Messages created with the wrong encoding


Config.pm: Use of uninitialized value in string ne at ..//DADA/Config.pm line 5184.



Changes 4.4.

Bug Fixes 4.4.2

Saving archive options -> Can't locate object method "save_w_meta"


"Download List (CSV)" doesn't work


"what_is_dada_mail" screen returns back Server Error


DADA::MailingList::Subscribers::add_subscriber() "-dupe_check" option not documented, tested


Duplicate email addresses can be subscribed in list control panel in last step -


"Delete List" screen will show Server Error, once you delete a list


Screen after you fill out the form to create a new list is completely blank


Beatitude/List Backup/Restore: Attempting to restore a blank scheduled mailing will result in an error


Beatitude: Schedules backed up at each schedule run


Restore Lists: Popup menus can have the wrong information


redirect tags not looked for validity in the URL


"I know these tables already exist." label doesn't toggle checkbox in installer


grammar error in Mailing List Options screen s/subscription/unsubscription/



Changes 4.4.1

Dada Bridge SpamAssassin 3 Support Added

Previously, only v2 of SpamAssassin was supported.

Bug Fixes 4.4.1


Can't locate object method "cache_dir" via package "self" - error


signing into a single list (via f=sign_in) produces an error.


Editing an Archive screen sometimes returns back a, "Method Not Allowed" error



Changes 4.4.0

Closed-Loop Opt-In Subscription Not Enforced by Default, Anymore

In v4.3.0, Closed-Loop Opt-In Subscription model was applied in Dada Mail to mailing list by default and by default you were not able to change these list settings to tailor it to your needs, without first changing the config variable, $ENFORCE_CLOSED_LOOP_OPT_IN to, 0.

It was also noted that in future versions of Dada Mail, features that did not conform to Closed-Loop Opt In would be removed from Dada Mail.

The, $ENFORCE_CLOSED_LOOP_OPT_IN variable is now shipped with a value of, 0 by default, making Dada Mail's behavior the same as pre-4.3.0 versions of Dada Mail.

We're also opening up the dialogue to all users of Dada Mail on how they see is the best way to balance power and versatility of Dada Mail, with accountability and adherence of the rules of a legitimate mailing list. We will put on hold the plan to deprecate these features, until we got more feedback from the users of Dada Mail. Please join the discussion:


Code Cleanup

Code cleanup has trimmed 500+ lines from the mail.cgi file. Many of the changes can be seen from moving from the DADA::MailingList::Settings::save method to the, DADA::MailingList::Settings::save_w_params method and from moving from the DADA::Templates::Widgets::screen sub to the DADA::Templates::Widgets::wrap_screen sub.

Mass Mailing: Better Error Reporting

One problem when sending mass mailings - especially one using Dada Mail's templating system, is that you may make an error when using the template tags. This was a difficult error to even know about, since no reporting was made, if an error was found - Dada Mail would simply error out and your message would seem to be, "stuck" in the mass mailing queue, forever.

Now, many syntax errors should now be caught when sending a mass mailing, a webpage, or a list invitation.

Dada Bridge: Reply and Reply-All Behavior

Dada Bridge has simplified some of its options to make it more inline with other discussion mailing list apps, when it comes to discussion lists. You now have two choices:

* Have replies always be addressed to the mailing list (with an option to reply-all), or,

* Have replies addressed to the discussion list

View List: "Open List in New Window" button renamed to, "Download List"

The list will also be given back as a CSV file, so most likely, you'll get a little dialog box asking if you want to either open it in some application, or just download it.

View List: Email Your List Button is Gone

You may still download your mailing list in csv format.

Log View: Download the Raw Log

You can now download the entire log file, through the log viewer.

Installer: Old Screen Cache Files Removed

If you use the installer to upgrade Dada Mail (as it is noted you may do), old screen cache files will be removed, so that old information/templates won't be shown, with the newer version of Dada Mail.

Template System: initial "tmpl_set support", template wrapping

There's initial support for what's called the, tmpl_set template tag, that basically allows you to set a variable within your template, to be used somewhere else within your template.

This is interesting when coupled with initial support with wrapping one template, with another.

In one way, Dada Mail already supports this - many template screens you see use either the default list template, or the default admin template and add content to another template inside it.

Internally, this was done in a very kludgey way and has now been cleaned up. There could be a potential for a 33% speedup for screen creation (which is nice)

What has also been cleaned up is a problem with the title of many HTML screens in Dada Mail being saved within the program files itself. You can now set the title of the HTML screen from within the template that gets wrapped. You'll see a line like this near the top of many of the templates:

 <!-- tmpl_set name="title" value="I am a title!" -->

Since moving to this way of setting the title for HTML screens, many, many of the templates have been changed. If you've made custom changes to the templates, you will want to do a diff on your version, with the version that ships with Dada Mail.

AJAX: internal changes

Many instances of using a package called, CGI::Ajax (http://search.cpan.org/dist/CGI-Ajax/) has been replaced to use prototype (http://www.prototypejs.org/)

The only place that CGI::Ajax is still being used is in the, ajax_include_subscribe.cgi extension - and we'll most likely remove it from there, soon as well.

Mailing Monitor: AJAX

The Mailing Monitor in the list control panel is now refreshed via AJAX, so that only a portion of the screen you see needs to be updated, instead of a refresh of the entire screen. This seems to make things appear much more snappy.

Subscription/Unsubscription Custom URL Redirect API Change

If there's an error with a subscription/unsubscription request, Dada Mail would add a list of the errors it came across by passing them in query string with a parameter named, errors. This name has been changed to, errors[] to help out php folk. This is tied to this bug:


Web Services Examples

Examples for initiating a subscription request have been updated and added to. Currently there are server/client examples in SOAP and REST. There's also a command line example. Profile Fields are now support for all clients and servers.

The example scripts can be found in the distro, at:


Documentation can be found at:

dada/extras/documentation/pod_source/COOKBOOK-subscriptions.pod dada/extras/documentation/html_version/COOKBOOK-subscriptions.pod.html

Test Mass Mailings, Mail Merging

If the email address you're using has a profile, its fields ("First Name", "Last Name", etc) will be used in test mass mailings, instead of not using any fields. This is also true if the list owner email has their own profile.

Bug Fixes 4.4.0

blank "Verify" screen when adding/removing addresses in the list control panel


There seems to be a few small problems with both the add/remove verification screens, if the information given is not formed correctly.

Among things that can cause problems: * Invalid comma separated values format * blank lines * blank lines, except for spaces * incorrect information - such as HTML. This HTML will then be viewed in the verification screens, without the HTML be escaped.

This causes a lot of problems with submitting addresses, as there isn't any notification, by Dada Mail that anything is wrong, except part of the screen having no information, what so ever.

Email Address submitted with mixed cases can break the unsubscription mechanism


Sending Test Messages does not pick up on any profile fields of the test recipients email address


Beatitude: Yearly repeating schedules repeat in less than a year


Multiple use of parameters in redirect to URL


Discussion List Reply/Reply-All behaviour is broken



This release is a bugfix-only release:

Bugfixes 4.3.2

The HTML Message to Text Message thingy breaks HTML::Template tags. Ugh!


"Send Subscription Successful Emails is Disabled" notice shown, even if it isn't


Changes 4.3.2

There's some new documentation about upgrading from a Simple Scripts to a Regular Installation of Dada Mail:



Changes 4.3.1

Template Changes 4.3.1

Bugs were found in a few of the templates Dada Mail uses - the following templates have small changes in them:

SOAP Examples for Subscribing Included

Some SOAP proof of concept files have been included in, dada/extras/scripts/SOAP

They can be read at:


They include a server written in Perl and clients written in Perl and php. They are also documented in the Subscription Cookbook

They are, in fact, Proof of Concepts and are not complete applications.

Plugin: mx_lookup.cgi cleaned up

The mx_lookup.cgi plugin has been cleaned up and documentation added. It's currently listed as, DEPRECATED, but will not go away, until the functionality it has is brought into the core of the program. It's still a good example of how to make a simple Dada Mail plugin.

Code Cleanup

github user masktos (Mark Stosberg) was kind enough to refactor a ton code into Dada Mail, having to do with Modern Perl/Perl Best Practices coding. Thanks, Mark! Some of the things he worked on include,

Bug Fixes 4.3.1


General FAQ does not mention installer


$ENFORCE_CLOSED_LOOP_OPT_IN cannot be overriden in the outside config file (.dada_config)


archive_screen.tmpl misplaced <!-- /tmpl_if --> tag for <!-- tmpl_if list_settings.enable_gravatars --> leads to formatting problems



Docs still mention "Adding" email addresses via the list control panel



"Send a List Invitation" screen Help Button is broken


No tests for DADA::App::Guts::available_lists - why not?


reCAPTCHA settings in, Your Mailing List -> Mailing List Options always greyed out?


Requirements doc out of date


Missing unordered list tags in $MAILING_LIST_MESSAGE_HTML template


Dada Mail 4.3.0, FormatMessages.pm and Email Templates


"Look Up Hostnames When Validating Email Addresses (MX Lookup)" cannot be enabled


No .htaccess in .dada_files directory by default, when installing w/the installer



Installation instructions for 4.3.0 are the same as they were for 4.2.0.

Changes 4.3.0

CPAN module Captcha::reCAPTCHA upgraded from v.92 to v.94

Twitter Support Removed

Twitter turned off support for the, "Basic" authorization API they were using, in conjunction with oAuth (the new standard). oAuth isn't very compatible with Dada Mail, so we had to pull support for it.

Habeas Watermark Support Removed

The Habeas Watermark isn't really used, anymore, anyways.

Features 4.3.0

Dada Bridge: Ignore/Send a Rejection message for Spam Messages

It's now possible to either ignore messages seen as spam, or send a rejection message.

Unsubscription Confirmations: Email Notice

If someone attempts to unsubscribe an email address that isn't actually subscribed, a notification will be sent, via email to the address, instead of having a notice in the browser. This is to keep the privacy of the subscriber.

This behavior can be enabled/disabled in the list control panel, in,

Your Mailing List - Mailing List Options

Under the option,

If someone not currently subscribed to your mailing list attempts to unsubscribe, send a, "You are not Subscribed!" message via email, instead of showing this error in their web browser.

It is disabled by default.

Closed-Loop Opt-In Subscription now Enforced by default

By default, the following features in Dada Mail are enabled:

By default, the following features in Dada Mail are disabled:

These are options are set as such to closely follow Closed-Loop Opt-In Subscribing (meaning, a subscriber has to confirm a subscription themselves), which we think is the best way to run a email mailing list.

The options to change these defaults that used to be available have been REMOVED from the List Control Panel. You may still reveal these options by setting the Config variable, $ENFORCE_CLOSED_LOOP_OPT_IN to, 0. We do not suggest this and we consider the above options DEPRECATED.

Email Message Templates Scanned for Correct Tags, Fixed if Missing.

To make sure the subscription/removal systems in Dada Mail work correctly, Dada Mail will scan the user-editable email message templates, before it sends them out, to make sure they have the right tags, to perform the right actions. Here's a list of what tags are looked for, in which templates:

Config variable changes


The menu labled, "Add" under, "Manage Subscribers" has been change. The line used to read,

        {-Title      => 'Add',

and now, reads:

        {-Title      => 'Invite<!-- tmpl_if list_settings.enable_mass_subscribe -->/Add<!-- /tmpl_if -->',

Although you may want to change this line if you're upgrade from v4.x.x to v4.3.0, you won't be required to


The variable, $MAILlING_LIST_MESSAGE has been renamed to, $MAILING_LIST_MESSAGE. You will need to rename this varialbe in your .dada_config file, if you are currently using it.

Dada Mail will also alert the user of the missing tags in the List Control Panel, Appearance and Templates - Email Message Templates

Bug Fixes 4.3.0

uncompress_dada.cgi script will return, "Server Error 500", if it can't find the .tar.gz file to uncompress


$MAILlING_LIST_MESSAGE and, $MAILlING_LIST_MESSAGE_HTML variables speled incorrectly?


List Page is NOT have email address protection


No, "Are you sure?!" popup alert when clicking the, "remove all subscribers" button


No, "Are you sure?!" popup alert when clicking the, "purge all archives?" button


available_lists with, "-In_Order" param doesn't.


$PROGRAM_ERROR_LOG example in Config.pm is missing first, "/" in path


Some Config.pm variables not override-able in outside config file (.dada_config)


inconstent naming of url-parameter, error/errors


'=' added to the end of some plaintext mailings in quoted-printable encoding


Can't delete an attachment in an archived message?


Changes to Profile Subscriber Fields does not clear cache



multiple_subscribe.cgi does not use email notification for "already subscribed"


Unsubscribe requests should have similar "notify via email, rather than web UI" functionality


How's Twitter Support?


Habeas Watermark Not Really used Anymore?



Changes 4.2.1

This is basically a bug-fix only release. But of note:

Bug Fixes 4.2.1

"Setup Info" screen incorrectly determines a installation as, "Basic" if the $PROGRAM_CONFIG_FILE_DIR is set to, "auto"


Reply-To in %EMAIL_HEADERS will never be used



Twitter Support

Twitter Support is currently not working, as the type of authorization Dada Mail was utilising (Basic) has been dropped by Twitter in favor of a more substantial authentication scheme called oAuth.


Habeas Watermark

The Habeas Watermark isn't really used anymore, Habeas The Company was bought by a different company, that has a vastly different scheme, other than attempting to legally go after unauthorized use of their copyright material. The new system requires different headers to be present, which Dada Mail does not currently support. We'll see about supporting them, in the future.


Changes 4.2.0

Dada Mail Installer

Dada Mail now comes with an installer - manually setting up and configuring Dada Mail is now longer needed. Heavens be praised.

Dada Installer directions may be found at:


Upgrade instructions may be found at:


The installar script may also be run via the command line - instructions can be found on how to use it, by invoking the script with the, --help flag,

 shell>./install.cgi --help

Installation Terminology Changes

The, "Advanced" Installation of Dada Mail is just known as a, "Manual" installation of Dada Mail.

The Dada Mail Installer will install Dada Mail the same way as one would install Dada Mail manually. Directions may be found here:


The, "Basic" Installation method is not recommended or supported. If upgrading from a, "Basic" installation, it's recommended to move to a more contemporary installation setup:


Setup Info Screen

The, "Setup Info" Screen, that you can access using this URL:


has been completely rewritten. In light of the Installer, it does not attempt to help configure Dada Mail for you, but will tell you what type of installation it recognizes, will present to you the entire contents of your, dada/DADA/Config.pm file as well as your .dada_config file and will show you how all config variables are being interpreted.


The $ADMIN_MENU variable has been changed to add the, "Dada Mail Setup Info" menu item. It looks like this:

        {-Title      => '<!-- tmpl_var PROGRAM_NAME --> Setup Info',
         -Title_URL  => "$S_PROGRAM_URL?flavor=setup_info",
         -Function   => 'setup_info',
         -Activated  => 1,

MySQL 4-specific schema REMOVED

The MySQL schema shipped for Dada Mail, specifically for v4 of MySQL has been removed. The reason for the schema was more because of UTF-8 incompatibilities, rather than problems with this version of MySQL v4.

Bug Fixes

Profile Email Addresses aren't normalized for case sensitivity


PlainText Backend - subscribed addresses with a, ' (single quote) will disrupt subscriptions



Changes 4.1.0

Screen Cache Working Again, Enabled by Default

The Screen Cache API allows Dada Mail to save fully-rendered Dada Mail screens that are commonly viewed.

Enabled by Default

The Screen Cache is enabled by default, via setting the $SCREEN_CACHE config variable, to 1

Changes to the $ADMIN_MENU

A new entry under the, "Plugins" heading has been added to the $ADMIN_MENU variable in the Config.pm, dada/DADA/Template/templates/example_dada_config.tmpl and, dada/extras/examples/example_dada_config.txt

More information:

Optimizations in Mass Mailing Speeds

Small Tweaks have been made to the Mass Mailing code in Dada Mail through code profiling which should positively impact Mass Mailing Speeds, upwards of .10 to .25 seconds faster, per message.

Older, unused social bookmarking sites have been removed (as well as Fark, because,well...)

The Facebook link sharing button has also been added.

Bug Fixes 4.1.0

Missing closing, "</ul>" HTML tag in profile_update_email_confirm.tmpl


Profile email updates cannot happen on closed lists


Unpaired divs in list_page_screen.tmpl


Can't view archived attachments



"Send Subscribers to List Owner" function not very friendly to use



Changes 4.0.5

POP3 and SMTP Passwords Saved in List Settings

This is not a security bug/issue/notice - rather, this is a bug that was introduced with the full UTF-8 support.

The binary-in-nature encrypted passwords saved by Dada Mail in the List Settings table/files in Dada Mail may have become unusable/corrupted with version 4.0.3 and/or 4.0.4 of Dada Mail.

If you are having trouble/an impossible time using any of the POP3 or SMTP connection stuff in Dada Mail, including Dada Bridge, Mystery Girl (Bounce Handler) or POP-before-SMTP and/or SMTP SASL authentication - or even the Twitter stuff, you may be bitten by this bug. 4.0.5 should provide a fix for this problem, BUT (big but), 4.0.5 could potentialy break any currently stored passwords.

The fix will be to simply re-save the correct password, after you've upgraded to 4.0.5.

New users of Dada Mail will not be affected by this problem.

This problem does not impact your List Password, or the Dada Mail Root Password - both of which are saved in a one-way encryption, that is separate from the way POP3/SMTP passwords are saved in Dada Mail.

Bug Fixes 4.0.5

Subscriptions are not logged in the usage log.


Subscribers can be subscribed more than once to the black list


Dada Bridge sending broken if, "Strip attachments that have the following file ending or mime-type:" is enabled


"Soft_Max_Size_Of_Any_Message" Dada Bridge plugin var not in "example_dada_config.txt" or the .dada_config semi-auto install template


No List-Unsubscribe header in some email messages


Can't call method "prepare" on an undefined value at /DADA/Profile.pm line 59"


Dada Bridge doesn't give friendly message about info being saved when you save info


POP3/SMTP passwords corrupted?



Send a Webpage gives unhelpful error if you enter a wrong URL of a missing page


4.0.1 Open discussion lists broken


This bug wasn't actually closed with this release, but from a previous release. It has though, been confirmed to be closed with this release.


Changes 4.0.4

UTF-8 Issues

MySQL, PostgreSQL, SQLite schema changes

Some compatibility issues cropped up, regarding UTF-8/unicode character set/encoding in re: to the SQL schemas. The schemas for all supported SQL backends have been modified to better work, mostly by changing fields with type, text(320), to type, varchar(80). Other notes have been added to the UTF-8 FAQ.

dada3_to_dada4_sql.pl changes

Along with looking into changing the default schema in Dada Mail, the v3 to v4 migration script will now make the necessary schema and character set changes.

The character encoding changes and SQL schema changes could potentially be desctructive, so we do, in fact, highly encourage you to make a backup of the entire database, before running the migration tool. Most notably, the character encoding change does not work perfectly. If your data contains a lot of non-Latin1 characters, we'd highly suggest you do your own ASCII/Latin1 to UTF-8 migration, before upgrading your Dada Mail.

If you are running a verion of Dada Mail 4.0.0 to 4.0.3, you'll still need to make those schema changes manually if you're having trouble (exactly what to do, including example SQL is located in the UTF-8 FAQ).

Bug Fixes 4.0.4

Dada Bridge always reports that IO::Socket::SSL isn't available


"Use Secure Sockets Layer (SSL)" option sometimes not available, even though appropriate CPAN module installed


Dada Bridge will always say that SpamAssassin isn't available


Moderation broken on Dada Bridge


Fallback Variables aren't used.


"Save, Then Test Your Sending Preferences..." button broken in Sending Preferences


CPAN Modules 4.0.4


Changes 4.0.3

Unicode/UTF-8 Work

We have worked very, very hard to get Dada Mail working with UTF-8/Unicode.

We think we did a pretty good job and you'll have a most amazing experience when comparing this version to any previous version of Dada Mail (ever), but there may be tiny things still to work out.

We need to know about them, don't be shy!

SQL table schema changes!

People who upgrade to 4.0.3 (and any version afterwards, until things change!) should note that the MySQL and PostgreSQL Table Schemas have changed!

You may need to update your own tables, to support UTF-8 (if they aren't already in that encoding).

See Also:

If you're upgrading, please read over the updated UTF-8/Unicode FAQ:


If you're doing a new install, there's nothing you need to know, Dada Mail should work well out of the box in re: to UTF-8/Unicode stuff.

Changes to Default List Settings

We've changed a few of the default list settings, hopefully so that everyone has a more pleasant experience, right off the bat:

Activate Black List

We've enabled the setting to active the Black List, by default.

We're also enabling the below settings:

You still have the option to change new lists to the previous behavior and already created lists will have their previous behavior, if Black List Settings have already been edited.

The option, Print List-Specific Headers has been removed from, Mail Sending -Advanced Sending Preferences has been removed, but the functionality has not. All mailing list messages will have these headers.

Send Unsubscription Confirmation Emails (Closed-Loop Opt-Out) - disabled by default

Send Unsubscription Confirmation Emails (Closed-Loop Opt-Out) has been disabled by default (you can still enable it)

This option, when enabled, requires that when someone wants to unsubscribe, they have to confirm this unsubscription by clicking on the unsubscription confirmation link in a URL sent their subscribed address.

When disabled (the new default), they simply have to fill out the subscribe/unsubscribe form.

When available, both the Subscription and Unsubscription links will have the potential subscriber's (or unsubscriber's) email address in the link itself, so that the user does not have to do the two-step of first following the link and then typing in their email address.

These links are created per-subscriber (or potential sub/unsub), when you use the:

 <!-- tmpl_var list_subscribe_link -->


 <!-- tmpl_var list_unsubscribe_link --> 

tags. Previously, these tags only provided a link to the subscription/unsubscription form, without the email address embedded within the link itself. There is no way to revert this behaviour, but you can still roll your own links, like this:

Subscription Link:

 <!-- tmpl_var PROGRAM_URL -->/s/<!-- tmpl_var list_settings.list --> 

Unsubscription Link:

 <!-- tmpl_var PROGRAM_URL -->/u/<!-- tmpl_var list_settings.list -->

Dada Mail will now do a quick check to make sure that there is a Dada Mail Unsubscription link in your mass mailing messages, before sending them out.

If one is not found, one will be automatically appended to the end of your message.

It will not be very fancy.

We suggest that you make sure that you have a real, valid, Dada Mail unsubscription link in your Mailing List Messages.

Bug Fixes 4.0.3

Send newest archived message may have outdated header information


pop3 username/password not saved when "Save, Then Test..." button pressed in Sending Preferences


Beatitude: Months are listed out of order


profile field names can contain more than just ascii letters, numbers and underscores


list short names can contain more than just ascii letters, numbers and underscores


Beatitude: Scheduled List Not in Any Useable Order?


Dada Bridge: Spam Assassin Level Picker isn't available


Sending Preferences don't correctly state if you can use Use Secure Sockets Layer (SSL) for POP-before-SMTP


Double Subscriptions when using List Invitation


Archived messages not templated out in publicly displayed archives



Unsubsciption Notice to List Owner doesn't have subscriber (profile) fields


Disabled Menu items return server error when using the, "Classic" session type



Changes 4.0.2

Dada Bridge: "Allow Open Discussion List" option always viewable

For whatever reason, the, "Allow Open Discussion List" option wasn't viewable, until you first enabled discussion lists. It will now *always* be viewable, as long as the Plugin Config Param, Allow_Open_Discussion_List is set to, 1

Dada Bridge: New Plugin Config Param: Check_Multiple_From_Addresses

A new Plugin Config Paramater called, Check_Multiple_From_Addresses has been added and has a default value of, 1. When enabled, messages that have more than one sender aren't supported by Dada Bridge and these messages will be ignored.

Set this parameter to, 0 to revert to the previous behavior.

Mail Sending - "broken pipe" catch removed

Dada Mail had a very simple test to make sure mail using the sendmail command was successful, by looking at any error messages created from sending mail this way. If a, "broken pipe" message was found while sending a mass mailing, a mass mailing would be stopped, and would be picked up and sending would be attempted starting at the same address that gave the error. The complete logged error may look like this:

        [Mon Jan  4 16:40:08 2010] mail.cgi: Pro Dada 4.0.1 Warning: 
        [Mon Jan  4 16:40:08 2010] mail.cgi:                          didn't close pipe to '|/usr/sbin/sendmail -t -fbounces@example.com' while 
        [Mon Jan  4 16:40:08 2010] mail.cgi:                          attempting to send a message to: '"My Mailing List" <me@example.com> because:' Broken pipe at ..//DADA/MailingList/Schedules.pm line 808
        [Mon Jan  4 16:40:08 2010] mail.cgi: Broken Pipe error! returning -1 - Mass Mailing should be exit()ed! at ..//DADA/MailingList/Schedules.pm line 808
        [Mon Jan  4 16:40:08 2010] mail.cgi: [listshortname]  Mailout:<20100104164007.54315974@nicky510.com> Bailing out of Mailing for now - last message was unable to be sent! exit()ing! at ..//DADA/MailingList/Schedules.pm line 808

This behavior is problematic, since the, "broken pipe" error can happen, even if a message (or part of a message) is actually sent. Sometimes this happens if you have a message that contains a dot by itself on one line, like this:


If this is problematic to you (messages being cut off because of a lone dot on one line) and you're using the sendmail command to send messages, consider changing the $MAIL_SETTINGS and, $MASS_MAIL_SETTINGS Config variables to include the, -i flag, like this:

 $MAIL_SETTINGS      = "|$MAILPROG -t -i";

Bug Fixes 4.0.2

confirmation pins with '/' as the first character break the confirmation process


Dada Bridge: "Deliver a Copy" isn't working


pop3_username parameter not passed to mail_sending_options.tmpl


Dada Bridge: From: header validation can be spoofed


Use One SMTP Connection per Batch (Experimental) unsaveable?



Changes 4.0.1

New Documentation

The following topics were added to the documentation:

New MySQL 4 Specific Schema

A MySQL Schema specifically for MySQL 4 is now shipped with Dada Mail at:


DB Backup to SQL List Settings import script added

Although not heavily documented (yet), a DB Backup to SQL script has been added to the distribution at:


Misc. Changes

Bug Fixes 4.0.1

Use Secure Sockets Layer (SSL) cannot be checked in the Sending


"List Password Reset" email message cannot be over-rided


MySQL schema isn't compatible with MySQL 4


Bounce Message reports that put email addresses in brackets <> can't be parsed?


Wrong version numbers in 3.x to 4.x migration assistant


parse_for_windows_live suboutine is broken


SQL Backend Clickthrough Tracker still requires a DBM package



Changes 4.0.0

4.0.0 Features

CPAN Perl Libraries

The CPAN Perl Libraries needed for Dada Mail are now being saved within the Git Repository of Dada Mail. We don't know if this is the greatest idea, since we don't really plan on making changes to this modules. But, we're doing it. If any problems occur, please report!


There are many new modules in Dada Mail's backend, including:

Dada Mail Project