v11.x Changelog



This version of Dada Mail includes experiemental support for the Mailgun API, along with a few bug fixes.


Mailgun API Support (Experimental)

Mailgun is a third party email sending service, like Amazon SES. For an overview of third party email sending services, see:


Additional information on Mailgun support:



Searching members is broken in v11.21.0 #1171


Plugin: Change List Shortname outdated - does not update many tables #1168




This version of Dada Mail is a feature release, with a few bug fixes.


Search for message archives has been added to the admin view of the archives in the list control panel.

Message Archive Pagination


Pagination has been added to the user view of messages archives, including search. Along with pagination being a nice-to-have feature, since search results were not pagination in past versions, queries could have been returned with an incredible amount of search results to be shown on the single screen. This realistically could have been a detriment to server performance if too many search queries were returned in a small amount of time.

Pagination has also been added to the admin view of the messag archives in the list control panel, including search.

reCAPTCHA protection on the Global Configuration plugin #1155

It seemed a good idea to protect the use of reconfiguring the entire app through this plugin by further protecting the form that allows you to do so with a CAPTCHA. This is now the case.


Change DADA::Security::SimpleAuthStringState to use an SQL table/database

The login forms are protected by a simple CSRF-like scheme. The backend using a DB File, rather than having the information needed for the protection saved in the SQL backend. In rare circumstances, the prerequisits to use these DB Files can be unavailable on the account.

This version changes this to have that info saved in a SQL table, and removes the need to use the DB Files.

Using the new backend should be transparent to the user - nothing extra is required. There will be a new table in the database named, dada_simple_auth_str.


Scheduled Jobs (cronjobs) don't list all the individual jobs that can be run #1161


List Control Panel Archive Index Screen shows empty interface if no archived messages are available #1162


Screen Cache is cleaned out every time scheduled jobs (cronjob) is ran #1163


Individual archive message screens (public view) aren't always cached #1164


"Forward to a Friend" form doesn't have any required fields #1165


Screen, Data Cache is not flushed when installer is run #1166



This version of Dada Mail is a minor bug release.


Drag and Drop Image Upload does not support upper case filenames #1147


CSRF is set to "disable" in the "configure security options" section of the installer when installer is revisted #


Mailing List:Options speling mistake, "nitch" should be, "niche" #1153


Consider an OPTIMIZE after removing old Tracker analytics #1149


Mention IMAP support in Bounce Handler docs #1151


Perl CPAN Module DateTime.pm unable to located in schedule report


Add option to hide reCAPTCHA v3 badge #1138


Doc Update: "Advanced Template Syntax" isn't a thing #1154


Check that custom template used in, Appearance Your Mailing List Template has all required tags #831



This version of Dada Mail is a minor bug release.

Of note is a nasty bug in the Bridge plugin that affected some messages that are sent to it. These messages would fail to be sent, and a line in your error log may be found,

parse_data: unable to open in-memory file handle at...

See the following issue:



One-click unsubscription can't be enabled #1139


Mis-speling in, "Subscribed" Message #1140


bridge - irrecoverable error processing message #1135


Rate Limits should be ignored for logged in administrators when handling unsubscribe requests #1130


Searching a list's message archive in the public view may return 500 error #1141




This version of Dada Mail is a major feature release.


Dada Mail Build Script

In past versions, the only person who could build a working copy of Dada Mail that can be distributed was the main developer (me!), as many different parts of the app lived only on my own Macbook, which are added using a local build script. As development continued, more additional parts were needed to make a working package/distribution of Dada Mail, making this problem worse over time.

This hampers development of others, as no one else can check out Dada Mail and start developing. It has been my goal to remediate this problem. v11.19.0 solved a very large blocker on this, by decoupling the Perl Library bundled with Dada Mail from the main dada-mail distribution.

Starting with Dada Mail v11.20.0, all the needed parts to build Dada Mail are now available on Github, along with the build script. This allows you to build a fully working version of Dada Mail and thus allow you to fork the main Dada Mail repo, as well as any of these other parts to do whatever you'd like. Happy hacking!

See the README on the Dada Mail github for information on how to build Dada Mail:


as well as the source of the build script,


as well as the new doc on how to build Dada Mail from source,


“Bounces” tab in the membership screen

You can now see any bounced message reports have been created for a member, on their own screen, rather than having to search for them on the Bounce Scorecord, or via the Log Viewer.

Screens accessed by unsubscription links in mailing list messages that are followed ("clicked") less than 5 minutes after the message are sent will have their JavaScript disabled. The short time between message sent to unsubsription link clicked is usually a sign that a human is not doing the clicking, and such behavior causes false unsubscribes, which makes list owners pretty sad. The software that is following the link seems to also understand JavaScript, which is why we're disabling it. From my research, this is mostly those who use Outlook 365 with Advanced Threat Protection seems to be the biggest culprit.

This blog post does a good job explaining the problem, and offering a solution, which I've essentially adopted,


The arms race to stop link pre-fetching continues.

Rich Filemanager upgraded to v2.7.6

DADA::App::HTMLtoMIMEMessage added to Debug Trace Options

This is what Debug Trace Options are:


Better error reporting for problems with database connections

A small change/bugfix, but this may help those trying to figure out strange database connection problems, so it's a win.

Breaking Changes!

KCFinder Dropped

I've decided to stop shipping with KCFinder. There are some open XSS security vulnerabilkities in the app and Rich Filemanager which is also shipped seems to have more features/is more secure.

If you were using KCFinder, Rich Filemanager will be selected for you by default.

Core 5 Filemanager is still bundled with Dada Mail, and the backend has been updated (by me).


Data::Google::Visualization::DataTable defaults to using JSON::XS which may not be available




This version of Dada Mail is a major feature release.


Enable/Disable mailing list specific email headers

Mailing list headers help mail readers categorize the messages you send as being from a mailing list, as well as provide meta information about your mailing list. Sometimes, they can get in the way of deliverability. We've made the use of them optional.

Find this feature in, Mailing List: Options labeled, Use mailing list headers (enabled by default).

The list headers you can enable/disable is found in the Config.pm file in the variable, $LIST_HEADERS. Here are the headers that can be enabled/disabled,


Enhanced HTML editing via "Grab content from a URL"

Dada Mail can grab content for a mailing list message just by giving it a URL.

You can also crop the webpage to only send the content found in a specific HTML id or class attribute, and remove content found in HTML tags that have specific id or class attributes.

We've enhanced that last feature, by allowing you to set multiple attributes, be they HTML ids, classes, or any other HTML attribute found in a tag. You can also just remove all instances of any HTML tag.

Find this option where you edit your draft mailing list messages, under Grab content from a URL. The feature itself is labeled, Remove content found between the following ids, classes, or other attributes:

If you wanted to remove all instances of tags with the class of, "example", you would add in,


for an id of the same name:


To remove all <img> tags,


Experiment with other HTML attributes!

This same feature is also available for fetching content from an RSS/Atom Feed.

Breaking Changes!

In past versions of Dada Mail, either "id" or, "class" had to be picked in a separate text box. This text box has been removed now that you can set a id, class, or other attributes in the text box that remains. If you are already using this feature (located only for fetching via a Feed URL), you will need to adjust your draft settings.

Installer: Ability to Switch the path to the Perl interpreter

Oftentimes (and especially on cPanel-based hosting accounts) there is an alternative Perl interpreter available to use, but isn't at the default Perl path that Dada Mail is configured to use. This alternative Perl interpreter could be more up to date, and also use the modules that are available to the cPanel-based Perl module installer.

We've made it easy to switch to this alternative Perl interpreter located. Do note, that there's no way to revert to the default Perl interpreter location. You would need to either reinstall Dada Mail from scratch, or manually reset the "shebang lines" yourself.

Upgraded Included Perl Library! (perllib)

Dada Mail comes with most all of the Perl CPAN Perl modules needed to run the app. These modules are located in the, dada/DADA/perllib directory. This collection of CPAN modules was very much out of date, and the exact list of Perl modules shipped wasn't exactly known.

This has now been fixed, and steps have been taken to make sure that future releases will have an up to date included Perl library. The exact modules that are included have been removed from the Dada Mail git repo, and have been made into their own repo:


This itself is created using the following Bundle:


So you can see which modules are included and install them yourself, rather than use the included perllib.

This change will most likely be transparent to most users, but the updates of these modules was huge in terms of code line count, and many bug fixes and security fixes within these modules are now bundled with Dada Mail.

Cross-Site Request Forgery (CSRF) Prevention can now be disabled

Cross-Site Request Forgery Prevention is an awesome feature to have, but sometimes can get in the way of working with the app. We've made a way to make it easily optional, so that you can get your job down, before enable it back on.

Find this within the installer under, Configure Security Options: Cross-Site Request Forgery (CSRF) Protection

We do highly suggest keeping this enabled.


Grab content from a URL: Auto-generated PlainText version not cropped


Resend Subscription Confirmation via the list control panel broken


CPAN modules shipped with Dada Mail are outdated and impossible to maintain


List Control Panel Archive Screen: message_blurb() call memory leak?


Previews of message drafts always show in modal menu and not in new window in Drafts Index




This version of Dada Mail is a minor bug release. Some technical debt has been worked on to slim down the distro slightly.


Plugins: Bridge, append_message_to_file sometimes called with wrong arguments


Deleting Stationery/Schedule will create a new Stationery/Schedule and not delete the Stationery/Schedule


Plugin: Change List Shortname doesn't work: csrf issues and logout issues


Amazon SES: Remove requirement for, Crypt::SSLeay, add requirement for LWP::Protocol::https


Consider Implementing AutoInactiveDestroy


Consider implementing DROP TABLE and RENAME TABLE in SQLite backend




This version of Dada Mail is a minor bug release.


Core 5 File Manager Perl connector/upload script fails to work correctly if you set additional Perl libaries


Changing Delivery Preferences (individual, digest, vacation) in Membership: View causes csrf issue


"Transform to Pro" feature doesn't work


Search Results (including Partial Mailing List Sending) are incorrect if subscriber doesn't have a profile


Template sanity check for Send a Webpage


suspicious_activity_by_ip_check not working correctly




This version of Dada Mail is a major feature release.


Support for libcurl via LWP::Protocol::Net::Curl as the WWW Engine

Dada Mail use the LWP CPAN Perl module for many of functionality, from grabbing webpages to send, to calling web services, like Amazon SES. We've added the ability to change the actual WWW Engine from LWP to libcurl via the LWP::Protocol::Net::Curl module.

In some cases LWP is not configured correctly to allow https connections, but if there's support for libcurl, it could be.

More Information:



Support to set User Agent

Support to enable/disable hostname verification

Both these options may be set within the Dada Mail installer.


"mailbox not found" bounce not parsed correctly #1087


Ambiguous Date in Version #1084




This version of Dada Mail has some minor bug fixes found in the v11.17.0 release of Dada Mail.


Image Drag and Drop into the message editor window will invalidate the session


Core5FileManager does not work with current CSRF enhancements




This version of Dada Mail has been released with some new features and a few small bug fixes.


Only one mailing list? The default screen is now that list screen

Dada Mail supports an arbitrary number of lists, but many people just run one mailing list. If this is the case, Dada Mail will show what is usually shows in the list's own screen on the default screen. This saves user's a click to view relevant information of that one list.

Multiple mailing lists? Subscription buttons for each mailing list

If you're running Dada Mail with multiple mailing lists, a button to allow a user to subscribe to each mailing list will be available. This saves the user a screen refresh to subscribe to the actual mailing list.

Schedule Mass Mailings now have an option to send right away

There's a few instances where you have a scheduled mass mailing, and you would like to just send that mass mailing right away. Now you can! Look for the button on the top bar labeled, Send Mass Mailing Now in your schedule mailing.

Periodic Login/Session Status Check

Dada Mail now will check your login/session status periodically (every 5 minutes) to make sure it's valid. If it's not, you'll be automatically logged out.

New option to show/hide a subscription form in the default, list, and archive screens

If you don't want to show a subscription form in your default/list/archives screens, now you don't have to. This option is per-list, find it in Mailing List: Options. Look for the option labeled, Show subscription form. Any subscription forms that are available to users will still work.

Custom email themes are now automatically kept during upgrading

Maintaining a custom email theme can be a chore, but now it's a little easier. If you have a custom email theme, make sure it's name is also something unique to your organization. Now when you upgrade, your custom theme will be copied over to the new installation automatically. You'll no longer have to do this task manually.

Disable List Password Reset

Dada Mail has support to reset the List Password via a confirmation email after an incorrect login. You can now disable this functionality in the Dada Mail Installer.

plugin: password_protect_directories - option to always use the default password


plugin: password_protect_directories works (again)

This plugin seemed broken beyond all comprehension. It should work again!


Public archives only viewed when logged in with a profile password fails to work


This was a regression caused by the changes introduced in v11.16.x

Custom templates aren't used if used in a, <!-- tmpl_include --> tag


Clicking, "Manually Run All Scheduled Mass Mailings" in a schedule without first saving this schedule will save it as a draft


Scheduled Mailings: Looking at Recurring Schedules Calendar for an unsaved schedule will save the schedule as a draft


Potential hidden profile field data lost from subscription form if submitted from captcha-protected form that doesn't have a captcha


Bridge: Errors with auto image resizing causes message not to be delivered




This is a small bugfix release.



This is a small bugfix release.

Small bugs dealing with successfully unsubscribing addresses from the list control panel have been fixed.



This is a small bugfix release.


Tracker reports in mailing monitor causes logout from list control panel




This version of Dada Mail has been released primarily to fix a security vulnerability dealing with Enhanced Cross-Site Request Forgery (CSRF).

Enhanced Cross-Site Request Forgery (CSRF) Prevention

In theory (and confirmed), a bad actor could give someone a carefully crafted web page via email, SMS, etc, that - when visited, could allow them control of the list control panel as if the bad actor was logged in themselves. This includes changing any mailing list password, as well as the Dada Mail Root Password - which could effectively shut out actual list owners of the mailing list and allow the bad actor complete and unfettered control of your mailing list. This vulnerability also affects profile logins.

For this vulnerability to work, the target of the bad actor would need to be logged into the list control panel themselves. This CSRF vulnerability in Dada Mail affects all versions of Dada Mail v11.15.1 and below. Although we know of no known CSRF exploits that have happened in the wild, this vulnerability has been confirmed by our testing, and by a third party.

Security enhancements added to v11.16.0:

More Details

Here's an overview of CSRF:


v11.16.0 comes with Cross-Site Request Forgery prevention using the Double Submit Cookie pattern: (https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html#double-submit-cookie).

To enhance this, we also "HMAC the token with a secret key known only by the server and place this value in a cookie" (as described in the above doc), and set cookies to have, SameSite set to, Lax (instead of not setting SameSite at all), (https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html#samesite-cookie-attribute),

Additional Suggestions to Help Harden Security


RESTFUL API supports Global Public/Private Keys, Creating New Mailing Lists

Please see:





Default Membership: View address order is now Date Added/Subscription Date/Descending

Previous order was email address alphabetically/descending


Switching between lists accepts "GET" requests


"logout" accepts "GET" requests


You can send a mass mailing to no one




This is a bugfix release, with changes to close up some potential security holes. It's an update we'd suggest for everyone. Most especially for people who are relying on Google reCAPTCHA v2 to protect their subscription forms. We've found that there is a way to circumvent the reCAPTCHA rendering it ineffective. There was also a bug found in the reCAPTHA v3 implementation, so we don't suggest simply switching to v3. More informaton can be found in these two issues:




Creating a new list can be done via a GET request


reCAPTCHA v3 check has strangely derefrenced variable in code, likely to cause issues.


Logging into the List Control Panel accepts a GET request


Dada Mail accepts GET requests to, "Forward to a Friend" form


Dada Mail accepts "subscribe" requests via GET


Attempting to send to a blank email address during a mass mailing will stall out the mass mailing (SMTP)


Google Recaptcha v2 check will return valid if problem with API call happens




This is a release that includes some features as well as some fairly important security enhancements. Please read the whole changelog for this release to understand the important changes made.


jQuery upgraded from v2.2.4 to v3.6.0

Older versions of jQuery have known potential security issues that have been fixed in newer versions. No known security exploits in Dada Mail have been found from this older version of jQuery, but we suggest upgrading your version of Dada Mail to stay as safe as possible.

More information:


Links in email messages in Dada Mail that cause an action, like "subscribe", "approve message", "reject message", etc can be automatically triggered without the user's knowledge by email readers that prefetch the content from the link. Link prefetching happens for a few reasons, including filtering links for malicious content or generate previews.

Starting in v11.15.0, Dada Mail has safeguards against link prefetching that leads to an action, by translating these "GET" requests to, "POST" requests. These include:

This is a farly large issue, and we do suggest everyone to upgrade to v11.15.0 (or later).


Trying to view the public archive without knowing the list will lead to blank page/error #1047




This release includes bugfixes found in the v11.14.1 release of Dada Mail.


Delete email address from Bounce Scorecard when email address is unsubscribed #1035


Plugins: Tracker - Add a date/timestamp to options for updating profile fields in the preferences #1032


Ping POP3 and IMAP connections before attempting to connect #1029



Plugins: Tracker - Sending Speed (messages/hour) aren't rounded to the nearest message, or commified #1039


Amazon SES mass mailing batch sending speed estimates are too optimistic #1038


When manually running schedules (cronjobs) in list control panel, the admin menu items should be updated #1037


Cannot create a new draft message w/MySQL v8.0.2x #1034


Mass Mailing: SMTP sending doesn't return back any errors #1028




This release includes bugfixes found in the v11.14.0 release of Dada Mail.


@LIST_SETUP_DONT_CLONE can't be overridden in .dada_config file


RESTful webservices: "mass_email": plain text messages don't send #1026


Remove Net::SMTP_auth from distribution - it isn't used #1025


"Forward to a Friend" form not protected by rate limiting, and it really should


Creating a new Draft from a Stationery doesn't redirect you to the newly made Draft Message




This is a release that includes some features as well as some bugfixes.


Auto-Remove Old Tracker Data

Data the Tracker plugin collects can take up a lot of database disk space! And processing the raw data into reports can take a lot of time - the more data, the more time you may be waiting to get a report! We've added the feature of removing tracker data that's older than a period of time, starting with being a month or older. This is an optional feature that's disabled by default. It can be enabled for each list separately. Find the option in the Tracker plugin's own preferences.

"Save Draft" button, when pressed, no longer refreshes screen

When creating a draft, one of the buttons allows you to save the draft. Rather than having to wait for the screen to refresh to continue editing, clicking the Save Draft button will now save your draft in the background and you can keep editing your draft message.

Also pay attention to issue #1019 - Previewing a draft also will save the draft before the preview is shown, but there was a big issue when this happened.

"Check All/Uncheck All" option added to saving settings to multiple lists

Dada Mail has the ability to save it's list settings to > one mailing list at once on most of the screens (screens like Mailing List: List Information don't have this option for hopefully understandable reasons). We've added a way to select/unselect all mailing lists, to more easily select just a few mailing lists to save to.


Send a Message: Previewing an unsaved draft will lead to multiple copies of the draft


This is a particularly big bug - and one of the reasons I want to push out an update. Anytime you press the, "Preview" button when you're creating a Draft, you run the big risk of making two copies of your draft message, which can be very confusing. These copies can also accumulate, making things more mysterious.

Membership: Recent Activity table of subs/unsub always static at last 100 log lines. Why?


This was a strange issue - perhaps this is more of a feature. But the chart on the top of, Membership: Recent Activity, and the table on the bottom don't align up. The chart can show months of data, while the table below shows perhaps the only last 100 lines, which could be years of activity, or just a few days of activity.



This is mostly a bug-fix release for issues found in the v11.13.0 release of Dada Mail.


Noisy warning in DADA::App::Messages::send_multipart_email (v11.13.0)


Bridge: Setup As: Email Forward will not wor




File Attachments Limit Raised to 10

URLs in, Mailing List: List Information can now be optionally validated

Add a Custom Button

You can now add your own button with a custom button label and background color.

Grab content from an RSS/Atom feed: set a limit on how old entries can be

This is helpful for recurring scheduled messages: say you send out a message every month. Now, you can make sure that only entries that were posted within a month are a part of the mailing list message you send out.

Bridge: Messages that cannot be parsed/processed can be sent to List Owner

Rather than just quietly fail. messages that cannot be parsed/processed can then be sent to the List Owner, who can look over what may be the issue. The error produced will also be sent. Enable/Disable this option in Bridge's settings. Look for the option labled, When a received message cannot be processed: [x] Send a copy of the message to the List Owner .


Plugin: Bridge - "Message too old" check will still send, "Not Allowed to Post" email notifications to list owner/subscriber #1011


List Email can be set as blank in Bridge, but messages can still be sent to the list - no check to make sure List Email is valid? #1004


Speling error in docs: "PlainTest" should be, "PlainText"


reCAPTCHA on the initial default screen not come up? #999


Subscribers that need to be confirmed by the list owner also show up in the, "unconfirmed subscribers" sublist, even though the confirmed #997



Mailhide support dropped

Better SQL Connection Error reporting

A message is now correctly shown in the browser window if the SQL connection isn't working. This wasn't always working well, but the implicit, "hey this is what the problem is" will hopefully help those whose job is to fix such things.


This is mostly a bug-fix release for issues found in the v11.12.1 release of Dada Mail.


Content-Encoding never changed in messages received via Bridge


(the previous bugfix introduced a small, one-character bug, which is fixed with this release)


This is mostly a bug-fix release for issues found in the v11.12.0 release of Dada Mail.


Image resizing using Image::Scale does not work correctly


Recurring schedules that grab content from an outside source (webpage, feed) which fail during constructing and sending still update MD5


Content-Encoding never changed in messages received via Bridge


Recurring Schedules that end many decades into the future are slow to process




This is a major feature release.


Auto-Image Resizing now available for all mailing list messages

Resizing images automatically allows you to skip the step of optimizing images for email. You may have on hand a high resolution image, but that image is most likely going to be too large in both file size and image dimensions to be realistic to be used in an email message. Sending it will no doubt blow out any layout/design you have, and force your subscribers to endure downloading such a large image. Sending out an message with large images will also take longer than you most likely would prefer as well.

Email resizing has been available in Dada Mail, but only for images that were dragged and dropped into the rich text editor, limiting it's utility. For example, what if you have a discussion list using the Bridge plugin, and users are sending messages with too-large images that way? What if you're grabbing the content of your mass mailing from a URL or a blog's feed?

Starting with this release, all images that are embedded in a mailing list message will now be resized. Look for this and related options in the list control panel under, Mass Mailing: Options: Images and Attachments:

Embed images within HTML Messages

Check this option to embed images (default: checked). Embedded images have a better chance to be shown to your subscribers in their mail reader, rather than merely linking to the images - linked images are often times blocked to be shown by your mail reader. The more images you embed, the larger the total size of your message. Large messages will take longer to send, and longer for your subscribers to to download/view.

Enter auto-resizing these embedded images:

Resize embedded images

Check this option to resize embdedded images (default: checked). Resizing images can help keep message size low. There's no reason to embed a two meg image, but it's not always obvious how large an image is to some users (nor should it be). Dada Mail can now handle this chore for you.

Image Width Limit (pixels):

This is where you can set the image width limit. The default is, 580 pixels, which is how wide the main area for your message content is in the included mass mailing layouts are that come with Dada Mail. Any image wider will just be responsively shrunk anyways (well, sometimes the results looks way funky), so there's just no reason to use an image that's wider.

Resize drag-and-drop images

(default: checked). Check this option to resize drag and dropped images, as soon as they're uploaded. Images added to your message in any other way will be resized (if needed) when a message is sent out, so you won't see the resized image in the rich text editor. The original image you dragged/dropped will be saved in Dada Mail's file upload directory, as well as the resized version, when you do this, just in case you want the original image for some reason.

More on image resizing

To accomplish image resizing, one of the following Perl CPAN modules will need to be available:

If you need to, you can install any (or all!) of these modules separately, or just install/upgrade the Bundle::DadaMail module.

Message Size

You can now set a limit on how large a mass mailing message can be. Setting a message size limit helps keep a practical and realistic size to messages, so you're not try to send out enormous messages to thousands of people. Services like Amazon SES do have a limit on how large an email message can be (10 megabytes)

The default mass mailing size limit is 10 megabytes, which is very, very roomy. This limit is enabled by default, and covers both messages sent through the list control panel, as well as via Bridge. Bridge DOES have it's own soft and max size limits for messages it receives. These limits could be higher than the max message size, and that's OK, as transformations of the message received - like resizing of images, or stripping of attachments could lower the final file size.

Mass Mailing Schedules Enhancements

Week of the Month

You can do set which week of the month a recurring scheduled mailing will be sent on (first, second, third, fourth, or fifth week of the month). For example, you may now set a schedule to send your message on only the first Monday of each month - a message sent once a month, rather than 4/5 times a month.

Scheduled Mass Mailing Preview Calendar

To help understand when scheduled messages will be sent out, a calendar can now be access that shows when a mass mailing should go out. Click on the button labeled, Save + View Recurring Schedule in Calendar. The calendar will be shown in a separate window.

Mass Mailing from RSS/Atom feed enhancements

Dada Mail can create a mass mailing from a feed that is produced by something like a blog.

There may be content of the feed that you would rather not have part of the message, and now you may specific which parts you'd like to skip over. Check the option, Remove content found between the following id/class:

Then select either a class or id to look for, and the name of those id's or classes.

Moderation Enhancements

Discussion messages in Dada Mail can be optionally moderated by a sublist of moderators. In this version, the moderator who took action towards the message, either approve the message, or deny the message is noted in the logs. This can help answer the question of, "who confirmed/denied this message?!" and hopefully stop any fires that started if the decision was critical to some of the other moderators.


CKEditor Upgraded to, v4.15

Timezone show in the UI

Setting a time zone shown in the list control panel will be added in a future release, but for now, the server's time zone is now exposed to the user via the UI to help them understand what time of day the app is running (and help the user compare that tim to local time)




This is mostly a bug-fix release for issues found in the v11.11.2 release of Dada Mail.


Former subscriber always receives, "unsubscription successful" email notifications when unsubscriptions are approved


Selecting, "Send to Testers sublist (n address(es)) " for Drafts, etc does not ever work - tests only go to List Owner


Comma on the end of line 2462 of Guts.pm is a SQL syntax error


Saving Settings w/password for multiple lists at once breaks the password




This is mostly a bug-fix release for issues found in the v11.11.1 release of Dada Mail.


Correct stats for, "bounces" not show in the followup mass mailing analytics email (and probably the mass mailing finished notification email)


Scheduled mailing list notifications for success/failure always go out, no matter selected preference




This is mostly a bug-fix release for issues found in the v11.11.0 release of Dada Mail. There's also places we've tightened up some potential security exploits regarding the file browser/uploaders we ship with Dada Mail.


Directories managed in the, "dada_mail_support_files" directory will now have their permissions changed when not in use

Files and directories in the, dada_mail_support_files directory are ones that are served directly by the webserver. Items like images, javascript files, etc, are found here. The file managers/uploaders that are shipped with Dada Mail are installed here too. These are third-party apps in of themselves, and we don't have complete control over their development. Historically, security issues crop up in these apps, either in current or in past versions - it happens, and since their job is to upload files onto the web server, this can really cause chaos on a web hosting account.

To keep the attack surface as small as possible, Dada Mail will now always change the permissions of directories that are not in use to, 0644, rather than the more open, 0755. This will disallow access to the directory via something like a web browser.

Option to install no file manager uploader

Dada Mail has the option to install one of three bundled file managers: KCFinder, Rich FileManager, and Core 5 Filemanager. But it never had the option to install no file manager at all. This version adds the ability to select "Don't Install a File Browser/Uploader"


"Send message tracker analytics report a few days after a mass mailing was sent " doesn't work - query is incorrect


TinyMCE Vulnerability should be fixed in Dada Mail


"Recent Activity" chart not loading




This is a major feature release of the app.


Scheduled Mailings

Scheduled mailings allow you to write a draft message, then have it ready to be sent sometime in the future. Recurring mass mailings can also be set up, and you can grab the content of a message from a URL, so that the message content is dynamic.

Email notifications when schedules go out

To help make sure messages are sent out correctly, a new option is available allowing the List Owner to receive an email notification when a scheduled mass mailing goes out successfully.

Find this option where you edit your scheduled mass mailing labeled,

[x] Send email notification to List Owner when the scheduled mailing goes out

This option is disabled by default.

Email notifications if there's a problem with sending a schedule

Conversely, an email notification can be sent out if there was a problem encountered with sending out a scheduled mass mailing. For example, if you're sending out a mass mailing, whose message content is grabbed from a URL, but that URL throws a 404, that's an example of a problem with the scheduled mass mailing. The mass mailing won't go out and this email notification will to the List Owner, with details on what may be the problem.

Find this option where you edit your scheduled mass mailing labeled,

[x] Send email notification to List Owner if a problem occurs

This option is disabled by default.

Test Mode

Test Mode allows you to send a scheduled mass mailing on its schedule, but only to your test recipients (either to your test sublist, or to a custom list of addresses - whatever you've configured).

A test of a scheduled mass mailing could be sent before, but only by manual intervention by the user (clicking the, Send Test button in the list control panel). Test Mode will allow you to basically make sure your schedule is sending correctly.

This can help test that schedules are going out correctly, as well as double-check the formatting of the message on various email accounts/platforms.

Find this option where you edit your scheduled mass mailing labeled,

[x] Test Mode: only send scheduled mailing to test recipients

This option is disabled by default.

List Control Panel

Mailing List: List Settings screen, URL validation

Many options in this list control panel screen require URLs as values, but it's also very easy to enter a URL incorrectly. Front-end validation is now done on these options, both to double check that the URL looks valid in form, as well as seeing if the URL can actually be fetched.

Control Panel Settings: Options screen removed

This control panel only had one option to set - which WYSIWYG editor to use (or to not use one, at all!). This option wasn't removed, but now now can be found under,

Mass Mailing: Options

Message Drafts

Preview a draft message in a modal window, or new window

Draft messages can be previewed from within the browser you're working with Dada Mail in. This has been done in a modal window that pops up within the UI. For various reasons, it may be more advantageous to see the preview of the mass mailing message in its own browser window - one advantage is that you can resize the new window to see how it may look when viewed in various sizes (or use the web developer features built into the browser to see mobile views).

This option can be changed in the, Mass Mailing: Options list control panel screen. Look for:

Show message previews in:

Then select either, Modal window or, New window


Auto-remove old archived messages

Set a limit on how old archived messages can be. This is useful if you have a busy discussion list and the archive grows large, quickly. Find this option under, Archives: Advanced Options and check the option labeled,

[x] Auto-remove archived messages older than:

Then select a time span (between: one month to five years).


Pre-running credential tests when upgrading

When upgrading using the Dada Mail Installer, it usually a good idea to check if credentials are still working. Items like your *SQL, Bounce Handler, Amazon SES, Google reCAPTCHA credentials. This is now done for you, automatically.


Bridge plugin improvements have focused on moderation.

Auto-reject messages that are too old in the moderation queue

To keep the moderation queue at a reasonable size, messages that are older than a certain time (one, three, or seven days) are simply auto-rejected.

Find this option in the Bridge plugin's control panel labeled,

Auto-Reject messages that have been waiting to be moderated for:

And select a time.

Moderate messages based on how long a subscriber has been a member of the mailing list

This new option allows you use the age of a subscriber to determine if a message should be moderated or not.

Find this option in the Bridge plugin's list control panel under,

Discussion List Options: Moderation Options: Moderate messages received from:


Subscribers that have been subscribed in the last:

Then, select a time (a day, a week, a month)

Moderate messages based on a new, "Requires Moderation" sublist

This new option allows you to moderate a subscriber based on if they're also a member of the new, "Neeeds Moderation" sublist. If (and only if) they're on that sublist, they'll need to be moderated.

Find this option in the Bridge plugin's list control panel under,

Discussion List Options: Moderation Options: Moderate messages received from:


"Requires Moderation" sublist

Administrating this sublist can be done like any other of Dada Mail's sublists by accessing the sublist in the, Membership: View screen. Buttons, (labeled, View Requires Moderation and, Add to Requires Moderation) are also available near the option itself.

Support for Open Discussion Lists is now always available

Open discussion lists allows anyone - even someone who is not a subscriber, to send a message to a discussion list. In past versions, this required one to enable the option to show up to be enabled/disabled in the gloval config. This global config step has been removed, and the option to enable/disable this option will now always show up in the plugin's list control panel screen.

Find this option in the Bridge plugin's list control panel labeled,

[x] Open discussion list (messages are accepted from any email address)

This option is disabled by default.


Email Notification of Mass Mailing Analytics

Now get updated mass mailing email analytics sent to you a few days after a mass mailing has finished sending out. This ermail notification can remind you to look at these analytics, and see how your mass mailing is doing.

This option can be enabled/disabled (default: enabled) from the Tracker plugin's list control panel. Look for the option labeled,

[x] Send message tracker analytics report a few days after a mass mailing was sent

Expanded table of analytics in the, "Mass Mailing Complete" email notification

Dada Mail has the option to send an email notification to the list owner once a mass mailing has finished sending. This email notification contains some useful analytics. We've expanded what gets reported - it's now very similar to the table you'll see in the Tracker plugin's individual message report.

Mailing List Subscription Form

New Option: mailing list subscription form for modal windows

There's a lot of options in adding a subscription form to your website. These are usually very flexible, but require you to copy/paste HTML and perhaps even Javascript (for some options), which can make it difficult to get right, and keep updated.

One of the problems is that the subscription form itself is not a simple thing! These days there are captchas, profile fields that need to be filled out, consent checkboxes, etc that are a part of the subscription form.

Dada Mail has two ways to just show you the subscription form. One is by using a landing screen, the other is to just print out the subscription form itself. The latter is what's new in this version.

With having the ability to just see the subscription form, you now have the ability to add that form to anything you would like. Something as simple as directly linking to the subscription form is now possible. Or, you can use the URL of the screen that has the subscription form, and place it in a modal window. If your site runs WordPress, there's already a ton of plugins that allow you to do just that, with varying amounts of bells and whistles. Dada Mail itself comes with a very small modal window plugin for jQuery that it uses for its example. That example is also something you can use yourself on your own website.

Look for this in the list control panel under, Appearance: Subscription Form HTML

Once on that screen, look under the, Landing Page tab, for both the, Full Page and Just The Subscription Form URL, as well as an example of how to put the, Just The Subscription Form in a modal window. A working preview is also provided.

Amazon SES

The following AWS regions can now be set in Dada Mail to use with Amazon SES:

This list has been added to us-east-1, us-west-2, and eu-west-1.


StopForumSpam disabled by default

StopForumSpam has been broken in Dada Mail for quite some time. It's now fixed (see bug fixes, below), but is set to disabled by default.


Stop Forum Spam integration broken


Subscription Form doesn't work on List Screen (etc) if $S_PROGRAM_URL includes a, "?"


"Open Discussion List" option doesn't survive upgrade



This is mostly a bug-fix release for issues found in the v11.10.2 release of Dada Mail.

The biggest change is the support for AWS Signature Version 4 - if you're using Amazon SES to send out messages, be sure to read on for some important information.


AWS Signature Version 4 Support

Dada Mail has accessed the SES service using Version 3 Authentication, but according to Amazon AWS, support for Version 3 will be deprecated after September 30th, 2020.

v11.10.3 adds support for AWS Signature Version 4, and removes support for any previous Signature Version.

If you are using Dada Mail and sending email using Amazon SES, you have a few options:


Update Addresses does not work in list control panel



This is mostly a bug-fix release for issues found in the v11.10.1 release of Dada Mail.


Bridge: discussion lists may receive and accept confirmation email messages sent to other List Emails


Reconsider using Params::Validate


Config variable, "SUBSCRIBER_DB_TYPE" is essentially a noop, as it's always set to, "SQL", but is used to test which specific SQL backend is to be used


Error editing Profile Fields NAME value


reCAPTCHA after subscription confirmation broken



"Message Received" email notification messages doesn't correctly unescape original subject


Plugin: Bridge - Utilizing File::Slurp is not support in Perl 5.30 (and maybe lower)


Database Error on Insert to Profile_fields record on occasion



This is mostly a bug-fix release for issues found in the v11.10.0 release of Dada Mail.


Subscription confirmation fails if reCAPTCHA on initial subscription form is activated #911


Javascript Alert Box Debug Code Showing #910




Google reCAPTCHA v3 Support

Google reCAPTCHA v3 is now fully supported in Dada Mail. reCAPTCHA v2 was supported in the past, and will still be supported going forward.

reCAPTCHA v2 and v3 can be configured within the included Dada Mail Installer, and switching between either can also be done via the Installer.

Additional reCAPTCHA support throughout the app

Dada Mail supported reCAPTCHA in the following areas of the app:

reCAPTCHA support has now been extended to the following:

Furthermore, several bugs related to reCAPTCHA have been addresses (see below).

reCAPTCHA setting on initial subscription form is now a per-mailing-list setting rather than global

If you would like some mailing lists to have reCAPTCHA on their subscription forms, and others to not: you can. Find the new setting in the list control panel under,

Mailing List: Options

The option is labeled,

Enable Google reCAPTCHA on the initial subscription form

More Analytics Gathered for Mass Mailings

Along with such things as messages opens, clickthroughs, bounces, etc, Dada Mail now tracks and reports the following to help you better understand the performance of your mass mailing:

And with that information, total sending time and sending speed will also be calculated and reported.


Confirmation Message when deleting a profile field is not working #908


List Templates fetched by URL that throws 404 still attempted to be used #907


reCAPTCHA v2 breaks if > 2 forms on the same page are using reCAPTCHA #902


Syntax error in Atom feeds #901




Email Notification Sent After Mailing List Creation

Basic Information about the newly created mailing list will be sent out to the List Owner right after the mailing lisk is created. This is optional, and it's also optional if you would like the List Password sent as part of this email notification.

New Error Screen Thrown For Unknown Runmodes

Previously, Dada Mail would just throw an errror when an unknown runmode was attempted to be accessed. Now, an actual error screen will be thrown up in the browser. The response status code returned will be, "404", rather than, "500".


This is mostly a bug-fix release for issues found in the v11.8.0 release of Dada Mail.



Unique Opens/Clickthroughs Analytics Restored! Now using anonymized data

When v11.0.0 was released, it removed the ability to collect Personally Identifiable Information, to help people running mailing lists with Dada Mail conform closely to the GDPR. Not collecting this information made it difficult to create various reports in the Tracker plugin. For example in v11.0.0, we could see show you how many times a message you had sent had been opened, but we couldn't tell specifically how many subscribers opened the messages. The app may have recorded, "100" opens, but that could have been 1 subscriber opening it 100 times, or 100 subscribers opening it once.

In versions that followed, we re-added the ability to save email address with the data collected to create analytic reports (by default: this is disabled), but this doesn't solve the problem if you need to run a mailing list that conforms to the GDPR.

In v11.8.0, we've added a new option (which will be the new default): data like opens/clickthroughs that are recorded can now be recorded with an anonymized UID (rather than with the subscriber's email address). Never would the app know which subscriber opened/clicked a link, but we can differentiate between one subscriber and another, allowing us to compile much better analytic reports. This anonymoized UID is never, ever saved with the email address that it corresponds to, and changes per subscriber for each mass mailing sent out.

Better Analytic Graphs/Tables in Tracker

With the restoration of being able to capture and report data, we've revisted the main graphs and tables presented in the Tracker plugin, and redesigned them to be easier to read, as well as more useful.

The main graph has been changed from a line to a mixed line/bar graph. The total number of recipients sent your mass mailings is represented in the line graph, allowing one to easily see the changes in your subscription size as your various campaigns are sent.

This acts likes a ceiling for the rest of the information: Opens, Clickthroughs, Delivery Issues, and Unsubscriptions, which are shown in a group bar chart.

There are two modes to this graph: the default mode shows the unqiue amounts of all these topics; the second shows them as a percentage of the total. Usually the total is the total number of recipients that are sent your mass mailing.

The table below this graph now shows data in total amounts, unique amounts and percent of the unique of the total for each mass mailing sent out. This table is also now sortable by each column presented.



Bridge Announcement List and Authorized Senders Enhancements

The Bridge plugin allows you to send messages with Dada Mail through your mail reader without having to log into Dada Mail's own list control panel. You can set up a list of Authorized Senders who are allowed to send to the mailing list. This is an easy way to allow more than just the List Owner the ability to send to your mailing list, without needing to give out your mailing list's administration credentials to anyone else.

We have added several features to allow you to send more effective announce-only messages through Bridge:

Rewrite From: Header Correctly

The first change we've made is actually a bug fix. One way to run your announcement list utilizing Authorized Senders is to rewrite the From: header, so all messages sent to your mailing list use the List Owner in the From: header, no matter what Authorized Sender sent the message.

Look for the radio button labeled,

Rewrite From header to List Owner

in Bridge

Another option available is to preserve the original From: header so that any replies go to that address, rather than the List Onwer. The issue was that the From: header wasn't correctly managed to deal with DMARC restrictions.

Say you have an Authorized Sender that's using a Gmail account, and you've set up your mailing list to send using your own SMTP server. Sending a mass mailing from your own server with (for example) a Gmail address in the From: header won't work. You'll need to instead send the message "on behalf of" the original sender, just like we do for discussion lists. In past versions, this wasn't happening, and in v11.7- it now is. Rejoice!

Look for the radio button labeled,

Rewrite From header to be "on behalf of" List Owner

in Bridge.

Don't rewrite the From header for email addresses from certain domains

We've also added an option to list domains that you would not like this rewrite to happen, just in case your mail system has already allowed certain additional domains to be sent through it.

Look for textbox labeled,

Don't rewrite From header for the following domains: (one domain per line)

Set the Reply-To: header

The ability to set the Reply-To header to the List Owner or the original sender (or no one!) has been kept, even though the From: header need to be sent "On Behalf Of".

Mention the original sender

Similar to what you're able to do already for discussion lists, you can now set your mailing list to mention who the original authorized sender was, who sent the message. This option can be enabled (default) and disabled in Bridge for both announce-only and discussion lists. Look for the checkbox labeled:

Mention the original sender of the message at the top of the message itself

in Bridge.

Under the hood, this is implemented using Dada Mail's template tags, which you can use too, in your own custom mass mailing layout. See our docs on Dada Mail's email template tag syntax to learn more:


Bug Fixes

Authorized Senders do not have their addresses re-written in announce-only messages. Open


Moderation is active even if mailing list is announce-only




WhatsApp Number Support

Add your WhatsApp Number! A link to start a WhatsApp chat will appear at the bottom of your email messages, below your physical address and phone number.

Theme being used now displayed in Admin Menu

See which theme is currently applied to your email messages without having to visit the Email Themes screen

Better error reporting in individual mass mailing log

In an effort to more easily debug problems with mass mailings, the individual mass mailing log will show more errors.

Better error reporting for problems with messages received with the Bridge plugin

In an effort to more easily debug problems with messages received via the Bridfge plugin, more information will be printed to the error log, when a problem occurs.

New Safety Checks When Removing All List Members

In Dada Mail, it's very easy to remove all list members from the, Membership: View screen. Although an alert box does come up when you click this button, it's not entirely clear if Global Unsubscribe is enabled for your installation. If it is, removing all your members from one list may remove all your members from all your mailing lists, which most likely is not what you want to do.

To help with this issue, we've disabled this button per mailing list. You can re-enabled it in the, Membership: Options screen. We've also put a alert box on the top of the, Membership: View to remind you if you Global Unsubscribe is enabled. The alert box that comes up if you do try to remove all your members will again remind you that global unsubscribe is enabled.

All the above also applies to the Global Black List, and you'll get similar notifications in the interface if you try to remove any of the blacklisted members, and have the Global Black List enabled.


Images that cannot be fetched via URL embedded anyways


Some form values (URLs, HTML comments) get rejected by web server firewalls (mod_security)

"some form values (URLs, HTML comments) get rejected by web server firewalls (mod_security)"

Verbose Error Logs re: temp mass mailing subscriber file


Individual Mass Mailing Log should show errors


references to, "http://dadamailproject.com" needs to be changed to, "https://dadamailproject.com"


If Global Unsubscribe/Global Black List is enabled, the, "Remove ALL $List_Type" alert box should remind the user


Internal Changes

Moving Away from MIME::Lite::HTML to MIME::Entity

The largest change in this release is moving away from using the, MIME::Lite::HTML module. MIME::Lite::HTML was an important part of Dada Mail, as it was used to embed images into email messages and was the original engine that turned URL's into email messsages.

But, MIME::Lite and therefore MIME::Lite::HTML are known to be a little buggy, and aren't well supported these days, so we've moved to it's larger brother: MIME::Entity. MIME::Entity and the rest of the MIME::Tools collection of modules is already well-entrenched within Dada Mail's codebase. Removing MIME::Lite::HTML also removes a substantial amount of redundant code.

jQuery upgraded from v2.1.4 to v2.2.4


This is mostly a bug-fix release for issues found in the v11.5.0 release of Dada Mail. There a few small features to look out for:


Cleaned up Discussion List Moderation Screen

Dada Mail primarly moderates discussion list messages via an email interface: copies of messages that require moderation are sent to all the Moderators via an email notification. The moderators can then approve or deny a message from being sent.

We've now made it easier to see awaiting messages within the List Control Panel. Under, Plugins/Extensions: Bridge, look under Moderation for a button that will allow you to view the messages awaiting moderation. This button will only be enabled, if Moderation is also enabeled. Clicking this button will take you to a new screen which will list all messages that are awaiting moderation in a table, in descending order by date.

For each message, you will have the ability to approve, deny, or simply delete the message from the moderation queue (no notification will be sent to the subscriber if you choose the latter). You may also re-send the moderation notification to all your moderators, where they may view the message itself.

Easier to see errors during installation

Although it's rare, sometimes the installer doesn't run correctly. When this happens, it's sometimes useful to look into the error log, to see what happened (and report the problems to us!). Finding this error log wsn't very well documented, so we've fixed that problem, and made the installer a little more aggressive on displaying errors in a way that's more easy to work with.

Old backups of directories in dada_mail_support_files directory now removed automatically

Dada Mail's installer makes backups of directories found in the, dada_mail_support_files directory. The problem is that there's nothign that ever removes these backups, so they start piling up and taking up disk space.

The installer will now remove all but the last three directory backups, per named directory.


Bundled version of LWP is woefully outdated and should be removed


Membership: View, Alert Prompt to Delete all Subscribers is strangely worded


Error, "execute failed: Specified key was too long; max key length is 767 bytes" when attempting to make SQL tables


Finding the Installer's error log is not obvious


"TRUNCATE" SQL statement used in installer incompatible with SQLite


"Freshness" check on messages sent to Bridge


"Freshness" check for Bounce Handler


LWP v6 is listed as a requirement for Amazon SES, but v5 is fine


Add option to remove backups made by installer, in the installer




Testers List

Test sending out your mass mailing is a great idea to do, before you commit to sending out the message to your entire mailing list.

In past versions, Dada Mail could only send only send a test mass mailing to one email address at one time.

Starting with v11.5.0, Dada Mail can send a test mass mailing to multiple addresses at once.

By default, this list of test recipients can be created per draft message by typing in the email addresses in the same text box that previously only supported one email address. By default, up to ten email addresses may be added to this text box, and sent a test mass mailing.

Additionally, a Testers List may be enabled so that the same list of addresses can be sent a test mass mailing for all draft messages. This sublist can be administrated simnilarly to your main Subscribers list.

Here's where to find all these new enhancements:

When drafting a new mass mailing, click on the, Options tab, then click on the, Testing tab. This is where you'll find the text box to list the addresses you would like your test mass mailing to be sent to. By default, you can enter up to ten addresses (read on to find out how to change this default). Separate each address you enter in the text box by commas, spaces, and/or new lines.

When you're ready to send out a test mass mailing, click the button at the top of the screen labeled, Send Test. The screen will refresh to show you the mass mailing monitor for your test mass mailing. A button will be shown at the top of the screen labeled, Return to Editing Draft. Click this button to return to your draft message, so that you can continue editing the message, or to send the mass mailing out for real. (Note: In previous versions of Dada Mail, you would never leave the draft editing screen, as only one email address would be sent the test mass mailing.)

To enable the Testers List, go to Membership: Options in the list control panel. Find the section labeled, Testers List to see the options available to you. Check the option labeled, [x] Activate Testers List to enable the Testers List.

Options below this checkbox will allow you to specifiy if there's a limit to how many addresses you may have in your Testers list as well as what that limit is. The limit set here will also affect how many addresses you can add to the text box in the drafts screen, per draft message.

Once enabled, the Testers list can be accessed in the list control panel under, Membership View. Click the tab labeled, "Testers" to see add/edit/remove addresses in this sublist.

And once enabled, you can toggle between using your Testers list and a unique list of addresses per draft message in the draft message itself. Revisit the Options: Testers tab(s) to now see the two options available. Select, Send to Testers sublist to send your test mass mailing to the Testers.

Sending a test message can be useful in a few different ways. With a test mass mailing, you can make sure that delivery is working to specific addresses, domains, and email services, and that the email message itself is displaying correctly on a spectrum of services and devices. This can also help you get a checkoff of the content an design of your mass mailing if you're working within a team.

There are a few things that happen differently when sending out a test mass mailing. To start, none of the recipients of a test mass mailing will be able to unsubscribe through the test mass mailing. Also, test mass mailings will not be tracked for things like Opens, Clickthroughs, or Bounces.


"List Consents" and, "Privacy Policy" admin control panel menus highlighted when on the "List Consents" screen.


Error when creating mailing list w/List Consen


Problem fetching URL: "css/app.css" Whenever an email is sent out with a theme's template applied



This is mostly a bug-fix release for issues found in the v11.4.5 release of Dada Mail.


HTML to PlainText subroutine does not properly strip out HTML comments



This is mostly a bug-fix release for issues found in the v11.4.4 release of Dada Mail.


Better error reporting when sending webpages

If problems occur when trying to send a message via the option, "Grab content from a URL" (and then entering a URL), error reporting has now been enhanced both right in the UI, as well as in the error log.

Error reporting has also been enhanced in similar ways when cropping a webpage by id/class.



Membership: View: Authorized Senders

The, Membership: View: Authorized Senders screen now has descriptive text on just what the sublist is.

If the option to send out messages without needing moderation is enabled in Bridge, that is also mentioned and described.


The Bounce Handler email address is listed in the, Mailing List: List Information screen

This is to make it easier to understand how to set up the Bounce Handler correctly to process bounced messages.



Send a Webpage: Content via a URL: no feedback/error thrown if problems were found with the crop


List Consents can be blank


"available_lists()" SQL query just isn't specific enough to find the actual lists available


Send a Webpage errors should be shown in Send a Message screen (or at least in error log)


Incorrect Profile Login asks if you are registered, even if "Registering" is disabled.


"Already Subscribed" email notification does not show subscriber email correctly


Plugin: Tracker: Hard Bounce report sometimes not shown



This is mostly a bug-fix release for issues found in the v11.4.3 release of Dada Mail.


Make FastCGI/PSGI setup "Experimental" so to give people pause before using it #823


MySQL Schema, default TIMESTAMP set to, '0000-00-00 00:00:00' in dada_message_drafts




This is mostly a bug-fix release for issues found in the v11.4.2 release of Dada Mail.


Yikes! App/Server Problem! page returns the wrong HTTP response code 200 instead of 500 #817



Adding random query strings to some resources to get past caching #821



This is mostly a bug-fix release for issues found in the v11.4.1 release of Dada Mail.


Plugins: Bridge: saving settings will delete POP3 Discussion Password



This is mostly a bug-fix release for issues found in the v11.4.0 release of Dada Mail.


Broken Image shown if Logo Image URL set incorrectly #814


"mailing_list_message-none.html" is shipped with styling (no styling should be present) #10



This release has changes mostly that relate to the Tracker plugin:


Google Maps API Key support

On June 1st, Google will require anyone that accesses their maps API to get an API Key (and thus, sign up for Google Cloud Platform). Dada Mail uses the map charts to show location data, and this falls under using their maps. Rather than remove this feature from Dada Mail, we've instead added support to add this Maps API Key into Dada Mail.

You can grab an API key using these instructions:


Once you have a key, you may add it to Dada Mail through the Dada Mail Installer - look for a checkbox labeled,

Configure Google Maps

Check it, then add your Google Maps API Key in the textbox labeled,

Google Maps API Key

If this API Key is not available, none of the map charts will be shown, but tabular data will be available where that makes sense. You can also disable showing maps in the Tracker plugin with a new option labeled,

Show maps in message reports

Configure Handling Personally Identifiable Information (PII)

Dada Mail now has the ability - install-wide to control just what personally identifying information is allowed to be collected. New options are available in the installer under the option,

Configure Handling Personally Identifiable Information (PII)

Options are:

Allow email addresses to be logged for tracking/analytical purposes

Default: disabled

If enabled, Dada Mail will then enable an option in the Tracker plugin labeled,

Track with email addresses

Which may be enabled/disabled per mailing list.

When this option is enabled, the Tracker plugin will log and report data that includes the email address.

If disabled, the following message will be shown in the Tracker plugin,

     Disabled. Logging email addresses for analytical purposes is not enabled. 

Log complete/anonymized IP addresses

Default: anonymized

Dada Mail by default anonymizes IP addresses before logging them. If you would like to enable saving the actual IP address being reported, you now have the option to do so.

Make sure to be educated on these options - if you need to follow the guidelines put forth by the GDPR, neither tracking with an email address, nor logging IP addresses should be things you should be doing, unless you've been given consent to do so. See also


IP addresses and the Tracker plugin

One of the places that full IP addresses are useful, is when reporting where opens, clickthroughs, etc are done geographically, and Dada Mail reports this using it's map charts.

If IP address logging is anonymized, this location lookup by IP address is negatively impacted.

This is now noted in the Tracker plugin, and a new option is available to simple enable/disable maps from being shown completely. Look for the option labeled,

Show location data in message reports

More Information

These topics are touched upon in then following blog post:



Tracker: "Unique" Opens/Clickthroughs, etc aren't calculated correctly, as Personally Identifying Information isn't collected since v11



This is mostly a bug-fix release for issues found in the v11.3.0 release of Dada Mail.


UI bug in Installer - Advanced Options bleeds out of div #810


Tracker: "Unique" Opens/Clickthroughs, etc aren't calculated correctly, as Personally Identifying Information isn't collected since v11




Google+ Support Dropped

Google+ has been effectively shuttered, so we've removed support for it from the app.


Enhanced One-Click Unsubscription support via Email Headers (per RFC 8058)

Dada Mail has supported "one-click unsubscribe" when a user clicsk one of the unsubscribe buttons/links in the mailing list message, as well as via the List-Unsubscribe email header. The latter of which isn't shown directly to a subscriber, but may be used by their mail reader to provide a mechanism to unsubscribe through it's own UI.

There's a problem though with this List-Unsubscribe header:

Sometimes the unsubscription link in the header is visted by anti-virus software which, after visiting the link will unsubscribe the user without any direct action from the subscriber themselves! This leads to all sort of administration problems, as list owners are losing subscribers who would like very much to stay on their mailing list.

Dada Mail now supports one-click unsubscribe via the List-Unsubscribe header without this problem happening. This is done by following RFC 8058, which provides a mechanism to utilize one-click unsubscribe via the headers, but stops the scenario described above from happening.

Any email reader that supports RFC 8058 will allow your subscribers one-click unsubscribe. Any mail reader that doesn't support this mechanism will still be able to use the fallback, email-only option, also located in the mail header. Either way, incorrect unsubscriptions throught his mechanism shouldn't happen anymore. In our testing, we've found that most email readers actually only support emailing the list owner, when a user clicks the email reader-provided unsubscribe link.

Enhanced List-Unsubscribe header email-only option

If the above mechanism isn't supported by the mail reader, there's a good chance that the fallback is. That fallback being: the mail reader sends an actual email message to the list owner. This email message option has also now been made a bit more useful. In past versions of Dada Mail, an email would be sent to the list owner, telling them the address that wants to be removed as well as the list they should be removed from. It was up to the list owner to go through the list control panel to remove this address.

Starting with v11.3.1, the unsubscription link itself needed to unsubscribe the address from the list will be embedded within the email message the list owner receives, so all they have to do now is click that link.

List-Unsubscribe header can now be enabled/disabled

If one decides instead to not have the List-Unsubscribe header available at all, there is a new option to not enable/disable it from being used. This option is available in the list control panel under,

Mass Mailing: Options: Headers: Use, "List-Unsubscribe" headers



New Options to Complete Unsubscriptions

To coincide with the enhancements to the List-Unsubscribe header, we've expanded the options on what happens when a subscriber clicks the unsubscription buttons/links in mailing list messages themselves.

The three options are now:

One-Click Unsubscription

Once a subscriber clicks on a unsubscription link/button in the mailing list message, they'll be unsubscribed right away, with no further action by the user. Super convenient for the subscriber! And one we suggest, especially since the enhancements to the List-Unsubscribe header have been made and the problem with anti-virus software getting in the way have now been worked out.

One issue with this option though is that a user may inadvertantly click the unsubscription button/link, or forward the mailing list message to someone else, that then clicks that same button/link. Yikes!

Once a subscriber clicks on a unsubscription link/button in the mailing list message, they will be presented with a screen, that just asks them to click a link/button to complete the unsubscription. This method may help with people inadvertantly clicking the unsubscribe link/buttons in the mailing list message by mistake. It's the option selected by default. This option is also the newest option added.

Fill in the email address, the submit a form

Once a subscriber clicks on a unsubscription link/button in the mailing list message, they will be present with a screen with a form in it, that just asks them to fill in their email address to complete the unsubscription.

This option is a good one, if you're running a discussion mailing list where email messages are commonly replied to/forwarded to other members.

The unsubscription buttons/links embedded in the message may be clicked upon by a different user than the one that received the message, and this simple form can help stop unsubscriptoions done inadvertantly.

All these options work ndependently to the "one-click unsubscribe" support through the List-Unsubsribe header, which doesn't requires (and cannot have!) any user intervention.

Bounce Handler Enhancements

IMAP Support Added

Set up the Bounce Handler to connect to your Bounce Handler Email address via IMAP. This additional option (along with original option of connecting via POP3) gives you more flexibility on how to connect to your Bounce Handler Email address to help fit more email hosting scenarios. For example, those who are using Microsoft Exchange to administrate email may find better success using IMAP, rather than POP3.

Option to select IMAP is available in the Dada Mail Installer.

IMAP support requires that you separately install the Net::IMAP::Simple CPAN Perl module, or install/upgrade the Bundle::DadaMail CPAN Perl Module.

Instagram Support Added

Add a link to your Instagram profile in your Mailing List Information, the link will be shown in your mailing list messages, along with Facebook, Twitter, Youtube, and your website links.


This is mostly a bug-fix release for issues found in the v11.2.8 release of Dada Mail.


Installation: Global Black List + Global Unsubscribe options do not get read or saved #805


Cloning list settings during list creation does not work #799



This is mostly a bug-fix release for issues found in the v11.2.7 release of Dada Mail.


RESTful API and saving list passwords not working correctly? #794


Sending: Options - saving SMTP settings that include a password fail when, "Save for Multiple Lists" is used #793



This is mostly a bug-fix release for issues found in the v11.2.6 release of Dada Mail. A few small changes and features did sneak in:


Show all profile fields in closed (invite only), private mailing list invitation subscription forms

By default, closed/private lists can still invite subscibers, but the subscription form does not show any profile fields. This option, found in: Membership: Options, will allow you to show those fields.

Number of Profile Fields shown in the admin menu

If you're wondering how many, or even if you have any profile fields, that information is now shown in the admin menu itself, saving you a click.


Log Viewer Plugin: order of logs in popup menu

The following logs will now always be shown first (if the log is available):

Then, any other log will be shown - most likely, "Mass Mailing" logs. These logs will stop NOT be in any useful order, but that issue will be addressed in a future release. This is currently an open issue:



Bridge: log does not report correctly when messages are *only* sent to list owner (and not to subscribers)


install.cgi does not generate usage text


Unsubscription Check does not normalize email case


Private Lists with "Request Removal" button not shown still have List-Unsubscribe present



This is mostly a bug-fix release for issues found in the v11.2.5 release of Dada Mail.


mailing_list_message-none.html should not have moustache template tags to render any HTML, it really should be, "none" #9


Mass Mailing: Options, "Convert CSS <style> blocks to inline styles in HTML messages " has no effect



This is mostly a bug-fix release for issues found in the v11.2.4 release of Dada Mail.


Send a Message: no error returned if HTML Version uses Send a Webpage, but URL is blank


Send a Message: Errors in constructing email message don't always show in, "Preview"


Send a Webpage check needed if, "Do not send an HTML version (only PlainText version)" and, "Create a PlainText version automatically" are both selected



This is mostly a bug-fix release for issues found in the v11.2.3 release of Dada Mail.


Digest message draft information using wrong character encoding (not UTF-8)


Missing closing</form> tag in, dada/template/drafts.tmpl


Mass Mailing Digests Broken



This is mostly a bug-fix release for issues found in the v11.2.2 release of Dada Mail.


CKEditor drag and drop image upload broken


Text in Privacy Policy is white, with yellow background


Unneeded Comment after, "Ready to Join," and "Privacy Policy for,"




This is mostly a bug-fix release for issues found in the v11.2.1 release of Dada Mail.


Send a Message screen, "Send Test" will not pull up saved draft when screen refreshes




Set a default version (HTML, Plaintext) for mass mailing authoring

Sometimes, you want to send only PlainText mass mailings.

This new feature makes this much easier to configure. In v11.2.1 (and above), go to:

Mass Mailing: Options




Default to authoring:


PlainText Version

Doing so will:


Profile email update creates 500 error


"HTML Version", "PlainText Version" options can lose their stickiness


Custom Subject not added to new draft messages


Email Addresses can be subscribed twice if cased differently




Drafts/Send a Message UI redesign/shuffle

The Send a Message part of the app has been given a healthy UI refresh - some things to look for:

Prompt before leaving screen

If you try to leave a draft message screen without saving your changes, you'll be reminded of this with a prompt. This should help stop you from inadvertently leaving the screen prematurely.

Default screen: All Drafts/Stationery/Schedules

When you log into your mailing list's list control panel, the default screen is now the All Drafts/Stationery/Schedules screen, rather than the Send a Message screen. This is to make loading of the list control panel go a little faster, since the Send a Message screen is very complex, and takes a while to fully load.

Send a Webpage screen removed (but all features moved to Send a Message)

Having two screens that can send a mass mailing seems like one too many, so we've removed the Send a Webpage screen. Don't worry - all the features on that screen have been added to the Send a Message screen, so no features have been removed. What has been removed is a lot of duplicate code in the backend. Getting rid of this code makes things just that much more simplier to keep well-maintained.

A mass mailing message can be created by:

from the Send a Message screen

"All Drafts/Stationery/Schedules" screen changes

Individual Drafts/Stationery/Schedules now how a button to Preview the message, without having to open them individually for editing.

All messages are now sorted by creation date, rather than last-modified date, and this creation date is shown.

Mass Mailing Top Menu Changes

Send a Message has been renamed + New Draft Message. Clicking it will always create a new draft message. In previous versions of Dada Mail, any previous draft message would get loaded. This was problematic, if you had more than one draft message - things got confusing on just what draft message was now loaded. This menu item has moved one item below in the top menu bar of Mass Mailing

Drafts/Stationery/Schedules has been renamed, All Drafts/Stationery/Schedules and has been moved to the top of the Mass Mailing top bar menu. As has been mentioned, this is the defalt screen now when you log into your mailing list's list control panel.

New Option: Save Sent Draft Messages as Stationery

Many times, people would like to re-use a previously sent message for a new mass mailing. Now, Dada Mail has an option to save previously sent messages you've authored in the list control panel as new stationery messarges, which you can then use to create a new draft message from.

New Ignore Bounces Sublist

Some users have reported problems with addresses they know are valid, but which that bounce anyways: there's a (hopefully) temporary problem on the receiving mail server.

To counter this, Dada Mail now allows you to set up a list of addresses that the Bounce Handler will not process as it does usually. Instead, bounces from the addresses will just be ignored.

Addresses can be added simonilar to the Black List and White List: segments of addresses are allowed.

For example, if you want to ignore a specific email address, you can. If you want to ignore all address from a domain, you can do that as well.

RESTful API Support for Update Profile Fields

The RESTful API now supports updating profile fields (look for, update_profile_fields in the API docs) for an individual email address at a time.



Template Tag Syntax Error Check Not Working in, Mass Mailing: Send a Message/Send a Webpage


Custom Mass Mailing Layouts Have Email Themes CSS Embedded




Invitation Only Lists cannot have invited users subscribe




Multiple Subscribe option inside Plugins menu throws syntax error.


Custom "from_phrase" and "subject" set in email theme templates not used with Full Layout




Markdown Support

Many pieces of plain text copy in Dada Mail are now treated as Markdown markup, and will be treated as such if/when the copy is used as HTML.

List Settings that will get this treatment include:

Along with these list settings, mass mailing messages that are authored in plaintext will be treated as Markdown markup if they are converted to HTML.



Mass Mailing Broken - errors about missing, "To" header #744


This bug, unfortunately, will affect ALL users of at least version 11.0.5 of Dada Mail. If you are using that version, it's recommended to upgrade.

Bridge: Mass Mailings do not work: "Argument contains empty host portion of address at" error #745


Similar story on this bug.



Upgrading via CLI does not set up WYSIWYG editors/file manager correctly #743




List Invitations do not work #740


This most likely affect v11.0.2 users, as changes in that ver. touched on the code where this bug was introduced.

Resending subscription confirmation requests will fail if there are list consents #741




Custom Preheader is not set for Subscription Confirmation Message (and probably others) #736


UTF-8 characters in email headers of email templates cause server errors #735


Custom "to_phrase" and, "from_phrase" set in email theme templates aren't always actively used in email messages sent out #734



Custom To/From phrases as well as Custom Subject do not get applied correctly #721




Digests not working in v11.0.0 #732



Unfortunately, I had to choose one setting to work with one feature, and make the other setting use a different key.

I've chosen to have the "backlink" URL and Nmae to use different keys.

Imported Addresses w/Profile Fields show incorrectly decoded UTF-8 characters #730


"Form Fields" listing lacks List Consents #727


"Minimal Subscription Form" HTML code lacks List Consents #726



Major Changes: GDPR Compliance

This version has been released almost exclusively to help users/administrators of Dada Mail to more easily comply with the GDPR. More information about what has changed can be found in the included GDRP Guide for Dada Mail

Dada Mail Project