SPF, DKIM, DMARC: Are You All Set With the New Email Sending Requirements?

Starting this year, both Gmail and Yahoo! Mail will have stricter requirements for those who are sending out mass emails like you would do when you send out using Dada Mail. These include making sure your SPF, DKIM, and DMARC records are available, correct, and aligned.

Quickly Test Compliance

If you use Gmail, you can use it to test compliance quickly. Send a test mass mailing from your mailing list to your Gmail account.

Tip: send a test mass mailing message to any email address in Dada Mail by clicking the Options tab, then the Testing tab. Add the gmail address to the textbox labeled, Send test to these email addresses:. Then click the button labeled Send Test.

Receiving it is a a good initial sign! If you don’t, first check your Spam folder – this may be a clue something needs to be tweaked.

Open up the message and check the source of the message itself by clicking, “< > Show Original” under the “More” menu item (it’s labeled as three vertical dots)

A few important headers will be shown at the top, hopefully showing one or some of the following: SPF, DKIM, and DMARC compliance. Each of these should have a value of, “PASS”, plus perhaps some additional information:

At least in our example, Gmail is explicitly telling us that DKIM is passing.

But what about SPF, and DMARC? We may have to look below at the source of the message and do a quick search. Look for “spf=pass” and “dmarc=pass” (and for completeness, “dkim=pass“) to see the raw information embedded in the message source itself.

The information found in the Authentication-Results header give me a good feeling that SPF, DKIM, and DMARC are all set up correctly and that my mailing list is in compliance and there’s nothing else I may need to do. Yahoo! Mail will also have the Authentication-Results header available for you to view.

If any of these reports are labeled, FAIL or are missing completely, you’ll want to look closer into getting those issues resolved as soon as you can.

More Sophisticated Validation Tools

DMARCLY has a great validation tool for these records. Simply send a test mass mailing from your Dada Mail mailing to the following address:

check@dmarcly.com

Results will be mailed to the List Owner of your mailing list:

Here’s a few quick ways to solve some of the problems you’ll find:

Quickly Fix Problems (cPanel-based accounts)

cPanel-based accounts actually have a Email Deliverability tool to make sure your DKIM and SPF records exist and are correct and a tool to repair them. Repairing those records here could very well be all you need to do.

Quickly Fix Amazon SES Problems with SPF

To successfully send with Amazon SES, your SPF record will need to include amazonses.com as a permitted sender. For example, this SPF record does exactly that:

v=spf1 ip4:128.0.0.1 include:amazonses.com +a +mx ~all

If your SPF record does not have, include:amazonses.com and you are sending via Amazon SES, you may need to add this to your SPF record.

Conclusion

We’ve just scratched the surface on DMARC, SPF, and DKIM records. It can get a little more complicated and very quickly. If you need some help with your own Dada Mail install, and wrestling with this issue, please contact us for a consult, and learn how we can help you get things straightened out.


Dada Mail 11.22.0 Released!

The latest version of Dada Mail, v11.22.0 is here! What’s new?

Focus

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

Features

Mailgun API Support (Experimental)

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

https://dadamailproject.com/d/third_party_email_services.pod.html

Additional information on Mailgun support:

https://dadamailproject.com/d/features-mailgun_support.pod.html

Bugfixes

Searching members is broken in v11.21.0 #1171

#1171

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

#1168


Delivery Problems? Double Check Real Time Blocklist Status

More often than we’d like to see, mail servers run by shared hosting companies end up on email Real-Time Blocklists. These RTBLs are checked by incoming mail servers to determine if they should accept the email messages they’re receiving. If the mail server you’re using to send out is on one of these lists, the chances that mail will be accepted is lowered. It makes sense then to have your outgoing mail server not be on one of these lists!

If you’re running Dada Mail on a shared hosting account, you’re most likely also using their provided mail server, which is also shared. Any abuse on the mail server from one of their clients that lands them on an RTBL will affect everyone else using that same mail server. Oftentimes these mail servers will also be the target to spam bots that find a way to abuse the mail server to send email on their behalf .

If you’re experiencing mail delivery problems you can double check if you’re on one of these RTBLs. These tools will allow you to check on your status:

There’s not too much you can personally do to get delisted, if its the hosting account’s mail server that’s on one of these lists – you’ll need to wait for them to open up a ticket and have the sometimes slow process of delisting happen.

If your mail server is chronically listed on RTBLs, consider using a third party email sending service, which allows you to get around this problem, by using a network of mail servers that keeps a good email sending reputation. We list a few third party email sending services in this support doc. Dada Mail also has support for Amazon SES on the API level, and since v11.22.0 Dada Mail has experimental support for Mailgun on the API level. Try out those resources to gain better deliverability for your installation of Dada Mail!


Dada Mail v11.21.0 Released!

Summer Sale! 20% off Pro Dada Subscriptions, Installs + Upgrades.

Use code, SUMMER2023 for 20% off when you request a installation/upgrade of Dada Mail.*

* Offer good until September 5th, 2023

The latest version of Dada Mail, v11.21.0 is here! What’s new?

v11.21.0 has a few nice features pertaining to the message archives. Look for new pagination navigation elements in both the public user-facing archives, as well as in the admin side in the list control panel,

Pagination is now present in the list archives, making navigating through past messages much easier.
Pagination is now present in the list archives, making navigating through past messages much easier.
Pagination is also now present when looking at the archives in the list control panel
Pagination is also now present when looking at the archives in the list control panel

Search has also been improved, with pagination there as well. Search is also now available in the admin side in the list control panel!

Search is also paginated. Caching of all archive screens and search can help greatly improve app performance while browsing with archive messages
Search is also paginated. Caching of all archive screens and search can help greatly improve app performance while browsing with archive messages

Finally, caching has been greatly improved, especially for the archive screens, helping with server and app performance.

Dada Mail's internal screen cache saves rendered screens so that the backend SQL database isn't accessed more than necessary
Dada Mail’s internal screen cache saves rendered screens so that the backend SQL database isn’t accessed more than necessary

Full changelog for v11.21.0 is below:

11.21.0

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

Features

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

Message Archive Pagination

https://github.com/justingit/dada-mail/issues/1127

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

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

reCAPTCHA protection on the Global Configuration plugin #1155

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

https://github.com/justingit/dada-mail/issues/1155

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

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

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

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

Bugfixes

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

https://github.com/justingit/dada-mail/issues/1161

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

https://github.com/justingit/dada-mail/issues/1162

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

https://github.com/justingit/dada-mail/issues/1163

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

https://github.com/justingit/dada-mail/issues/1164

“Forward to a Friend” form doesn’t have any required fields #1165

https://github.com/justingit/dada-mail/issues/1165

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

https://github.com/justingit/dada-mail/issues/1166


Dada Mail v11.20.0 Released

Focus

This version of Dada Mail is a major feature release.

Features

Dada Mail Build Script

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

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

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

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

https://github.com/justingit/dada-mail

as well as the source of the build script,

https://github.com/justingit/dada-mail/blob/main/make_distro.pl

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

https://dadamailproject.com/d/building_dada_mail_from_source.pod.html

“Bounces” tab in the membership screen

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

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

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

https://blog.healthchecks.io/2019/12/preventing-office-365-atp-from-clicking-unsubscribe-links/

The arms race to stop link pre-fetching continues.

Rich Filemanager upgraded to v2.7.6

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

This is what Debug Trace Options are:

https://dadamailproject.com/d/install_dada_mail-advanced_configuration.pod.html#Configure-Debugging

Better error reporting for problems with database connections

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

Breaking Changes!

KCFinder Dropped

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

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

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

Bugfixes

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

https://github.com/justingit/dada-mail/issues/1129


Recurring Schedule Mass Mailings with Dada Mail

Dada Mail comes with ability to draft a message to be sent at a later time. You can also have this mass mailing be sent on a recurring schedule – and have the message itself come from an outside, dynamic source! The process to do all this is actually quite simple, and leads to your subscribers being delivered fresh content right to their inbox without any additional work on your part, once you’ve set things up

Let’s get right to it!

Continue reading…

Link Prefetching Protection in Dada Mail v11.15.0 (and other security enhancements)

Dada Mail v11.15.0 comes with some important safeguards and improvements when it comes to protecting against link prefetching in the email messages it sends out. It’s a big enough issue, we’re suggestion everyone upgrade their Dada Mail (really!).

What is link prefetching, and why is it so important for email messages from link prefetching? Read on!

Continue reading…

Dada Mail v11.12.0 Released

>>> Download Dada Mail here <<<

Focus

This is a major feature release.

Features

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:

  • Image::Scale
  • Image::Resize
  • Image::Magick

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

Message Size

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

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

Mass Mailing Schedules Enhancements

Week of the Month

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

Scheduled Mass Mailing Preview Calendar

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

Mass Mailing from RSS/Atom feed enhancements

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

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

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

Moderation Enhancements

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

Changes

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 time to local time)


Dada Mail v11.11.3 Released

Focus

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

Bugfixes

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

https://github.com/justingit/dada-mail/issues/974

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

https://github.com/justingit/dada-mail/issues/973

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

https://github.com/justingit/dada-mail/issues/970

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

https://github.com/justingit/dada-mail/issues/968


v11.11.x Features: Using the new Landing Page Subscription Form Options

Dada Mail supports a variety of ways to add a subscription form to your site. From having simple HTML code blocks to copy and then paste into your own page’s HTML, to Javascript-backed forms that show the results in a modal window, to RESTful API’s to roll your own subscription schemes – there’s a lot of options.

We’re going to talk about one of the easiest ways to integrate a subscription form into your site: using one of the landing pages.

Dada Mail has the ability to just show the subscription form in a web browser and nothing else. Using these landing pages just means creating a link to the page and having your visitors visit it.

Advantages of linking to the subscription page include never having to update the subscription form itself when you change the list settings. As long as the list exists, the subscription form on this outside page should always work.

Another advantage is that you could embed/include this subscription landing page into a modal window that pops up using Javascript, and know that everything that needs to be there, will already be there with no additional coding.

If you’re using a platform like WordPress, there’s a variety of plugins that’ll allow you to create a modal window, and add the subscription form into it just by giving the plugin the landing page’s URL. Dada Mail also comes with the ability to set up its own modal window,and below we’ll show you how that works.

Log into the list control panel of the list you want to work with. Navigate to, Appearance: Subscription Form HTML. The first tab is what we want, labeled: Landing Page. From here, there’s two options. The first, Full Landing Page, will show the subscription form with the full layout/design of the screen, as well as the subscription form itself. Here’s an example from our own mailing list:

https://dadamailproject.com/cgi-bin/dada/mail.cgi/subscribe_landing/dada_announce/

The second option is what we’re more interested in: Just The Subscription Form:

https://dadamailproject.com/cgi-bin/dada/mail.cgi/modal_subscribe_landing/dada_announce/

This will show well: just the subscription form, and nothing else. This is what can then be easily added to a modal window that you then pop out using an outside JavaScript library or platform plugin (among other options that may be available to you).

Dada Mail comes with just such a Javascript library called, lity. We chose to include it in our distribution of Dada Mail, because it was small, lightweight, and didn’t come with too many prerequisites, which makes it easier for you to utilize it yourself.

Dada Mail presents you with all the code you’ll need to wrangle both lity’s popup modal window and Dada Mail’s subscription form in the landing page. It’ll also show you a working preview. (click, View Working Preview…). Use as-is, or adjust to taste.

You can see this being used on our own website (as of this writing – we may redesign soon!) – go to: https://dadamailproject.com/ and click on the image labeled, Subscribe and Receive Dada Mail News and Updates.

When you do, the modal window provided by lity will pop up, with the subscription form created by Dada Mail!

But of course, you can use this landing page however you’d like. Let’s use a WordPress plugin, called WP Post Popup. Once installed and activated, you can turn any link into a modal window. In this example, we just have to add the CSS class, “modal-link” into the link tag that’s pointed to our landing page URL:

<a href="https://dadamailproject.com/cgi-bin/dada/mail.cgi/modal_subscribe_landing/dada_announce/" class="modal-link" >
    Here's an example
</a>

And here’s that HTML code working in our own WordPress blog:

Here’s the working example.


And that’s all there is to it! Of course there are other plugins that may do more sophisticated jobs, but may need a bit more setup to do so. We encourage you to see what plugin options are there for you to take advantage of.