How to Send Personalized Emails with Dada Mail

Dada Mail fully supports sending personalized mass email messages to your entire maling list, or just a segment of your mailing list. Let’s go through how to set this all up!

Profile Fields

By default, Dada Mail only captures and stores a subscriber’s email address, but we can add additional fields to capture and save in the List Control Panel. Log into your mailing list (use your Dada Mail Root Password!), and navigate to, Profiles: Profile Fields. In this walk through, we’re just going to make one field called, Name. I’ll then show you how to create a salutation in your message.

Here’s the Profiles: Profile Fields screen, with our new field filled out,

profiles_add_new

Field Name is the internal name used when working with profile fields, and has few constraints on what you can use. In this example, I’ll be using, name.

Label is what you’ll see on things like the subscription form, and is much more free-form. In this example, I’ll be using, Name (notice the capitalization!)

Fallback Value can hold a value used, if there isn’t a value for the subscriber, for this profile field. We’re not going to use it here, but I’ll show you how to add a default value, when using this in our actual message.

Finally, there’s a checkbox to tick, if you would like this field to be required.

Adding Subscribers w/Profile Fields

OK, now that our field is created, let’s add a few subscribers to our mailing list.

I’m going to navigate to the Membership: Invite/Subscribe/Add screen. This screen allows you to subscribe new members one at a time, and en-mass. We’re going to add three at a time in this demo, by adding a CSV (Comma Seperated Value) file. Here’s what that file looks like:

dadamailtest@gmail.com,Dada Mail Test
john.smith@example.com,John Smith
el.mysteriouso@example.com,

I created this file in a spreadsheet, then just exported the data as a .csv file. Our first two subscribers have both an email address and name, and our third subscriber, el.mysteriouso@example.com doesn’t have a name at all.

profiles_add_new2

After pasting the content of my .csv file (you can also just upload the file itself), I’ll click, Verify Addresses…, which goes through the black magic of making sure the data I’m submitting is valid, that these addresses aren’t already subscribed, etc. Once done with the entire process, I can see all my subscribers, in the Membership: View screen,

profiles_add_new3

You’ll see our new, “Name” field in the last column of the table of subscribers. Great! Now that we can capture and save new fields, let’s use them!

Sending out a Personalized Message

We’re now going to go to the Mass Mailing: Send a Message screen, and write a new message. Now that we have the Name field, let’s use it to add a simple salutation up front – “Hello, ” and then the name of my subscriber. How do we do that?

Enter template tags.

Template tags allow you to put placeholders into your message that will then be replaced with the value that they represent. In Dada Mail, a template tag to represent our, Name field will look like this,

<!-- tmpl_var subscriber.name -->

(Notice we’re using the Field Name, and not its Label!) So, to make that salutation we would like to create, we just have to write,

Hello, <!-- tmpl_var subscriber.name -->!

And that’s all there is to it. What about our subscribers, like el.mysteriouso@example.com that are nameless? We can add a default value to our template tag, to let Dada Mail know what to write, if there isn’t a name. Here’s what that looks like,

Hello, <!-- tmpl_var subscriber.name default="Subscriber" -->

In our example above, if there’s no name saved for an address, “Subscriber” will be written instead. Here’s how it all looks, when writing my message:

profiles_add_new4

Let’s see what this looks like, when we send our message out. Checking my test account, dadamailtest@gmail.com:

profiles_add_new5

And that’s all there is too using template tags!

Many other template tags are available to you, and a collection of them can be easily inserted via the rich text editor. Look on the rich text toolbar for a popup menu labeled, Tags. Clicking this popup menu will reveal some of the tags available. Selecting a tag will insert that tag into your message:

profiles_add_new6

Delving Deeper

We’ve only touched upon Dada Mail’s features for Profile Fields, Personalized Email Messages, and Email Template Tags. Check out the doc links, as well as the Pro Dada Manual, which comes with a Pro Dada Subscription.


Introducing Email Theme Layouts in Dada Mail

Easily wrap your mass mailing message in one of the provided layouts that come with Dada Mail. Layouts provide the necessary information for your mailing list message, so you don’t have to: things like making sure the unsubscription link is included correctly in every single mass mailing message you send out. Layouts and Dada Mail’s support for the Zurb Foundation for Emails framework makes your mass mailing email messages look great without any extra work from you.

Layouts can be found in both the Mass Mailing -> Send a Message, and Mass Mailing -> Send a Webpage screen. Look for the row tabs:  HTML Version, PlainText Version, Attachments… – the next tab will be labeled, Layout.

Clicking the Layout tab will reveal the layout choices available:

  • Full Layout
  • Minimal Layout
  • For Discussion List Messages
  • Don’t use a Layout

Let’s use a simple email message with a header, an image, and some text to illustrate how these layouts all work. I’ve put together this message as my HTML Version:

rockclimb_example1

Now, let’s see what this message will look like when we apply one of the included layouts. In v10, there’s a new button on the top bottom bar labeled, Preview. Clicking this button will show a preview of your mailing list message in a modal window with your selected layout applied. This saves you quite a bit of time with testing: no need to send yourself test email messages anymore, just to double-check that your email looks good!

Here’s what our message looks like with the Full Layout applied:

rockclimb_example2

Looks great! With the full layout, we’ve made a simple email message look professional, with minimal effort. Let’s break down what we’re looking at:

The top banner shows our company’s logo (set this in Mailing List -> List Information), as well as the preheader. The preheader will also show up in mail readers as the first bit of text revealed in the email message, like this:

rockclimb_example3

After the banner, there is a small (literally!) line of text, which gives a link to the publicly available archived message, so that if the message below isn’t viewable, you can still see the message from the archive.

Then, there’s your fine message. You’ll notice that the text has been styled to use what’s set in the email theme, so there’s no need to do that while authoring your message in the Send a Message screen (although, you can, if you’d like!)

Afterwards, there is a section that has buttons and links to forward the message to a friend, manage the subscription, and unsubscribe from the mailing list. These links are specific to the  individual subscriber. You won’t have to handle this yourself.

Below this information is the message footer, which has contact information, and social networking links. This information can also be added to, and edited in the Mailing List -> List Information screen.

Let’s try the Minimal layout:

rockclimb_example4

If your main content deserves front and center treatment, this is the template to use. Gone is the top banner and bottom social networking links for a more clean appearance. The unsubscribe link is still present, to keep with mailing list best practices.

For Discussion List Messages is similar to the Minimal layout, but as you may have guessed, is designed specifically for discussion list messages, with a large button to start a new post. This theme is used by default if you’re running a discussion list.

Don’t use a Layout is really the absence of a layout. Let’s try it on the message we have now:

rockclimb_example5

As you can see, no layout or styling is applied. One curious artifact of this is that a unsubscribe link is added to the top of the message, since Dada Mail did not detect one in the mailing list message itself. This is done since Dada Mail enforces the rule that all public mailing list messages MUST be sent with an unsubscribe link. For our message, Don’t use a Layout wouldn’t be the best suggest for a layout, but if you have a full-blown message with its own layout that you don’t want encased in one of the other provided layouts options, this would be a good option choose.

We can move that unsubscribe link from the top, to the bottom of our message by just adding our won unsubcribe link. To do that in Dada Mail, we use the following tag,

<!-- tmpl_var list_unsubscribe_link -->

When the message is sent, this tag will be replaced with an unsubscribe link that is unique to the subscriber and specific mass mailing. Here’s the source of my simple message, with that unsubscribe link added at the bottom:

<html>
<head>
    <title></title>
</head>
<body>
<h1>Learn to Rock Climb Today!</h1>

<p style="text-align: center;"><img alt="" src="http://dancingindigochild.local/dm/dada_mail_support_files/file_uploads/images/climbing(1).jpg" style="width: 500px; height: 283px;" /></p>

<p>Climbing is the fastest growing sport world-wide! Scale our incredible, 20 meter walls - your first visit is free!</p>

<p><a href="<!-- tmpl_var list_unsubscribe_link -->">Unsubscribe Automatically - click here</a></p>
</body>
</html>

Now when we preview the message, the automatically inserted unsubscribe link is gone, leaving only our link:

rockclimb_example6

So that’s an introduction to layouts! What’s your take on layouts, have you found them useful for your own mass mailings?


How to create your own email theme in Dada Mail 10

Dada Mail 10 introduces Email Themes, as well as also allowing you to create your own custom email theme. We cover how to to work with email themes in the docs at: http://dadamailproject.com/support/documentation-10_x_x/features-email_themes.pod.html

In this post, we’re going to go over how to do the actual customization, and start using our new theme live on our own site.

First, we’re going to make a project using the Foundation for Emails Sass workflow. In the command line, I need to type in the following:

foundation new --framework emails

I’ll be prompted for a new name for my project. I called mine,  dada_mail_site.

We’ll then download the starter theme, and merge these two directories together, as we’ve documented here. We’ll then start the build process,

npm run build

The build process will detect whenever we’ve changed any of the source files of the project, and recreate the distribution files (located in, dist) so they’re always up to date.

Now that everything is all set up, let’s do some customization!

I’d like the header and footer of my messages to have the same deep red that Dada Mail’s default UI has. I also want the text in the banner and footer to be white, rather than black, to stand out with the darker background. Finally, I’d also like the default text to be a little larger and a dark grey, rather than black.

Let’s work on the default text size and color first. This is controlled in the, src/assets/scss/_settings.scss file. This file contains Sass, which will be transformed in the cascading style sheet (CSS) that the theme will eventually use.

Among many things, Sass adds variables to vanilla CSS, letting you write less CSS, and do it more simply. For the color of the text, look for the following line:

$global-font-color: $black;

There’s a few ways to change this, but for this demo, we’re just going to change $black to a hex value that represents a dark grey:

$global-font-color: #808080;

Let’s now change the default size of our text. Look for,

$global-font-size: 14px;

We’re  going to change this to,

$global-font-size: 15px;

Now, let’s tackle that banner and footer color. For that, we’re going to open up the, src/assets/scss/app.scss file. There’s a few css classes that have the background set to the default grey, like this one:

.banner {
  background: #e9ebee;
}

We’ll want to change those, to our dark red. Here are the lines with the changes I’ve made – the original have simply been commented out,

.banner {
  //background: #e9ebee;
  background: #990000;
}

.banner .container {
  //background: #e9ebee;
 background: #990000;
}

.wrapper.secondary {
  //background: #e9ebee;
  background: #990000;
}

That takes care of the banner and footer background color.

Now for the color of our text inside the banner and footer. In the same app.scss file, find,

.banner p {
  color: #000000;
  margin-bottom: 0;
}

This css snippet sets the color to black. Let’s make ours white:

.banner p {
  color: #ffffff;
  margin-bottom: 0;
}

And, we’re all done! If the build process has been running, we can now just simply upload our new theme into Dada Mail’s support files directory:

On our site, we’ll navigate to the dada_mail_support_files directory, then go to themes/email. I’ll create a new directory with the same as the name of my Foundation for Emails project: dada_mail_site. I’ll change into that directory, and copy over the entire dist directory my project has made, inside the dada_mail_site directory. Once that’s complete, my theme is essentially, “installed”!

Let’s set up my mailing list to use it. I’m going to log into my list, then navigate to, Appearance -> Email Themes. Our new theme should now be listed when we click on the popup menu. Select it, and Save!

select_an_email_theme

Done! Let’s test it out o the Mass Mailing -> Send a Message screen. This screen has the ability to preview a message, before sending it out. On this screen, I wrote a simple message, clicked the, Preview button:

template_preview_1

Looks pretty good! I’m going to add the following as my Login Image URL in, Mailing List -> List Information:

dada_mail_email_logo

Let’s try the preview again:

template_preview_2

Looks great!

We’ve just scratched the surface on how to create a custom email theme for Dada Mail. Please try it yourself, and let us know if you have any questions or comments!


Dada Mail’s Subscription Abuse Prevention Systems

Web apps are a target for abuse by individuals or other nefarious apps/bots. Dada Mail is no exception. Although we haven’t discovered a vulnerability in the app itself, it’s true that attempts are made, however unsuccessful they are. Here are a few ways to safeguard Dada Mail from these attacks.

Closed-Loop Opt-In Confirmation

The first line of defense doesn’t seem like one, but it’s the best defense against abuse of your app by hackers and spammers. Always makes sure Closed-Loop Opt-In Confirmation  is enabled for your public mailing lists – there’s no excuse not to use it.

Closed-Loop Opt-In Confirmation main job is to make sure only valid email addresss are adding to your mailing list, and confirms that the actual person who owns the email address wants to receive your mailing list messages. Without this feature enabled, anyone may subscribe anybody to your mailing list, leading to all sorts of problems.

It’s enabled by default, but this option can be found inside the list control panel in, Mailing List: Options. Look for the checkbox labeled, Require Closed-Loop Opt-In Confirmation

Disallowing  Multiple Confirmation Requests

By default, Dada Mail does not allow a user to try to subscribe to the same mailing list twice. This is to prevent simple abuse of your subscription forms, neglectful users, or automated processes that have run amok. If an additional confirmation attempt is tried, the user will still be allowed to have another subscription request, once a CAPTCHA is solved.

This option can be found inside the list control panel in, Mailing List: Options. Look for the checkbox labeled, Limit subscription confirmation sending. We suggest that this option is always enabled.

StopForumSpam

StopForumSpam is a third party service that keeps a database of usernames, email addresses and IP addresses that have been submitted as being abusive when used throughout the Internet. Dada Mail has support to look up both the email address and IP address of subscription requests. If either come up as positive, the subscription request is blocked from being completed.

This option is also enabled by default (see a trend?) and the option can also be found in the list control panel in, Mailing List: Options. Look for the checkbox labeled, Enable StopForumSpam Protection. StopForumSpam does require you to have the Perl CPAN module, LWP installed. But, even on shared hosts, this is usually available without additional installation. If you can send a webpage, you will be able to use this feature, as both rely on LWP Tools.

Rate Limiting

Rate Limiting is a feature in Dada Mail tracks where requests for various functions of Dada Mail comes from (not just subscription requests), and sets limits on what it’ll allow, before it senses there may be an attempt to abuse the app. Think Denial of Service (DOS) attacks, or brute-force password cracking. Rate Limiting can help nip this in the bud.

Rate Limiting is enabled by default, but its options can be customized during installation from within the Dada Mail installer. See the installer’s advanced configuration docs for more information.

Blocking Suspicious IP Address Activity

Sometimes, none of the above tests seem to help. Requests for subscription are from different email addresses, or a long time frame, and the email address and IP address aren’t listed on StopForumSpam. Still, there seems to be something fishy about all these different requests coming from the same IP Address. Enter, Suspicious IP Address Activity Protection. This features looks at the records for subscription requests and sees if there’s a strange correlation between requests of different email addresses from the same IP over a large amount of time. If there is, the subscription request is blocked.

This feature is also enabled by default and the option can also be found in the list control panel in, Mailing List: Options. Look for the checkbox labeled, Enable Suspicious IP Address Activity Protection.


Dada Mail v9.4.0 Released – Rate Limiting

Dada Mail v9.4.0 has been released – download and install using the instructions here. Changelog is below:

Rate Limiting

We’ve enabled a Rate Limiting in Dada Mail! This is a safeguard against perhaps nefarious attempts at attacking the Dada Mail when there are many requests done in a short space of time. Before v9.4.0, Dada Mail would happily try to serve each request, and sometimes this would cause problems. One scenario:

Say you have a subscrption form, and say that form has been targeted by a bot in an attempt to exploit it. There aren’t any currently known exploits out there in the wild for Dada Mail, but perhaps the bot doesn’t know that, so it just tries to fill out your form multiple times a second. This can cause problems with resources on your hosting account reaching their limit, and cann also cause multiple emails to be sent to bogus addresses, and probably bounce back, which cause much annoyance. If you utilize a third party email service, like Amazon SES (which we highly recommend!), this can work against you, as this service monitors bounce rates closely and will not allow the rate to go too high. If it does, you’re in hot water with Amazon AWS.

Dada Mail’s Rate Limiting now monitors who is requesting what, and how many times. If it notices what could potentially be signs of abuse, it’ll deny the request for a small amount of time. This stops flagrant and out-of-control abuse of the app and does so easily.

Rate Limiting is enabled by default, and its options can be customized in Dada Mail’s included installer. More Information: http://dadamailproject.com/d/install_dada_mail-advanced_configuration.pod.html#Rate-Limiting


Dada Mail v9.3.0 Released

Dada Mail v9.3.0 has been released – download and install using the instructions here. Changelog is below:

Features

Subscriber Delivery Preferences editing on Membership – View screen

For discussion lists that have digest enabled, editing individual delivery preferences can be done on the Membership – View screen, rather than having to visit the individual subscriber’s membership screen to make the edit.

Delivery Preferences are now also exported, when you export Subscriber data via csv.

Changes

No Directory Listing in dada_mail_support_files directory

During installation/upgrade and when using the included Dada Mail Installer, the Installer will now create a .htacess file, with the following directive:

        Options -Indexes

This stops a directory listing to be returned for anyone/anything visiting the root of this directory. Since files/directories of older installs are backed up, and since some of the files in these backed-up directories could have exploits fixed in the more recent versions being installed, this simple removal of the directory index may stop these potential exploits.


Dada Mail v9.2.2 Released!

Dada Mail v9.2.2 has been released – download and install using the instructions here. Changelog is below:

This is mostly a bug-fix release, fixing bugs found in the v9.2.1 release.

Bugfixes

Resetting List Password after incorrect login attempt creates Server Error

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

Save for Multiple Lists does not work for Sending >> Options

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


Dada Mail v9.2.1 Released

This is mostly a bug-fix release, fixing bugs found in the v9.2.0 release.

Dada Mail v9.2.1 has been released – download and install using the instructions here. Changelog is below:

9.2.1

This is mostly a bug-fix release, fixing bugs found in the v9.2.0 release.

Bugfixes

Default, “Break” email protection does not work on publically viewed archived messages

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

Plugin: password_protected_directories: Submission redirects to public Dada page

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

Amazon SES “Verify” will give false negative if email address belongs to a subdomain, and only domain is verified #559

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

Plugin: password_protected_directories: .htpasswd/.htaccess file not updated via cron

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

List Control Panel tablet/mobile view does not show a “log out” button, if there is < 2 mailing lists

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

Sending messages via the List Control Panel does not look for validity in template tags

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


Dada Mail 9.1.3 Released!

This is mostly a bug-fix release, fixing bugs found in the v9.1.2 release.

Of note were several minor bugs found in the Installer – some of which are documented below, but other small bugs include:

  • Bounce Handler always being enabled to be installed
  • The, “Hide Administration Link” always set, even if the option is not enabled.

Changes

Mandrill API support dropped

Mandrill has changed their ToS to disallow bulk mailing, so this service is a bad fit for something like Dada Mail. We’ve removed the API to streamline the underlying codebase.

Amazon SES docs expanded

We love Amazon SES! We’ve updated and expanded the docs to help you better set up Amazon SES in Dada Mail. Docs can be found here:

http://dadamailproject.com/d/features-amazon_ses_support.pod.html

Ping Test in Sending Options Test for SMTP

We’ve added a simple ping test to see if the host at the port you’ve specified can be reached. Many times, problems sending via SMTP are because the outgoing port on the server Dada Mail is installed on is blocked, rather than the SMTP credentials being wrong, or there’s a bug in Dada Mail. This small enhancement will help clarify where the problem may be.

Added .htaccess file in, “dada” directory

We’ve added a simple .htaccess file in the main dada directory to set the DirectoryIndex to the mail.cgi script. That way, one can just visit,

        http://example.com/dada
        

and will see Dada Mail’s default screen instead of nothing, or the underlying directory structure.

Bugfixes

Installer: SQL database port value not being read correctly?

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

Hide Disabled Screens not working with classic side bar

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

Installer: SQL database port value not being read correctly?

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