v10.5.0 of Dada Mail comes with a new file browser/uploader, called Rich Filemanager! This tool allows you to select files from your desktop computer, upload them to the server that Dada Mail is running on, and select the file to add as an inline image or as a file attachment for your mass mailing. Once the file has been uploaded, you may use it again for another mass mailing.
10.5.0 Beta 1 is out! Give it a try, and give back and feedback you may have:
Download and Install (Pro Dada version is available, too)
Rich Filemanager Support
Dada Mail has come shipped with multiple file managers: KCFinder, and Core5 Filemanger. We’re adding a new filemanager called, Rich Filemanager (https://github.com/servocoder/RichFilemanager) which will be set as the default.
Rich Filemanager is an update of Core 5 Filemanager, which has shown a slowdown of development and is listed as, “deprecated” by its developer.
Rich Filemanager comes with some pretty great features and enhancments over Core 5 Filemanager:
- Drag-and-drop support
- Clipboard feature: copy, cut, paste, clear
- Multiple & chunked uploads support – based on jQuery-File-Upload
- New design of multiple upload window; New upload controls for each previewed file (start, abort, resume, delete, etc.)
- Online text / code editor – based on codeMirror
- Online PDF & OpenOffice documents viewer – based on viewerJS
- Online MS Office documents viewer – based on Google Docs Viewer
- Extended list of previewed file types via ViewerJS
We are not yet removing support either of the two current file managers, so if you’re happy with them, keep using them!
We get asked quite a bit about if it’s possible to import an already existing mailing list into Dada Mail, as well as if it’s possible to export a mailing list out. The answer to both of these questions is a resounding, yes! The above screen cast should demo both of these abilities quite nicely. (Sorry for the cracklin’ mic.!)
Some notes on importing to make things even easier:
If you’re importing a mailing list used for things like public announcements and marketing, you’ll need to make sure that either the mailing list only has already confirmed subscribers (like if you’re moving from a past system, to Dada Mail), or that you’re actually importing the addresses to invite them to your mailing list, rather than subscribing them outright. This is a very importing point when running a public mailing list: only have confirmed subscribers!
Log in with your Dada Mail Root Password. This will give you privileges to do the mass import by default.
If you want to give privileges to someone that logs in with the List Password, change the list settings to allow this:
- Go to, Mailing List: Options.
- Check, Allow subscriptions in the List Control Panel, without confirmation
- Uncheck, Only allow when logged in with the Pro Dada Root Password
Don’t go over import limit set! By default, Dada Mail only allows 5,000 subscribers to be imported at once. This is to prevent the app from trying to chew through too much data at one time, and failing. If you would like raise/eliminate this limitation that can also be done in the List Control Panel:
- Go to: Membership: Options
- To remove the limit, uncheck, Limit the number of addresses processed to:
- To change the limit, select a new value in the popup menu below this option
We do have an older screencast going into more detail on how to import a mailing list into Dada Mail – much of what’s available now is the same, athough the UI has been redesigned since this screen cast has been made:
New to Dada Mail v10.4.0 is the ability to upload images right into the Rich Text Editor you’ll find in the Send a Message screen just by either copying and pasting the image from a graphics program, or just dragging and dropping an image from your computer’s file manger. Check out the above screencast to see how.
These two new methods make things a whole lot easier to add images quickly, without having to use one of the web file manager that are also bundled with Dada Mail. These methods also work in adding documents to your message too – Say you have a PDF document you’d like to upload and link into your message. Just drag and drop the document itself: the file will be uploaded and a link will be automatically created.
Below, we’ll guide you through the individual steps on how to do this yourself, and go into how to work with the other method of uploading/selecting/inserting an image: one of the bundled file manager. All these techniques are available in v10.4.0 – we didn’t remove the file managers, to make you rely on the copy/paste or drag + drop methods, so don’t worry if those are already deeply seated in your own workflows.
Sending using Amazon SES for huge daily quotas, and fast delivery!
Dada Mail loves Amazon SES! Coupled with Dada Mail, Amazon’s Simple Email Service gives you the horsepower you need, and the deliverability you desire at a price point that rivals any mailing list service, while also keep your freedom to switch to perhaps a better option in the future, without having to move to an entirely new system.
Here’s some things to keep in mind when thinking about using Amazon SES with Dada Mail:
There’s no monthly fee for Amazon SES: it’s pay as you go! This is an enormous amount of flexibility, as it doesn’t bound you to an inflexible monthly service plan. Want to send 5 mass mailing campaigns one month, and NONE the next? You won’t be charged extra for going over your service plan on the first month, and you won’t waste money on not using the service plan, the next. This is a huge cost saving source, that can be hidden from you when looking at monthly plans.
Amazon SES is very inexpensive: $0.10 per 1,000 individual messages you send. Sending out to a mailing list of $10,000 would cost just one dollar.
Deliverability is awesome, even on shared hosting accounts. Shared hosting accounts are a cheap and easy way to host your own website, and it’s also an easy way to self-host your own copy of Dada Mail. But, sometimes email sending falls a little flat, for two reasons. The first is that you probably have some sort of hourly email limitation between (say) 150 and 750 messages you can send an hour. That may be fine for individual email accounts sending one message to one recipient as a time, but it leaves much to be desired, when you start growing your mailing list from hundreds to thousands of addresses.
Using Amazon SES, you can instead take advantage of SES’s huge daily sending quotas (in the tens of thousands), and fast sending times to really supercharge your mailing list. Even if you have the cheapest Bluehost/cPanel-based shared hosting account, you can expect mass mailing times to be around 10,000 messages an hour. If you have a better upstream connection, Amazon SES will start you at a high limit of, 50,000+ messages that can be theoretically sent out!
If you don’t like, you can switch to a different service, and still use your own Dada Mail as before: Maybe SES isn’t for you? You can switch back to just using your own mail server easily, without having to shop for a new mailing list manager or service. Dada Mail supports sending via your local mail, SMTP, and Amazon SES.
We provide setting up Amazon SES as part of our installation services – visit our installation request page and see all the options we provide.
If you’d like to set up Amazon SES yourself, our documentation for SES provides walkthroughs on setting up Dada Mail to use either the Amazon SES API or SMTP gateway.
I work with a whole lot of different clients in making sure their mass mailings are going out successfully. One of the pressing issues they’re always worried about is: did my message actually get sent out?
Although we can’t ultimately control where a message will be delivered when it finds itself into a mail client, we can do our best to make sure that things are working as best as possible on our end. I’m going to talk about ways to verify that sending is working out correctly, using the Tracker plugin that comes with Dada Mail.
Sending errors on your side can happen for a couple of reasons. One reason is that the authentication of your mail server/service has changed, and what has been saved in your mailing list settings is now incorrect.
Enter the Tracker plugin: among many other jobs, it does keep track of sending errors. I’ll demonstrate this with a test mailing list with a just few subscribers. I’ll set up my sending options to use an SMTP server that I know doesn’t exist: I’ve set my SMTP server to, inconceivable! which… isn’t even a valid name for an SMTP server!
This will all but guarantee I’ll get sending errors on my end:
To confirm we’ve totally botched up our sending options, we can try them out by clicking the button labeled, Save, Then Test, which will open up a modal window showing the results of testing our sending options:
As expected, Dada Mail is having problems connecting to this non-existent SMTP server. So, it should be no surprise that when we send a mass mailing, we’ll also have problems.
So, let’s do just that!
I’m going to send a mass mailing out to a subscription list with just three addresses, and see what the Tracker plugin tells me.
While I wait for my mass mailing to finishing, one strange thing that may be tip me off that there’s a problem is how slow my mass mailing seems to be taking. Hmm! I wonder what could be going on? If I check my error logs using the Log Viewer plugin, I see lines in the log that look similar to this,
[Mon Jan 30 21:27:09 2017] mail.cgi: [j] Mass Mailing:20170130211832.79094872_at_dadamailproject.com Cannot send to, address: firstname.lastname@example.org after 2 x 3 tries, skipping and logging address. at DADA/Mail/Send.pm line 1951.
Even if Dada Mail has trouble sending out to an address, it does try re-sending the same message out a few times, just in case the first attempt and error was a fluke. If it’s not successful, it’ll wait a brief period of time before trying again.
This slowdown is not by accident: many mass mailing sending problems are because the mass mailing options are set to send out messages at too fast of a rate, which leads you to go over your hourly email quota set up for your account. Check your host/email service to see if you fall under such a restriction. Most shared hosts have some sort of hourly email restriction.
Once my mass mailing completed, I checked the Tracker plugin, and found this:
Yup: a 100% failure rate of sending out to my mailing list. D’oh!
This type of evidence:
the test in the sending options failing
the mass mailing taking longer than I would have anticipated
the specific error logs about sending problems
the Tracker plugin reporting a 100% sending error rate
Makes me believe that there’s a problem on MY side! In this case, it’s my SMTP server set up incorrectly, and not something else, like my email server being black listed, or my messages going to a junk folder. This is a problem I can easily fix on my side (use the right SMTP credentials!) and not something I’ll need to investigate further, until I fixed this problem
In Dada Mail v10.3.0, the ability to mass mail the content of a blog’s feed was added. We’re going to go over the steps on how to send thtis type of message, then how to send out the mass mailing on a recurring schedule that will be sent whenever new content in the feed is available. That way, we’ll be able to automatically send out new mass mailings in the future without any additional work, helping your users be updated when new blog entries are available to be viewed.
For this walk-through, I’ll be using the blog of The Long Ranger (http://longranger.justinsimoni.com/), an outdoor mountain athlete.
In Dada Mail’s list control panel, go to Mass Mailing: Send a Webpage. In the HTML Version tab, select the radio button, Grab content from an RSS/Atom feed. The options for this selection will be shown, and the first textbox presented is where you plug in the URL of your feed. In my case it’s, http://longranger.justinsimoni.com/feed/
For the other options, I’m going to select, Use Just the Summary, (rather than, Use Full Content) and I’m setting, Maximum number of entries to include: to, 3.
I’m also going to add some HTML to be shown before the entries are listed,
<h1>How-do, partners,</h1> <p>Here are the latest stories I've written:</p>
<h2>See you on the trails,</h2>
Here’s how that all looks,
And when I preview everything,
Perfect! I can see that the feed is being successfully fetched, and placed into my message!
I could stop here and be satisfied about sending out this single message, but let’s now set it on a recurring schedule. On the top button bar, click, Save As: Schedule. A draft of the message will be saved, and the screen itself will refresh. New scheduling options will be shown at the top of the screen.
Check, Activate, and select, Recurring. I want this to send only once a week on Monday, at 6:00am, and only when there’s fresh content:
If there are no new entries, no message will be sent out. If there’s only one new entry, only that one entry will be sent out. That way, I won’t send out content I’ve already sent out before. Who wants to get the same message, twice?
All I have to do now is click the, Save Schedule button – and I’m done! Here’s what it all looks like when sent:
Some flourishes you may notice: the Subject, The Latest Wild Adventures Since January 2nd, 2017 is dynamic! It will change based on when the message is sent. This is accomplished by using some date-related template tags. Here’s what those look like:
The Latest Wild Adventures Since <!-- tmpl_var date.named_month --> <!-- tmpl_var date.nth_day -->, <!-- tmpl_var date.year -->
I’m also using an email theme that ships with Dada Mail called, Salmon Are Running. You can switch which theme your mailing list uses in, Appearance: Email Themes. Finally, I’ve set an image to be shown on the top banner of my email messages. You can set your own image under, Mailing List: List Information; look for the option labeled, Logo Image URL.
Recently, I’ve been getting many people wondering why, when running a discussion list in Bridge, that the From: header is rewritten from it’s original form, say:
From: "Subscriber Name" <email@example.com>
to something else completely :
From: "Subscriber Name firstname.lastname@example.org [List Name]" <email@example.com>
In my first example, the name of the subscriber (
Subscriber Name) occupies the phrase of the From: header, and the email address of the subscriber (
firstname.lastname@example.org) is where the address should be. Pretty straightforward.
In the rewritten From header, the phrase is now:
"Subscriber Name email@example.com [List Name]" <firstname.lastname@example.org)> – that is, the name of the subscriber (as before), then their own email address, and finally the name of the mailing list in brackets. The actual address portion of the From: header is the List Email address (
email@example.com) – the address you send a message to, to start a thread.
Why not just keep it like it was?
While it’s true that discussion list software – including Dada Mail used to maintain the From: header in its original form, it’s not something we can do anymore, without impacting deliverability in a major way. A big job of a mailing list manager (like Dada Mai) is successfully send out messages to the subscribers of the mailing list, right?
Here’s why this doesn’t work, anymore.
Sometime in 2014, Yahoo Changed their “DMARC” policy to only accept email messages that have a @yahoo.com email address in the From: header that also originated from a Yahoo server. Here’s Yahoo explaining it themselves. This actually makes a ton of sense: ow, only messages that say they are from a yahoo.com address, and sent through Yahoo’s mail system will be accepted for delivery by basically everyone that’s following the DMARC Policy rules (and that means Yahoo themselves, Gmail, Hotmail – all the big players).
This is a big win in trying to keep the problem of spoofing email addresses to send unsolicited email and other harmful payloads, but it had a dire consequence:
It broke every single discussion mailing list in the world. And this isn’t hyperbole, this is exactly what Internet Engineering Council expert John R. Levine, a specialist in email infrastructure and spam filtering, actually wrote. A mailing list that’s keeping say, a @yahoo.com address in the From: header looks exactly like a email message with a spoof’d @yahoo.com address in the From: header.
To counter act this change in policy, discussion mailing lists had to adapt. The primary change that’s been suggested is to change the From: header to utilize the List Email as the actual address, and add more information in the phrase of the address, exactly like Dada Mail does. In fact, Dada Mail uses the exact same pattern as Yahoo’s own group mailing lists.
Thankfully, when this change happened (literally, over a weekend, without any real warning), Dada Mail already had support for this in its Bridge plugin, called: p.p. Mode. One needed simply to enable this feature, and be all set. After the Yahoo policy change, we made this option enabled by default, then removed the option altogether in v10, more than 2 1/2 years later. Being able to disable this option has no real benefit, except to break your mailing list, so it seemed a pretty bad option to have around.
There is an option available to customize what gets set in the phrase of the From: header, and that option can be accessed in the list control panel, under: Plugins: Bridge. Look for the option labeled, From: header phrase: By default, its value is,
<!-- tmpl_var original_from_phrase default="Subscriber" --> <!-- tmpl_var subscriber.email --> [<!-- tmpl_var list_settings.list_name -->]
These are mostly a series of email template tags, the same ones you may also use in the Subject, or Body of your message:
<!-- tmpl_var original_from_phrase default="Subscriber" --> is context specific for this job, as its value will contain the original phrase as it was sent. If there is no phrase, “Subscriber” will instead be printed.
<!-- tmpl_var subscriber.email --> will be replaced with the email address of the message’s original sender.
<!-- tmpl_var list_settings.list_name --> will be set to the name of your mailing list.
Hopefully, that helps you understand why the changes are being made without getting too technical.
What about Announce-Only Mailing Lists?
A similar problem can befall an announce-only mailing list, but isn’t fixed so cleverly. The problem will happen if you’ve set up the List Owner or the List Admin email address to be an address that’s not specifically tied to the mail system you’re using.
So for example, if you’re using the sendmail command (the default option), you most likely have to use an email address that belongs to the same domain that you have Dada Mail installed on – this is also our general advice, no matter how you’re sending out messages. In other words, if my domain is,
your-domain.com, my email address for the List Owner and List Admin needs to be something like,
firstname.lastname@example.org and not
If you’re sending via SMTP, you most likely need to authenticate the SMTP connection anyways, but both the List Owner, and List Administrator will need to be allowed to send through this SMTP server.
If you’re sending through Amazon SES, the email addresses you’re using for both the List Owner and List Admin need to be a verified address or an address belonging to a verified domain.
Hope this all helps. Happy sending, everyone!
I recently gave an InMotion Hosting a test drive, to see how it would fair as platform to run Dada Mail, along with the rest of your site. I’m happy to report back that it’s just about as perfect as a shared hosting account can be for Dada Mail.
Read on for more details, as well as how you can save 20% on a Pro Dada installation done by us, when you sign up for a new InMotion Hosting account, using our affiliate links!
InMotion Hosting’s Power Plan includes cPanel, which from my experience is both one the most powerful, and easiest-to-use web hosting control panel there is – especially for running self-hosted web apps written in Perl, like Dada Mail.
InMotion’s flavor of cPanel currently comes with the following accoutrements:
File Manager allows you to add/edit/remove files from your hosting account, as well as change permissions of those files. That’s all you’ll need to setup and install Dada Mail, so no need to utilize FTP or ssh, which makes installation of Dada Mail well within the reach of a casual user, and follows the installation instructions closely.
The Power Plan comes with an up-to-date version of MySQL and support for up to 50 separate databases (Dada Mail will require just one). PostgreSQL is also available, if you wish to go that route.
Perl on this hosting plan is very much up-to-date. Dada Mail requires at the very least v5.10.1 of Perl, and v5.16.3 is available by default. Having an up to date Perl makes more features available, gives you the best performance, and an up-to-date Perl means less worry about bugs or security problems. Kudos for this, as many cPanel-based hosting accounts lag behind with older versions of Perl offered by default – either v5.10.1, or a supremely ancient v5.8.8. Yuck!
Perl Module Installer w/Compiler Support
Along with an up-to-date Perl, the Perl Module Installer is also enabled in InMotion’s offerings, which itself has support to install modules that may need compilation. This tool is the easiest way for a casual user to tap into the most advanced features of Dada Mail which require the additional installation of freely available Perl modules.
Features like CSS Inlining, Google reCAPTCHA, Amazon SES Sending, Send a Webpage support (and may more) rely on Perl modules that are outside the standard Perl library. With this tool, you can easily install them.
DNS Zone Editor
The DNS Zone Editor is also available, which becomes important when you would like to set up Sending with Amazon SES, and would like as well to set up proper SPF and DMARC records. Using Dada Mail with Amazon SES sending is one of the most cost-effective ways to run your mailing list, by far, and InMotion Hosting’s Power Plan will support everything you need.
Cronjob support: check!
If the installation of Dada Mail leaves you a little too breathless to want to take on yourself, InMotion Hosting also comes with an Installer for Dada Mail, with a pretty up-to-date version of Dada Mail available, which I think is powered by Softaculous. I’ve seen one-click installers that offer increasingly old, and out of date versions of Dada Mail, so it’s a nice change to see this one-click installer do the right thing, and keep current.
It is a little awkward to find Dada Mail, as Softaculous categorizes web apps by the language they’re written in, and InMotion Hosting’s cPanel will default to showing you PHP (not Perl), so here’s what you can do:
In the cPanel, look for, “Scripts”, by typing, “Scripts” in the Find search box. That will show two boxes labeled Scripts: and Categories:. Click on any of the icons in the, Categories: box. That will show you all the apps available in that category (but only for PHP, not Perl!):
Fear not: once in this directory of apps, just use the search box in the upper left hand corner, and search for, “Dada Mail” – the link to install Dada Mail will come right up,
If you have a Pro Dada Subscription, you can install Dada Mail this way, then turn it into Pro Dada. And away you go! One more small point, if you do decide to install this way, make sure to still set up the cronjob, as it’s not done by this installer!
Hourly Sending Limit
If anything, this may be where InMotion Hosting falls a little short. By default, they’ve told me there’s a limit of 250 messags/hour you may send, but you may contact support to have this limit raised to something more realistic for a mailing list (like 750 messages/hour). Using the mail server provided to you with your shared hosting account can work well for starting out, but if your mailing lists are an important part of your business, I would unapologetically suggest moving to your email sending to Amazon SES, which Dada Mail installed on InMotion Hosting 100% supports, which is great news.
Pro Dada Installations: 20% Off for New InMotion Affiliate Signups
Here’s our affiliate link, which you can use to sign up for a new account with InMotion Hosting:
Once you’ve signed up with InMotion, request a Pro Dada installation on our request form. Mention that you’ve signed up for InMotion Hosting, and we’ll give you 20% off the total of your Pro Dada install (we’ll know that you’ve done this, as we’ll get a notice about the domain name signed up). Not too shabby!
You’ve asked, we (finally!) answered: v10.2.0 of Dada Mail supports CAPTCHA on the initial signup form!
Although the app has supported CAPTCHA for many years for a whole bunch of things in the app, we never added support for the initial signup form. We were worried about the usability of forcing your potential subscribers to solve a CAPTCHA.
Why have we changed our minds?
Google’s latest reCAPTCHA system is a whole lot more usable to work with, and the threat of abuse on things like newsletter subscription forms is just not going away. So, why not make support at least an option? Those who would like the subscription form to work as it always has still can. Everyone else can enjoy the enhanced security. Seems like a big win.
Another big change in Dada Mail’s CAPTCHA system is that we now only support the latest version of Google’s reCAPTCHA system (version 2). In the past, we also supported reCAPTCHA version 1, as well as a CAPTCHA system based on, Authen::Captcha. To keep the code simple and bug-free for something so security-specific, we’ve removed these other choices.
Setting up Google reCAPTCHA in Dada Mail
Create a Site and Secret Key Pair
Sign up for the Google reCAPTCHA service at,
and create a site and secret key pair for the site you have Dada Mail installed at, as outlined here:
Make sure you record both the site and secret key somewhere safe – we’ll be using them, later.
Configure Dada Mail to use Google ReCAPTCHA
Plugging in the site and secret keys, and telling Dada Mail to use Google reCAPTCHA is done in Dada Mail’s global configuration. The easiest way to work with that is through Dada Mail’s included web-based installer, so an install or upgrade would be the perfect time to set all this up. If you have v10.2.0 (or later) of Dada Mail installed, you can also drop back into the installer to make these configuration changes.
Once in the installer’s configure screen, look for the Advanced Options. This is where you can setup the plugins/extensions, as well as many of Dada Mail’s more advanced features. If you do not see these options, click the button labeled, Show/Hide Advanced Options…
Next, look for a checkbox labeled, Configure CAPTCHA Options. Check the box, and the CAPTCHA options will be revealed.
Check the box labeled, Add CAPTCHA on all subscription forms if it’s not already checked.
Now, you’ll need to plug in the site key and secret key in the textboxes labeled, reCAPTCHA Site key: and, reCAPTCHA Secret key:
Once that’s all set up, you can test to make sure if everything works, but clicking the button labeled, Test CAPTCHA Configuration… If everything works correctly, you’ll be shown a working reCAPTCHA v2 widget!
And you’re done! Complete the installation process, and enjoy a CAPTCHA-full Dada Mail.
Here’s what my own subscription form now looks like, with the added reCAPTCHA widget,
Just remember, if you have a subscription form that you’ve added directly to your website, and you have CAPTCHA now configured, those forms will have to be updated. The code available in the list control panel under, Appearance: Subscription Form HTML will do the trick.
Missing CPAN Module?
Dada Mail’s Google reCAPTCHA support requires the
Google::reCAPTCHA Perl module, which you can install from CPAN in a few different ways.