Advanced Configuration with the Dada Mail Installer

Introduction

Dada Mail's global configuration is saved in a file called, .dada_config, which itself is saved in the, .dada_files/.configs directory. The file is plain text, but is a valid Perl script, so be very, very careful if/when you edit it by hand.

The Installer is generally provided to you so don't have to do this, but many, many global configuration options exist that aren't supported by the Dada Mail Installer. For a rundown of what's fully available, see:

We'll be listing the actual global variables used, when discussing what the installer configures for you. You do have the option to edit the .dada_config file that the installer creates, to make even more customizations.

As a warning, the installer only supports reading in, and editing variables that are presented to you in the Installer itself. That means anything that's not presented to you, will be lost if you change the configuration, with the Installer again. Because of this, you'll want to put your own unsupported (by the Installer) configuration changes in a centralized place in your .dada_config file, so you can easily (manually via copy and paste) move them back to the .dada_config file that's generated.

Plugins/Extensions

You may also install many of the plugins and extensions that come with Dada Mail. Access to the plugins/extensions will be available in the list control panel's admin menu, under, Plugins

Some of the plugins/extensions have additional configuration that will need to done, before they work completely.

One plugin, Bounce Handler, also requires you to fill out the credentials for the Bounce Handler email account you need to set up to capture bounced emails. See the documentation on the Bounce Handler for more information:

WYSIWYG Editors

Optionally, you may also configure the WYSIWYG editors that come bundled with the Dada Mail distribution. These WYSIWYG editors will enable you to author and edit your HTML Mailing List Messages right in Control Panel Settings.

Install and Configure WYSIWYG Editors

If you would like to use the bundled WYSIWYG editors with Dada Mail, check the option, Install and Configure WYSIWYG Editors - which is checked by default. Uncheck this option, if you'd like to skip setting up the WYSIWYG editors.

Dada Mail has support for two different rich text ediors - CKeditor and Tiny MCE. Both can be installed at the same time, although only can be used at one time. You may switch which one is enabled for your list in the list control panel under, Control Panel Settings: Options

File Browsers/Uploaders

Dada Mail also has support for variosu File Browser/Uploaders, allowing you to add images you'll host directly to your email messages, as well as add files to your message as attachments. Unlike the rich text editors, only one file browser/uploader can be installed at one time. Both options mostly have feature parity, although their security and sessioining systems differ. We'll explain those, below:

Install Rich FileManager (default)

Select this option to use Rich Filemanager (https://github.com/servocoder/RichFilemanager). Rich Filemanager uses PHP Sessions for security, which Dada Mail will provide. If you're having problems utilizing Rich Filemanager, try simply logging out, then back into your list. If you're still having problems, try the Core Five FileManager.

We suggest running Rich Filemanager only if you have version 5.4 or higher of php available. Otherswise, Rich Filemanager may not work correctly.

Install KCFinder

Select this option to use KCFinder (https://kcfinder.sunhater.com). KCFinder uses PHP Sessions for security, which Dada Mail will provide. If you're having problems utilizing KCFinder, try simply logging out, then back into your list. If you're still having problems, try the Core Five FileManager.

Install Core Five FileManager

Select this option to use Core Five FileManager (https://github.com/simogeo/Filemanager). In Dada Mail, Filemanager uses the same sessioning system as Dada Mail itself, which can make for a smoother experience, if KCFinder is not working correctly.

Configure Scheduled Jobs

Dada Mail requires a cronjob to run for some of its more advanced features: keeping tabs on mass mailings going out, sending out scheduled mailings, the Bridge plugin (discussion lists, and announcement messages sent via email), etc.

Scheduled Jobs Flavor

The Scheduled Jobs Flavor changes the URL and PATH INFO used to access Dada Mail, to run your scheduled jobs. The idea is that this URL should be slightly unique, so that an anonymous party cannot run the schedules themselves, just by visiting an easily guessable URL.

The Scheduled Jobs Flavor should be unqiue, and not be the value of another flavor used by Dada Mail (admin, send_email, etc). An easy way to make sure of this, is just to preceed your flavor with, _sched and then set the rest of the string to whatever you would like. Example,

_sched83449774F89D9E95

Log Job Output

When checked, Log Job Output will log anything returned by the jobs run. You'll find this log in the .dada_files/.logs/cronjob_output.txt file. This is helpful with debugging a problem, but this file can potentially get very large - and quickly, so think of either using this option temporarily, or schedule a cronjob to either rotate, or delete this log.

Run Periodically After App Execution

When checked (default), Run Periodically After App Execution will run the scheduled jobs usually handled by the cronjob simply after a normal execution of the app. This will facilitate using Dada Mail for many of the tasks required of the cronjob if the cronjob itself has not been set.

This running of the scheduled jobs will only happen in this manner no more than every 7 minutes, and won't run if the scheduled jobs are run in any other way, like when the actual cronjob runs, or if the scheduled jobs are run manually. This backround running also happens only if the app is itself executed (by visiting the app in a browser, for example). Thus it's a good safeguard, but it can't completely replace setting up the cronjob.

Config Variable:$SCHEDULED_JOBS_OPTIONS

Configure Deployment Options

Dada Mail can be deployed as a CGI, FastCGI, or PSGI/Plack app.

If you're setting things up using the included installer through the web-based interface, you're probably going to keep this set as the default, CGI or FastCGI. If you would like to set Dada Mail up to be deployed under PSGI, it's best to use the command line interface of the installer, as the web-based installer itself runs under CGI.

Configure Perl Environment

Additional Perl Library Paths

Dada Mail comes with most of the CPAN Perl modules it needs to function correctly, and optional features can be enabled by installing additional CPAN Perl Modules. See the following docs on how to do that:

There's a chance that your Perl library has been set up in a location that Dada Mail would not check by default. If that's the case, add the absolute path to this library location in the text box labeled, Additional Perl Library Paths.

Configure Profiles

Profiles allow your users to manage their own subscriptions in one centralized location. For an overview of Dada Mail Profiles, see:

In general, this option allows you to configure the, $PROFILE_OPTIONS config variable, which is explained in detail in the doc above. You'll notice that not all of the parameters in that variable are supported by the installer.

Profile Administration Email

The Profile Administration Email holds an email address that used for any transactional email messages that go out for Profile tasks. Since Dada Mail Profiles aren't tied to any one mailing list, Dada Mail won't know exactly what address to use.

We highly encourage you to fill out this variable, or these email messages may not be sent out correctly. You may use just an email address:

me@mydomain.com

a little more fancy, with a full email header, with phrase:

"My First and Last Name!" <me@mydomain.com>

You may set two email addresses:

"My First and Last Name!" <me@mydomain.com>, "Another User" <someone.else@example.com>',

Although the From: header that goes out will only hold one email address.

If Profiles are enabled and the Profile Administration Email is left blank, the List Owner email address of one of your mailing lists will be used instead.

Enabled Features

CAPTCHA

Registration for Dada Mail Profiles can be verified along with a CAPTCHA. We recommend this feature, if CAPTCHA is available.

Magic Subscription Forms

Magic Subscription Forms are pre-filled out with the user's email address, if they're logged into Dada Mail.

Help Screen

Allows you to show/hide the, What are Dada Mail Profiles? link and screen. You'll see this link in the top-right corner of the user-facing UI, by default.

Profile Registration

Controls whether a new user may register to a new Dada Mail Profile. If disabled, a user may still be registered by doing the following:

Subscribing to a new mailing list

If Profiles are enabled, and a user does not already have a Profile, subscribing to a mailing list will create a new Profile for them, and the credentials will be sent to them, in the, "Subscription Successful!" email message.

The List Owner editing their Profile

Profiles can be edited in the, Manage Subscribers - View screen.

Password Reset

Controls whether the, Forgot Your Profile Password? form is shown or not. If it's not shown, a user's Profile password may still be reset by a List Owner, if they're logged in with the Dada Mail Root Password.

Profile Fields

Controls whether the user may edit their own Profile Fields in their own Profile (once logged in). If disabled, a user's Profile Fields can still be edited by a List Owner, if they're logged in with the Dada Mail Root Password.

Mailing List Subscriptions

Password Protected Directory Information

Controls whether The, Password Protect Directories section is visible to your user in their Profile (once logged in). If disabled, Protected Directories will still be available if any are set up, just not listed in the user's Profile.

Update Email Address

Controls whether the, Update Your Profile Email Address section is visible to your user in their Profile (once logged in). If disabled, a user's Profile password can still be edited by a List Owner, if they're logged in with the Dada Mail Root Password.

Profile Deletion

Configure Caching

Dada Mail caches information, so to not have to constantly connect to your backend database and/or perform time-consuming calculations.

Enable Screen Cache

The Screen Cache caches the HTML screens you would see in your web browser. We suggest to always have it enabled, unless you're making customizations to the templates themselves, in which case it's exceptionally convenient to disable the Screen Cache.

Config Variable:$SCREEN_CACHE

Enable Data Cache

The Data Cache caches mostly JSON data created by Dada Mail for the graphs and charts it produces. Most of these graphs and charts are produced by the Tracker plugin, but other charts do exist. Since this data is cached, the data shown is not always 100% current. You may disable the Data Cache if you'd like to have the data shown always be the newest data available.

Config Variable:$DATA_CACHE

Configure Email Parsing Engine

Dada Mail uses the, MIME::Tools collection of Perl CPAN modules to do much of it's email creation and parsing. More information on MIME::Tools:

We've made it easy to do some simple tuning of the parser, to either make it run faster, or to use less memory.

Parse Messages in Memory

This has been the default setting for many versions of Dada Mail. It's generally faster, but can lead to problems if the message Dada Mail is trying to work with is too large.

There also may be problems if you run Dada Mail as a long running process (via PSGI support), if there is a memory leak.

If these are issues you're face, you may want to use the next option,

Parse Messags using Temporary Files

This setting is usually not used, as it could potentially be slower (more IO done), but has the added benefit of using less RAM. The downside is that it creates temporary files, which may add up and impact free disk space after a while. Dada Mail does its best to clean up after itself as soon as these temporary files are not needed, and does a sweep of any unused temporary files afterwards, but these files will be created, nonetheless.

If you do choose to use temporary files, these files can live in one of two locations:

Server's Temporary Directory (/tmp)

This usuallly means in your /tmp directory, but Dada Mail will honor a different value if set in the, TMP environment variable.

Dada Mail's Temporary Directory

Dada Mail can also use it's own temporary directory, which will be located in,

.dada_files/.tmp/_mime_cache

If any files are not removed automatically by the app after its done utilizing them, they will be removed three days after their creation date.

Config Variable:$MIME_TOOLS_PARAMS

Configure Debugging

Dada Mail's log tracing and debugging options can be configured in this section. Tracing writes extra lines to your error log, in an attempt to provide extra information about the workings of Dada Mail, that you can then go through, to make sure the app is working as it's supposed to.

We don't suggest keeping any of these debugging settings enabled for production use, as your error log will grow fairly large in size.

Server Absolute Path or URL to your User Template:

This is where you'll want to enter either the absolute path to your template file, or the URL that it can be found at.

This option gives you total control over the layout and design of your user template. For some people, this is too much control.

Magically (Experimental)

Another option is to, "magically" create a Dada Mail User Template, by basing your design on an already-existing web page. This is useful if you would like integrate your Dada Mail with the rest of your website, by having it's layout/design be based exactly on what already exists.

Magically creating this template may take a bit of trial and error. There are a few options available to tailor it to your specific needs:

Magically creating a template requires that you have the HTML::Tree CPAN Module installed. See:

URL:

Creating a user template magically works by first giving Dada Mail a URL to base the template off of. Set that URL in this textbox.

Add a, <base href="..."> tag:

Since you'll probably be pulling the source of the template from a different location than where Dada Mail is installed, you'll probably need to set a base href tag to the beginning of the HTML.

Check this option, then fill out what the base href URL should be, below. Most likely, it'll be the same URL as the URL, above.

Place Pro Dada's head content before/after existing content.

This controls where Dada Mail places its head content - links to the javascript libraries and css files it uses. Depending on how your current page is coded, you may want to place Dada Mail's head content before, or after what's already there.

Stylesheet Options

Include Dada Mail's own stylesheet

Check this option to have Dada Mail style its content, and only its content, using styles set in its own included stylesheet. This is done by wrapping Dada Mail's own content with another div tag, with the id of, "Dada"

Include a custom stylesheet

Check this option, and give the URL of a custom stylesheet. This option works well in conjunction with the previous option.

Javascript Options

Dada Mail relies on some JavaScript libraries to enhance its user experience. These libraries aren't strictly required to run Dada Mail, and sometimes disabling them give you a better user experience, when using Magic Templates:

Include a Copy of jQuery (v2.1.4)

Keep this option checked, if your site's design doesn't use jQuery. Uncheck this option if a jQuery library is already being utilized. jQuery is used in almost every Wordpress installation, so if you're basing your user template off of a Wordpress design, uncheck this!

Include Dada Mail's JavaScript User-Facing Enhancements

Dada Mail's other collection of Javascript libraries rely on these first two. If you experience problems with Dada Mail's functionality, you may want to disable them as well. Dada Mail's user-facing features should all gracefully degrade, if the Javascript they rely on isn't available.

Place Pro Dada's body content inside the:

Dada Mail will replace already existing content it finds, with Dada Mail's own content. But first, it needs to know where to find that content. Dada Mail supports finding the right place in three ways.

body tag

The first is the most basic: it'll just replace all the content found in the body of your HTML doc. This is most likely not what you want to do, but can be a way to easily have Dada Mail inherit some of the styles of your website.

tag with css id

The second way is the most specific, and it's what we recommend. Give Dada Mail the id of an HTML element, and Dada Mail will only replace the content within that element.

tag with css class

Similar to using an id, you can also use a class name of an HTML element for Dada Mail to replace content with. The problem of using a class is that id's are supposed to be unique in an HTML document; classes are not. But, some layouts are created without using id's at all. In these cases, you still have the option to use a class name.

Test Your User Template

Use this button to check if Dada Mail will be able to retrieve your template. If you're setting your template Magically, a new window will also pop up giving you a preview of what your template will look like.

Config Variable:$TEMPLATE_OPTIONS.

Configure Security Options

Hide Administration Link

Dada Mail usually shows a simple link to the administration login screen, on the bottom of the default screen. If you would rather this link not be so publically advertised, you my check this option to hide this link.

You may always get to the administration page by pointing your browser to an address like this:

This is a small security measure but may just stop people from snooping further.

Disable Outside Logins

This option controls whether login information posted to Dada Mail can only be allowed by a form supplied by Dada Mail itself. This means, you can't create a different form, outside the program to provide a way to login (or do something similar programmatically)

More so than any other option, this variable attempts to stop attempts of logging into a list by automated means.

Admin Flavor Name

Complementary to Hide Administration Link, Admin Flavor Name allows you to set the URL needed to access the screen that has the form to log into all the mailing lists administrated by Dada Mail and to the form to create a new mailing list.

By default, this is set to, admin, which means to access this screen, you'd go to a URL that looks like this:

Don't set this variable to anything that Dada Mail already uses, like:

subscribe

unsubscribe

login

logout

list

archive

etc. A good way to make sure would be to append, "admin" to your value, like this:

adminfoofoo

adminlalalala

adminwhakawhaka

No checks will be made to make sure you don't have this value set to something already present, so do be careful setting this variable.

Global Variable:$ADMIN_FLAVOR_NAME

Sign In Flavor Name

Similar to Admin Flavor Name, Sign In Flavor Name holds the URL that allows you to log into a particular list (usually), although it is sometimes used to re-login into any of your lists - very similar to the administration screen, but does not give you the form to create a new list.

The same naming rules apply for this variable as they do for Admin Flavor Name,. It's also suggested that you append, "sign_in" to the value you set this, like so:

sign_in_fdskjasdf

sign_in_sneaky_pete

etc.

Global Variable:$SIGN_IN_FLAVOR_NAME

Session Options

Check for Matching IP Addresses

Check this option (default) if making sure the IP address saved in the session matches the IP address of the user in the session itself. If the user's IP address changes, the session will be invalidated.

Rate Limiting

When enabled, rate limiting keeps track of the requests of certain features in Dada Mail - features like trying to log into the list control panel, or subscribing to a mailing list. Dada Mail keeps track of these requests by IP Address and can be configured to have a maximum amount of requests per timeframe. If more than the maximum amount of requests are made within the timeframe, the rate limit is said to be exceeded, and further requests will be denied.

This feature is especially important in any feature that involves filling out a form, then having that feature send out an email, like a subscription confirmation. Potentially nefarious bots may be filling out your subscription form quite blindly, with various bogus email addresses, causing all this unneeded email to be sent, then bounced back. If you're using a third party email sending service, like Amazon SES, this out of control behaviour could potentially lead to problems with you not following their Terms of Service.

Although rate limiting in Dada Mail was first implemeted for the above scenario, it's used in many other places:

Running the Cronjob Schedule

Subscription by the classic subscription form

Subscription via the RESTful API

Subscription and Unsubscription Confirmation via the token URL (or any URL with a token in it)

Logging in and out

Encrypting a password

Requesting to download a file attachment

Profile activation/registering/resetting password/login and out

Accessing the list control panel login screen

Enable Rate Limiting

Check this option to enable Rate Limiting. Enabled by default

Timeframe (in minutes):

Timeframe is the amount of time a number of requests for a certain feature/function can be made

Max Hits

Max Hits are the amount of requests for a certain feature/function that may be done in the Timeframe set above.

If more requests than the Max Hits happens within the Timeframe, the feature/function will be inaccessible, until the number of requests is below the Max Hits threshold. Any other feature mentioned will still be available to the user, and any other users of the app will not be affected (unless of course they're being tied to that same IP Address)

Config Variable:$RATE_LIMITING.

Configure CAPTCHA Options

Dada Mail uses CAPTCHA challenge-response tests optionally for many things: for the initial signup form, as an additional step to confirm a subscription, the Forward a Friend form, and other places. Dada Mail only supports Google's reCAPTCHA v2.

Dada Mail also supports Mailhide, which uses the reCAPTCHA system to easily protect email addresses shown in Dada Mail's public archives.

Add CAPTCHA on all subscription forms

Select this option (default) to add a CAPTCHA to all the subscription forms used by Dada Mail, including the subscrption form for all available mailings on Dada Mail's default screen.

reCAPTCHA Site key:

Plug in your reCAPTCHA Site key here.

reCAPTCHA Secret key:

Plug in your reCAPTCHA Secret key here.

Test CAPTCHA Configuration

Once you've made your selection of what type of CAPTCHA system to use, and inputted any necessary information, you may use the, Test CAPTCHA Configuration button to make sure the CAPTCHA system is working. Results should be shown below the button, as well as an example of the CAPTCHA widget. If the widget does not show, double-check that the information you've added is correct.

reCAPTCHA Mailhide

reCAPTCHA Mailhide is also supported, and also needs a Public and Private API key, which can be created here: https://www.google.com/recaptcha/admin#mailhide - NOTE! That this API key pair is different from your reCAPTHCA public/private key - they're not interchangeable.

Test reCAPTCHA Mailhide Configuration

You may use the, Test reCAPTCHA Mailhide Configuration button to make sure the Mailhide system is working. Results should be shown below the button, as well as an example of a protected email address. If the example does not show, double-check that the information you've added is correct.

Configure Global Mailing List Options

Enable Global Unsubscribe

When enabled, Global Unsubscribe will remove a member from all mailing lists, when they're removed from one mailing list.

Enable Global Black List

When enabled, members of all mailing list's Black Lists will be pooled together, when addresses are verified for subscription.

Configure Global Mass Mailing Options

Some mass mailing options are set globally, as sending limitations may be account-wide, rather than mailing list-wide. Mailing List-specific Mass Mailing Options are found in the List Control Panel, under: Mail Sending - Mass Mailing Options

Mass Mailings at Once Limit

This sets how many different mass mailings may go out from an installation of Dada Mail at one time. Conservatively, this is set to, 1 by default.

There are a few reasons why you wouldn't want to set this to any higher limit, one being that there's a possibility that there is a limit on how many email messages you are allowed to go out in a specific period of time.

Another reason is that sending out too many messages at once may cause the server your running to be overloaded.

But, if you've got the bandwidth, and the horsepower, feel free to raise this limit.

Global Variable:$MAILOUT_AT_ONCE_LIMIT

Mass Mailings Stale After

Mass Mailings Stale After sets how long a mailout can go with no mailing activity until Dada Mail itself won't automatically reload it, from the point it stopped.

This option attempts to safegaurd you against having a dropped mailing that you've, "forgotten" about reloading, "mysteriously" and unintentionally.

A mailout may still be reloaded if this limit has been surpassed, but it must be done manually, through the list control panel.

Global Variable:$MAILOUT_STALE_AFTER

Configure Confirmation Token Options

Confirmation Tokens are the random letters and numbers you'll see at the end of confirmation URLs in subscription and unsubcription links (among other things).

The token corresponds to information in your database, information we don't necessarily want embedded in the URL itself.

Dada Mail keeps this information around for awhile, so that these confirmation links work.But, this information can take up space in your database, so there is an expiration date associated with them. By default, Dada Mail keeps the information around for 60 days, before removing them.

If you're running a public mailing list, we do not suggest setting this to be under 30 days, as the unsubscribe link that depends on these confirmation tokens is required by the CAN SPAM law to be operable for 30 days.

Configure Program Name

The Program Name, set to either Dada Mail or, Pro Dada by default may be changed here. This name change will be reflected throughout the entire application, but the image used by default in the upper left hand corner will also need to be changed. We do suggest that you simply make your own template, rather than swapping this one image out.

Configure Secure Program URL

The Secure Program URL holds the URL you'd like to use for Dada Mail's List Control Panel. For example, if you can map your Program URL to either an, http:// URL, or a, https:// address, you can set regular access to,

http://example.com/cgi-bin/dada/mail.cgi

and access to the List Control Panel on a secure connection:

https://example.com/cgi-bin/dada/mail.cgi

Configure Amazon SES

You may set up Dada Mail to send via Amazon's Simple Email Service. This is a third party email sending service, which may have a much higher daily email quota and sending rate than what may be allowed on your own hosting account. Amazon SES does charge a fairly low rate for their service (about $0.10 per thousand messages sent). For more information, see the Amazon SES own site (http://aws.amazon.com/ses/) and Dada Mail's docs on Amazon SES (http://dadamailproject.com/d/features-amazon_ses_support.pod.html)

Amazon SES does have a long list of required Perl CPAN modules that need to be installed, before SES sending will work. If any modules are not installed, the installer will list which CPAN modules are still needed.