- 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
- 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
- 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
- Only one mailing list? The default screen is now that list screen
- Multiple mailing lists? Subscription buttons for each mailing list
- Schedule Mass Mailings now have an option to send right away
- Periodic Login/Session Status Check
- New option to show/hide a subscription form in the default, list, and archive screens
- Custom email themes are now automatically kept during upgrading
- Disable List Password Reset
- plugin: password_protect_directories - option to always use the default password
- Public archives only viewed when logged in with a profile password fails to work
- 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
- 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
- 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
- @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
- 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
- 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
- Auto-Image Resizing now available for all mailing list messages
- Embed images within HTML Messages
- 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
- Scheduled Mailings
- List Control Panel
- Message Drafts
- Mailing List Subscription Form
- Amazon SES
- 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
- Broken link in Email Themes Documenation
- "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
- Bug Fixes
- Images that cannot be fetched via URL embedded anyways
- 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
- 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
- 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
- Enhanced One-Click Unsubscription support via Email Headers (per RFC 8058)
- New Options to Complete Unsubscriptions
- Fill in the email address, the submit a form
- Bounce Handler Enhancements
- Instagram Support Added
- 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
- Drafts/Send a Message UI redesign/shuffle
- New Option: Save Sent Draft Messages as Stationery
- New Ignore Bounces Sublist
- RESTful API Support for Update Profile Fields
- 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
- "Recent Activity" screen still uses dada.txt log file, rather than, "dada_consent_activity" table #733
- Custom To/From phrases as well as Custom Subject do not get applied correctly #721
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,
Precedence List List-Archive List-Digest List-Help List-ID List-Owner List-Post List-Subscribe List-Unsubscribe List-Unsubscribe List-Unsubscribe-Post List-URL X-Mailer
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.
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
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.
Changing Delivery Preferences (individual, digest, vacation) in Membership: View causes csrf issue
"Transform to Pro" feature doesn't work
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
In some cases
LWP is not configured correctly to allow https connections, but if there's support for
libcurl, it could be.
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
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:
CSRF protection to all list control panel screens (including plugins) when logged in
Initial CSRF protection on the actual list control panel login form is enabled by default
This feature was available in Dada Mail, but was not enabled by default
CSRF protection for any a user who logs into their profile would be able to do when logged in
CSRF protection for the initial profile login form
Login cookies for both the list control panel and profiles have the, "SameSite" flag added, and set to, "Lax"
Login cookies for both the list control panel and profiles have the, "secure" flag added, and set to, "1", if the connection is under https
Google reCAPTCHA added to the Change List Password, Change Dada Mail Root Password, Profile login, and Profile Registration
You'll want to set up Google reCAPTCHA in the included Dada Mail installer.
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
Run Dada Mail under https
Running Dada Mail under https will protect sensitive data from being able to read in transmission.
Set up Google reCAPTCHA
Google reCAPTCHA helps stop automated submission of forms in Dada Mail.
RESTFUL API supports Global Public/Private Keys, Creating New Mailing Lists
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
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.
Link Prefetching Protection
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:
List Owner Accept/Rejecting Subscriptions
List Password Reset
Clickthrough Link Tracking
Profile Password Reset
Moderating Discussion Messages
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
Amazon SES mass mailing batch sending speed estimates are too optimistic #1038
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 .
Speling error in docs: "PlainTest" should be, "PlainText"
reCAPTCHA on the initial default screen not come up? #999
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
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.
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.
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.
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
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 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 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
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
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.
The following AWS regions can now be set in Dada Mail to use with Amazon SES:
US East (Ohio) us-east-2
Asia Pacific (Mumbai) ap-south-1
Asia Pacific (Seoul) ap-northeast-2
Asia Pacific (Singapore) ap-southeast-1
Asia Pacific (Sydney) ap-southeast-2
Asia Pacific (Tokyo) ap-northeast-1
Canada (Central) ca-central-1
Europe (Frankfurt) eu-central-1
Europe (London) eu-west-2
South America (São Paulo) (sa-east-1)
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:
Upgrade to v11.10.3 (or later) of Dada Mail.
This is the BEST idea.
Use the SMTP gateway for Amazon SES
This circumvents needing to use the SES API altogether, as you just connect to the SES service through the SMTP gateway. Works, but you won't be able to do things such as verify senders, or see what you're sending limitations are. This may be a good suggestion, if you don't want to do the hack below, or are running a very old version of Dada Mail you won't be upgrading anytime soon.
Manually move the updated files to your older copy of Dada Mail
This isn't something we necessarily suggest (it's a hack! Alert!), as there's a chance things won't work as intended and we just can't test every older version of Dada Mail. But, the following SHOULD work for all versions of Dada Mail v9 and later:
First, downlod the latest version of Dada Mail.
Uncompress the distribution somewhere that's separate from your running copy and take the following files:
and move them to your working copy of Dada Mail, in the same file structure/location Any version below v11.10.3 of Dada Mail will not have a copy of
SES.pmwill exist, and the old version will need to be replaced with the new version.
You can download the newest copies of these files separetely, using the following links:
As a better alternative for,
Signature4.pm, you can install it via your favorite CPAN module installer under it's proper name,
DADA::App::Support::Net::Amazon::SESis specific to Dada Mail.
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.
Reconsider using Params::Validate
Error editing Profile Fields NAME value
reCAPTCHA after subscription confirmation broken
Broken link in Email Themes Documenation
"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
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:
Initial subscription form
Resend Subscription confirmation form
After a successful subscription confirmation
Reset mailing list password
Forward to a friend form
reCAPTCHA support has now been extended to the following:
Logging into a mailing list
Creating a new mailing list
Deleting a mailing list
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:
Sending method (sendmail, SMTP, Amazon SES)
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
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
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
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:
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)
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"
Moving Away from MIME::Lite::HTML to MIME::Entity
The largest change in this release is moving away from using the,
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.
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 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
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
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.
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
Link to view archived message in browser broken in preview/test mass mailing messages #820
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
"Hide Administration Link" Option always reverted to showing in install/configure #818
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:
Support to add a Google Maps API Key has been added
Ability to log full (rather than anonymized) IP addresses has been restored
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)
Allow email addresses to be logged for tracking/analytical purposes
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
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
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
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:
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!
Click a link/button in Dada Mail
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):
Bounce Handler Log
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"
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
"Request Removal" link/buttons don't appear - wrong template var used
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:
Doing so will:
select, "PlainText Version" tab by default, instea of "HTML Version""
select, "Write/Paste Text by default" in the PlainText Version tab
select, "Do not send an HTML version (only PlainText version)" in the HTML Version tab
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:
Writing or pasting content into the rich text editor
fetching the message from a specific URL
creating the message from a RSS/Atom feed
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
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:
Mailing List Description
Mailing List Physical Address
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/From phrases as well as Custom Subject do not get applied correctly #721
Digests not working in v11.0.0 #732
"Website URL" and, "Backlink URL" use same list setting key name #731
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