The Config.pm file holds all the variables needed to make global changes in Dada Mail.
You'll need to change 4 variables to get Dada Mail up and running. We've numbered them and provided help on the way, so let's start! People who are upgrading from previous versions will be able to use most of the same variable values as they've done before.
(1) Make a Dada Mail Root Password. This is used to Create New Lists. Tip -> make this somewhat obscure, and do not use "dada" or "root_password" or "god" or "money" or "mail".
Tip -> Comment the above line like this:
#$PROGRAM_ROOT_PASSWORD = 'root_password';
to totally disable new list creations. If you're not going to create new lists for a while, we suggest you comment that line for security reasons.
We also beg, plead and warn you that you really really should encrypt this password, by following the instructions located near the $ROOT_PASS_IS_ENCRYPTED variable.
(2) What is the Absolute Path the lists are going to be stored in? It's a good idea to store this information somewhere OTHER than under your public_html directory, to guarantee that no list information can be seen via a Web browser. You may have to chmod 777 this directory, or your cgi script won't be able to write new files to it. 777 is very open to outside eyes, so if you can, always set this to the minimum permission needed!
(3) What is the Absolute Path of your mail program? To find out, type in "which sendmail" in a telnet session. If you don't have sendmail, this script will still work great, but you may have to fiddle around with the "$MAIL_SETTINGS" variable under the "additional settings" after the first four variables. Dada Mail uses a Mail Program like Sendmail or qmail to send its messages and it needs to know where the Mail Program is to be able to use it.
(4) What is the URL of the mail.cgi script? This is the address of the mail.cgi script (not this file!), so when you're all done setting up the script, you'll have to go here to make your first list.
By default, Dada Mail comes configured out of the box using a PlainText backend for list subscribers and DB Files for everything else: Archives, Settings and Session Handling.
This makes setup simple, since there's no SQL setup needed.
YOU may want the additional features that an SQL Backend provides. These additional features include being able to save Profiles and Subscriber Profile Fields, other than the email address.
There's three steps involved to setup Dada Mail to use its SQL backend.
The first step is to set the five variables, $SUBSCRIBER_DB_TYPE
,
$ARCHIVE_DB_TYPE
, $SETTINGS_DB_TYPE
, $SESSION_DB_TYPE
and
$BOUNCE_SCORECARD_DB_TYPE
all to, SQL
.
Dada Mail supports three different types of SQL backends, MySQL, Postgres and, SQLite. SQLite is included, but isn't advised to be used in production. The MySQL and PostgreSQL backends are exactly the same, feature-wise.
The second step in setting up the SQL backend is to create the correct SQL tables needed for the type of backend you're going to use.
The appropriate tables are listed in the files located in the dada/extras/SQL driectory of the distribution itself:
dada/extras/SQL/mysql_schema.sql
dada/extras/SQL/postgres_schema.sql
dada/extras/SQL/sqlite_schema.sql
The third and final step involved in setting up the SQL backend is to fill out the %SQL_PARAMS
variable.
They are as follows:
The name of the database you are using.
The name of the database server itself. Example: sql.mydomain.com, or, localhost
The port that is used when connecting to the database server.
Set dbtype to 'mysql' for MySQL usage, 'Pg' for Postgres or, 'SQLite' for SQLite.
The SQL username.
The SQL password.
These are advanced paramaters sent to the Perl DBI SQL driver. You probably will not need to change the below.
For more information, see:
http://search.cpan.org/~timb/DBI/DBI.pm#ATTRIBUTES_COMMON_TO_ALL_HANDLES
Sets whether profiles are enabled, or not. Set to, 1
to enable, set to anything else to disable.
When a registration email or reset password email goes out, it'll go out on behalf of this email address. We highly encourage you to fill out this variable, or these email messages may not be sent out correctly. Example:
profile_email => 'me@mydomain.com',
If Profiles are enabled and this variable is left blank, the list owner email address of one of the mailing lists will be used.
Registration for Dada Mail Profiles can be verified using a CAPTCHA. We recommend this feature, if it's available. Set this variable to, 1
to enable CAPTCHA in the registration form.
"Magic" subscription forms are pre-filled out with the subscriber's email address, if they're logged into Dada Mail. To enable this feature, set this variable to, 1
This variable holds a few options to change the behavior of the session management cookie for Dada Mail Profiles.
Gravatars can also be enabled for Dada Mail Profiles. More information:
Most all the list administration screens have direct links to the Dada Mail Manual at
the bottom of the screen. Set this variable to, 1
to have them shown or, 0
to have them not shown.
The Dada Mail Manual is a paid service, more information about it can be found at:
http://dadamailproject.com/purchase/pro.html
The Dada Mail Manual is available online, and also to download. You may use your own copy of the Dada Mail Manual (just somehow password protect it) and set this URL to the location to where it is.
The default setting is the online version that we provide - but it is a paid service.
It's well advised that you get familiar with this program and go through it ENTIRELY before you change any of the settings below. From this point, it helps if you have some kind of Unix/Perl background, Or you've used previous versions of the script.
The "S" in $S_PROGRAM_URL stands for Secure, and allows you to have all screens that have anything to do with the list control panel to use a separate URL where you can install a completely different version of Dada Mail, or, if you can access your website via the https protocol, you can use that different URL specifically for list control panel activity.
Make sure $S_PROGRAM_URL contains a valid URL (http://...).
$PLUGIN_CONFIGS
holds defaults to various Dada Mail plugins and extensions.
The idea is that these plugins and extensions are difficult to upgrade, since everytime you upgrade, you have to re-configure the plugin. Not so anymore.
Some of the plugins currently supported are:
The order of precendence for the setting of these variables are:
So, if you set the configuration variable in the plugin/extension itself and the .dada_config file, the value in the .dada_config file will be used.
Refer to the plugin/extension itself to know what the various plugin/extension configuration names and values are and do.
This section deals with Dada Mail and security - both to tighten it up and lax it down, depending on what you want to allow and what you can do.
Set $SHOW_ADMIN_LINK to '0' to take off the 'Administration' link that you see on the Dada Mail default page. You can always get to the administration page by pointing your browser to an address like this:
http://mysite.com/cgi-bin/dada/mail.cgi?f=admin
This is a small security measure but may just stop people from snooping further.
Complementary to the $SHOW_ADMIN_LINK
variable, $ADMIN_FLAVOR_NAME
allows you to set the URL needed to access the screen that has the form to log into all the lists administrated by Dada Mail and to the form to create a new list.
By default, this variable is set to, admin
, which means to access this screen, you'd go to a URL that looks like this:
http://example.com/cgi-bin/dada/mail.cgi?f=admin
or:
http://example.com/cgi-bin/dada/mail.cgi/admin
If you set $ADMIN_FLAVOR_NAME
to something like, kookoo:
$ADMIN_FLAVOR_NAME ||= 'kookoo';
You'd then access this screen via the following URLS;
http://example.com/cgi-bin/dada/mail.cgi?f=kookoo
or:
http://example.com/cgi-bin/dada/mail.cgi/kookoo
A small security measure for sure, but could help keep curious eyes at bay.
Works best if you have, $SHOW_ADMIN_LINK set to, 1.
A small note on how to set this variable correctly:
Valid values:
Invalid values:
etc. A good way to make sure would be to append, "admin" to your value, like this:
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.
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:
etc.
If set to, 1, The only forms that will allow you to log into a Dada Mail list will be 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.
More so than any other option, this variable attempts to stop attempts of logging into a list by automated means.
By default on the list login screen, Dada Mail presents its user with a popup menu with the names of all the lists, hidden or not, that you can select to login to.
This is done by setting $LOGIN_WIDGET to 'popup_menu'.
If you want to only have a text box for someone to type in the list Short Name in, set $LOGIN_WIDGET to 'text_box'.
Allow the Root Password to Log In to All Lists
Set the '$ALLOW_ROOT_LOGIN' variable to '1' to allow the Dada Root Administrator to use the dada root password to log into any list. This is handy when you have many, many lists and need to tweak them but don't want to keep track of all the list passwords. Setting this variable to '1' does make your lists less secure, as every list can be accessed with the same password and that password is written plainly in this file, unless! you encrypt it (see below).
You can store an encrypted version of the $PROGRAM_ROOT_PASSWORD instead of the plain text version. Here are the steps. This is extremely recommended for obvious reasons.
Set up Dada Mail so it's working. Usually this means setting up the first four variables.
Point your browser to wherever you have the dada.cgi script at, and at the end of the URL, append this: ?f=pass_gen so you'll have something that looks like this:
http://yoursite.com/cgi-bin/dada/mail.cgi?f=pass_gen
You'll see a page in your browser that asks for a password to encrypt. Type in the password you want to use, and press 'encrypt'. An encrypted password will be outputted.
Copy that encrypted password and use it as the root password (that is, by changing the $PROGRAM_ROOT_PASSWORD variable above to the encrypted password).
Set $ROOT_PASS_IS_ENCRYPTED below to '1'.
Eat a mango. They're REALLY good.
You can block anyone from using any list control panel by specifying exactly what IP addresses are allowed. Leave the @ALLOWED_IP_ADDRESSES blank:
@ALLOWED_IP_ADDRESSES = qw();
to disable this security measure.
To add an address, just list it, like this:
@ALLOWED_IP_ADDRESSES = qw(123.456.67.678 215.234.56.9 783.456.9.2);
Please note that crafty people can spoof what IP address they're coming from, and dial-up accounts and connections using DHCP may not have the same IP address per session.
Setting $REFERER_CHECK to '1' will only allow you to access admin screens if the referer in your web browser is whatever is set in $PROGRAM_URL or $S_PROGRAM_URL. In other words, you won't be able to sign in to your list control panel, then stop, check your email on Yahoo! and come back to the list control panel by typing in its URL.
Dada Mail supports a few CAPTCHA tricks. All the configuration of the CAPTCHA system may be done in the Config.pm file (or outside Config file)
More information:
http://en.wikipedia.org/wiki/CAPTCHA
CAPTCHA may be used for:
A CAPTCHA form is shown after a subscriber clicks on a subscription confirmation URL and before they are allowed to subscribed. Why then, instead of say, on the initial sign up form? A good question.
First, showing the CAPTCHA later is one less hurtle at the beginning of the subscription process.
Second, the actual confirmation process of Dada Mail is quite the hurtle for a bot to go through, before even attempting to solve a CAPTCHA.
Enabling CAPTCHA support can be done in the list control panel, under,
Manage List - Mailing List Options. Check the option labeled, Enable CAPTCHA'ing
This form is shown below archived messages in the publically accessable archives of a Dada Mail List. You may enable this feature, as well as the CAPTCHA for this feature in the list control panel under, Manage Archives - Archive Options It's highly suggested to always use CAPTCHA'ing when using the Send an Archive to a friend feature (The potential for abuse is great). Make sure to check the option, Enable CAPTCHA'ing on the, "Send this Archive to a Friend"
Dada Mail supports two different CAPTCHA types. The first is just called, Default, the other one is called, reCAPTCHA. The Default CAPTCHA type is based on:
http://search.cpan.org/~burak/GD-SecurityImage/lib/GD/SecurityImage.pm
reCAPTCHA is based on the reCAPTCHA service:
It's suggested that you use the reCAPTCHA service, as it's a lot more sophisticated than the Default type.
To set the type of CATPCHA you'd like to use, make sure to set the variable,
$CAPTCHA_TYPE
to either, Default or, reCAPTCHA.
There are additional and different steps that must be followed to finished the configuration of these CAPTCHA types
If you are using the Default CAPTCHA type, you'll have the option to configure the paramaters set in the, $GD_SECURITYIMAGE_PARAMS
variable.
This type also requires use of the GD CPAN Perl Module, which itself require the GD C Library. If you do not have that, you will have to install it.
If you do have the GD library installed, no further configuration is necessary, but you may want to glance around at what is available to play around with.
See Also:
http://search.cpan.org/~burak/GD-SecurityImage/lib/GD/SecurityImage.pm
Each key in this hashref corresponds to the different methods of this module ie:
If you are using the reCAPTCHA CAPTCHA type, you'll be required to configure the paramaters set in the, $RECAPTCHA_PARAMS
variable.
To configure those paramaters, you'll have to first grab an account:
https://admin.recaptcha.net/accounts/login/?next=/recaptcha/sites/
and fill in the public_key and private_key in $RECAPTCHA_PARAMS
See Also:
http://search.cpan.org/~andya/Captcha-reCAPTCHA/
Which is the Perl CPAN module that Dada Mail uses for reCAPTCHA support.
The reCAPTCHA CAPTCHA type does require the same sort of thing that the, Send a Webpage functionality requires - so if that screen is working, reCAPTCHA should as well.
As an added bonus, you can also use CAPTCHA'ing to hide email addresses in your list's publically viewable archives. Yeah!
To enable this functionality, in your list control panel, go to: Manage Archives - Archive Options - Advanced and select, reCAPTCHA MailHide under, Email Address Protection
Although Dada Mail supports Captcha::reCAPTCHA::Mailhide, it does not come with it. This is because it's not possible to bundle the module with Dada Mail. You'll need to install it manually (using the CPAN shell, etc).
See also:
http://search.cpan.org/~andya/Captcha-reCAPTCHA-Mailhide/
Similar to the reCAPTCHA CAPTCHA type, you'll have to grab a key: http://mailhide.recaptcha.net/apikey
and fill in the private_key and public_key parts of the $RECAPTHCA_MAILHIDE_PARAMS
variable.
Dada Mail uses cookies only for its login mechanism. Subscribers are not given a cookie.
$LOGIN_COOKIE_NAME holds the name of the cookie passed to the person's browser that will be accessing the list control panel.
Some browsers/servers funkify Dada Mail's cookies. I don't know why. You can set additional attributes that are written for Dada Mail cookies by tweaking the %COOKIE_PARAMS hash, as outlined:
http://search.cpan.org/author/JHI/perl-5.8.0/lib/CGI.pm#HTTP_COOKIES
|$MAILPROG -t -odq is great to use for very large lists as it queues up all messages, but may not be available in all situations.
Since Dada Mail 2.4, most optional flags aren't needed, as Dada Mail now handles the mailing of large lists well with its Batch Sending feature and sending mail through SMTP. These settings are still useful if you are using something other than Sendmail or qmail.
See the main page for Sendmail or whatever mail system your server uses for more info. Some flags for sendmail you can use are:
-io -> Not exit a line with only a dot is read.
-t -> Read the headers of the message to decide whom to send it to. (this is really good to have for qmail)
-odq -> Insert the message into a queue.
-oem -> On error, mail back the message attempting to deliver it immediately.
An example of using all those flags in the variable looks like this:
$MAIL_SETTINGS = "|$MAILPROG -oi -t -odq -oem";
Tip: change this to ">>filename.txt"; to make Dada send email to a file instead of an email, for debugging. Here's something to look at: http://www.courier-mta.org/sendmail.html if you want more info.
NPH stands for No Parse Headers. I don't know what that means either, but Microsoft servers like it, and I've found that cookies don't get set correctly and you're left with a funky screen saying you did wrong without it. Set this variable to '1' if you're using a Windows server.
It's also a good idea to rename dada nph-dada.cgi for Windows servers that require scripts to use NPH.
$LOGS sort of holds the default location of where all the logs should be placed; you can then set the other logs using this as a starting point. For example:
$LOGS = '/home/account/dada_files/logs'; $PROGRAM_USAGE_LOG = $LOGS . '/usage.txt';
Sneaky. This makes a bit more sense if you're using an outside configuration file.
The dada log keeps track of mundane things, such as subscriptions, unsubscriptions, control panel logins, ...things like that. This can be pretty useful come debugging time, or if something went south during a very important mailing - best to turn this on /before/ that big mailing.
Turn logging on by specifying a absolute path to a file you want to use for the log. I personally always have this on, since it helps in finding a general trend and health of my list and can be beneficial if there is some sort of subscription dispute.
What should be logged?
Change each value to '1' in the %LOG hash if you want these things logged, change the variable to a '0' if you don't.
If you want to set a specific location for all errors from Dada Mail to be logged, $PROGRAM_ERROR_LOG is what you want to look at.
Set this variable to, An absolute path, to a location of a file you want the error log to be. Sounds like a mouthful - let's break it down:
In a Unix environment, an absolute path starts with, "/", also known as the, "root" directory and moves down, like an upside-down tree. Example of some absolute paths:
an example of the absolute path to my home directory
an example of the absolute path to where I've set the, $FILES variable to (just as example).
So, if you've set the $FILES variable correctly, you already know what absolute paths are. You see? You're smarter than you thought.
So what's , "an error log"? It's just a plain text file - that's it, so set the $PROGRAM_ERROR_LOG variable to an absolute path to a plaintext file. Easy enough. As to, "what location"? Well, if you've set the $FILES variable to an absolute path of a directory (per directions), use that as a starting point, and just specify an exact file in that directoy - easy!
So, if I set $FILES to:
$FILES = '/home/myaccount/dada_files';
set, $PROGRAM_ERROR_LOG to:
$PROGRAM_ERROR_LOG = 'home/myaccount/dada_files/errors.txt';
and you're done.
Note! This WILL NOT work:
$PROGRAM_ERROR_LOG = $FILES . '/errors.txt';
So, don't do that.
Also, you cannot set this variable in an outside configuration file (.dada_config), it has to be set in the Config.pm file.
Finally, just to clarify, the program can't automatically set a error log, since there may be problems with the program, before it's able to be fully interpreted, so we have to hard code it, that's why there's this variable.
Control what outside CPAN modules give back debugging information. Set the value to, "1" to enabled debugging information from the CPAN module.
Example:
NET_SMTP => 1,
Read the inline comments - there may be instances where you can set these values to something other than, "1" if the CPAN module itself supports levels of debugging information (for example:DBI)
You can change the look and feel of Dada Mail globally by specifying a different template file to use. Examples of what these templates look like are located in the 'extras' directory.
Path to the admin template. The default admin template is located at:
dada/DADA/Template/templates/default_admin_template.tmpl
Path to the default user template, also know as the list template. We'll attempt to stick to one name from now on. The default user/list template is located at:
dada/DADA/Template/templates/default_list_template.tmpl
Templates, by default, are saved in the same directory as your lists. To make things cleaner and nicer, you can move them into their own directory by setting the $TEMPLATES variable to an absolute path to a directory.
Hopefully, this variable will not need to be used - it's a little confusing on what it does....
Dada Mail, internally, uses a separate templating language from what is exposed to list owners and such, called HTML::Template. More information:
http://search.cpan.org/~samtregar/HTML-Template-2.7/Template.pm
Dada Mail needs to know the absolute path to these templates, which (as of 2.9) is at:
/path/to/your/cgi-bin/dada/DADA/Template/templates
Sometimes, the automated thingy that figures this absolute path hangs for unknown reasons.
To thwart that, you can manually put the absolute path you need in $ALTERNATIVE_HTML_TEMPLATE_PATH like so:
$ALTERNATIVE_HTML_TEMPLATE_PATH = '/home/justin/cgi-bin/dada/DADA/Template/templates';
How do you know if you need to set this variable? Most likely, you'll get an error that contains something along the lines of:
HTML::Template::Expr->new() : Error creating HTML::Template object : HTML::Template->new() : Cannot open included file congrats_screen.tmpl : file not found. at
or something dealing with the "File::Spec" module.
Somewhat lame, I know.
Specifies the different directory that Dada Mail should use for writing temporary files. These files may contain sensitive data, like a copy of an outgoing message, so keep that in mind.
Set $ARCHIVES to the absolute path a directory that you want archives to be saved under.
Set $BACKUPS to an absolute path to a directory to where you want list backups to be saved.
%BACKUP_HISTORY sets how many different revisions of various list files are saved.
If set to, 1, Dada Mail's mailing monitor will automatically be called. See:
FAQ-mailing_list_sending.pod.html
For more information.
It's suggested that you use the, auto_pickup.pl extension that's mentioned in the above documentation, as this method has less testing done to it, but if you can't be bothered (and for the sake of variety), this method is available.
If you do enable this option, every single time the, mail.cgi program is run, the mailing monitor will be run just before the program quits. This makes things convenient, since you can you just have a cronjob set to run Dada Mail:
*/5 * * * * /usr/bin/curl http://example.com/cgi-bin/dada/mail.cgi > /dev/null
or,
*/5 * * * * cd /home/youraccount/cgi-bin/dada/ /usr/bin/perl ./mail.cgi > /dev/null
And you have a mailing monitor running, without any extra scripts to installed. It may also be convenient, if you want the mailing monitor that the auto_pick.pl
extension provides, but you don't have access to, or don't know how to set a cronjob.
Currently, Dada Mail can use an inline HTML WYSIWYG Editor called FCKEditor for authoring of the HTML version of the mailing list message. To do this, you need to install FCKEditor.
How to install FCKeditor:
Download FCKeditor at:
http://www.fckeditor.net/download/default.html
Uncompress the distribution you receive. It should make a directory called, "fckeditor"
You'll want to put this entire directory into your public html directory of your hosting accout. Take note of the URL you'll need to access this directory.
Set the $FCKEDITOR_URL Config.pm variable to this URL.
Done!
One thing to make sure is that you're install FCKeditor under the same subdomain as your Dada Mail is installed. For example, if Dada Mail is at:
http://www.example.com/cgi-bin/dada/mail.cgi
FCKeditor has to be installed at something like:
http://www.example.com/fckeditor
and not,
http://different-subdomain.example.com/fckeditor
To tweak the configuration of how FCKeditor works within Dada Mail (advanced stuff), see the:
/dada/DADA/Template/templates/FCKeditor_default_js_options.tmpl
file.
CKEditor is the newer version of FCKeditor. It works a little differently and doesn't have full coverage of all the features that FCKeditor has (most notably, there's no free File/Image Upload file browser - boo!), so Dada Mail is going to support both for a little while, until we're completely comfortable with CKEditor.
The support for CKEditor is experimental.
CKEditor will only be available in the, "Send a Message", "Send a Webpage" and the, "List Invitation" screens.
Download CKeditor at:
Uncompress the distribution you receive. It should make a directory called, "ckeditor"
You'll want to put this entire directory into your public html directory of your hosting accout. Take note of the URL you'll need to access this directory.
Set the $CKEDITOR_URL Config.pm variable to this URL.
Done!
One thing to make sure is that you're install CKeditor under the same subdomain as your Dada Mail is installed. For example, if Dada Mail is at:
http://www.example.com/cgi-bin/dada/mail.cgi
CKeditor has to be installed at something like:
http://www.example.com/ckeditor
and not,
http://different-subdomain.example.com/ckeditor
Set this variable to, 1
to enable Multiple Mailing List Sending.
Set this variable to, 0
to disable Multiple Mailing List Sending.
Set to, merged
or, individual
See:
features-multiple_list_sending.pod.html
Setting SCREEN_CACHE to, 1 will save rendered HTML screens for future use, instead of having the program recreate them each and every time a certain screen is needed.
If you have dynamic information in list templates, you may not want to use this option.
More information:
FAQ-general.pod.html.html#is_there_a_way_to_speed_up_screen_rendering__how_to_use_the_screen_cache_
A global black list means that all lists being run under Dada Mail use the same black list. Change the value to, "1" to enable.
This feature is only available using the SQL Subscriber backend.
Global Unsubscribe means that when a person unsubscribes from one list, they're unsusbcribed from every list under Dada Mail. Change the value to, "1" to enable.
This feature is only available using the SQL Subscriber backend.
It's advised that you take advantage of this feature if you also use the Global List Sending feature.
There may be a situation where you'd like to have a field about a subscriber that isn't publically available for a subscriber
to fill out. If this is the case, when naming the field, create the field with the name prefixed with what is saved in the,
$HIDDEN_SUBSCRIBER_FIELDS_PREFIX
variable. By default, this is set to, _
(underscore)
@PING_URLS holds the URLS that should be sent an XML-RPC message when you add a new message to your archive.
Here's more information:
http://www.xmlrpc.com/weblogsCom
You'll need the XMLRPC::Lite Perl module installed:
http://search.cpan.org/~rjray/RPC-XML-0.57/
If no parameters are passed to the mail.cgi script, you will see the default or main Dada Mail page. You can override that by setting any URL you want into $DEFAULT_SCREEN.
If you do override this screen, it is recommended that you provide some way to at least unsubscribe to every one of your lists.
By default, when you log into the administration area you are shown the "Send a Message" screen. You can specify a different URL to go to by changing the $DEFAULT_ADMIN_SCREEN variable.
When a user clicks the, "Logout" link on left hand menu of the control panel, they'll be redirected to the URL located in the, $DEFAULT_LOGOUT_SCREEN variable. By default, this is set to the, $PROGRAM_URL variable.
This generates the admin menu's various links and features, which can then be turned on and off via the control panel. You shouldn't fool around with $ADMIN_MENU itself unless you want to add a feature, like a plugin.
$LIST_QUOTA, when set to anything other than undef, can be used to set the maximum number of lists a Dada Mail install can have at one time.
If set in an outside config file, you may also use the value, ' ' to mean, "no quota"
$SUBSCRIPTION_QUOTA, when set to anything other than undef, can be used to set the maximum number of subscribers in a Dada Mail list.
This variable will basically also set the limit of the per-list setting, subscription_quota. Any limit set in this setting that's over the limit imposed in the, $SUBSCRIPTION_QUOTA will be ignored.
If set in an outside config file, you may also use the value, ' ' to mean, "no quota"
This variable sets how many different mailouts 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.
$MAILOUT_STALE_AFTER sets, in seconds, how long a mailout can go with no mailing activity until Dada Mail itself won't automatically reload it, from the point it stopped. The default, 86400 seconds is one full day.
This variable 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.
$EMAIL_CASE configures dada to either lowercase ONLY the 'domain' part of an email, or lowercase the entire email address. Lowercasing the domain is the correct way, since the 'name' part of an email should be case sensitive, but it is almost never handled that way. Set this to 'lc_domain' to lowercase JUST the domain, or set this to 'lc_all' to lowercase the entire email address.
@EMAIL_EXCEPTIONS allows you to enter email addresses that wouldn't normally pass the email address validator. Good for testing offline when all you have is, say, root@localhost working.
$LIST_IN_ORDER controls whether your email list is handled in alphabetical order. Having a list in alphabetical order makes a list easier to work with but BE WARNED that this will, especially when you're using a plain text list, slow things down. If you have small lists then this shouldn't be too much of a problem. Set this variable to '1' to have your list sorted, '0', to keep your list unsorted.
This variable tells Dada Mail if you should show the "Top-Level Domains" table. You might not be interested in this information, or maybe your list is so large that your "View List" page is having trouble loading. Change this to '0' to stop the table from being shown.
The Domain Table can also be customized. You can put in or take away any top-level domain ending (like com or edu) by changing this list. Just add to the list, or delete something out of it - follow the pattern. Lots of top-level domain listings won't necessarily slow down the "View List" page.
This variable tells Dada Mail if it should show the "Services" table. Change it to '0' if you're not interested in this information, or if your list is so large that your "View List" page is having trouble loading.
The services Panel can also be customized. You can put in or take away any service that you want to track by adding a record in between the parentheses. Here's an example of what a new service would look like:
'Altavista' => 'altavista.net',
Put the NAME of the service on the left, and the domain ending that corresponds to that service on the right. The domain ending for America Online is "aol.com" - follow the pattern!
$FILE_CHMOD is a variable that sets what permission Dada Mail sets files to when it initially writes them. You can set it to a few things:
0660 - probably all you need 0666 - allows anyone to read and write files in the $FILES directory 0755 - probably insecure 0777 - shooting yourself in the foot insecure 0600 - godawful paranoid about the whole thing - life in general, as secure as it gets
It's a good idea to figure out what works and leave this variable alone after your lists are set up, as you may not be able to access a list under a different $FILE_CHMOD.
We've changed what the $FILE_CHMOD Dada Mail is shipped (02/13/01) with from 0660 to 0666. Note that this may be less secure than 0660, but may solve some problems people are having. Change this back to 0660 if everything seems to have been running just fine.
Similar to $FILE_CHMOD, $DIR_CHMOD sets permissions to Directories created with Dada Mail. At the moment, this is limited to backup directories.
Charsets that Dada Mail supports. These are the most used; to add your own would look like this:
'Description charset',
There's a TAB between the Description and the actual charset: THIS IS REALLY IMPORTANT.
This is the default group of Precedences used when sending Bulk Messages. Be warned that the SMTP sending may not support any other precedence value except the ones listed here. The Default is "undef", which will stop the Precedence header from being written out.
These are the default content-types. Add your own, have fun.
Priorities of mailings. I find people sending me things with the highest priority to tell me about credit cards really don't garner my attention.
Dada Mail uses the HTML::TextToHTM CPAN module to convert plain text to HTML when showing plain text in archives and things like that. You can change the behavior of this formatting by changing what arguments get passed to the HTML::TextToHTML module, as described here:
http://search.cpan.org/~rubykat/txt2html/lib/HTML/TextToHTML.pm#OPTIONS
Setting this paramater to, 1
will allow you to use the old-style tags that
Dada Mail originaly used. An old-style tag looks like this:
[tag]
New-style tags look like this:
<!-- tmpl_var tag -->
And are nothing but HTML::Template-style tags. We'd like to move away from the
old-style tags, but still 100% support them, for the time being. Setting this
paramater to, 0
is very much experimental.
These are the MIME types Dada Mail understands. The file ending is on the left, what MIME type it maps to is on the right. Feel free to add your own. Dada Mail should be able to figure out the MIME type of a file, but when it can't, it'll fall back on this.
In case nothing up there matches what someone is trying to upload, there's a default MIME type for a last ditch guess. Some mail readers are sophisticated enough to figure out what an attachment is without its MIME type, but don't count on it.
This is set for the $MIME::Lite::PARANOID variable. Set it to '1' if you don't know if you have the MIME::Base64 or MIME::QuotedPrint or you don't know what those are. :)
Set mime_hush to '1' to suppress/unsuppress all warnings coming from this module.
Set to: 'faster', 'less memory', or 'no tmp files'. This controls how the MIME::Parser works. For more information:
http://search.cpan.org/~dskoll/MIME-tools-5.417/lib/MIME/Parser.pm#OPTIMIZING_YOUR_PARSER
The global default Email Message Templates are saved right here in the Config.pm file.
Many of these email tempaltes are list-centric and can be edited list by list in the list control panel under, Manage Copy - Email Templates. If what you desire is to edit an email template for just one list, the place to do that is in the list control panel.
If you desire to set the default email template for all your lists, you'd want to do this in the global configuration (right here, or in the outside configuration file)
(List-centric, editable per list)
This is the default "subscription successful!" email message. This message can be customized for each list in the list's Control Panel.
This email message is sent to the list owner, when a new subscription has been made by a subscriber.
This email message is sent to the list owner, when a new subscription has been made by a subscriber.
(List-centric, editable per list)
This is the default "unsubscription successful!" email message. This message can be customized for each list in the list's Control Panel.
(List-centric, editable per list)
This is the default "subscription confirmation" email message. This message can be customized for each list in the list's Control Panel.
(List-centric, editable per list)
This is the default "subscription confirmation" email message. This message can be customized for each list in the list's Control Panel.
(List-centric, editable per list)
This is the default "Mailing List!" email message. This message can be customized for each list in the list's Control Panel.
(List-centric, editable per list)
Similar to $MAILlING_LIST_MESSAGE, but used specifically for HTML messages.
(List-centric, editable per list)
This message is sent to someone who is not allowed to post to your list using Dada Bridge plugin. If you do not use the Dada Bridge plugin, this won't be of any use to you! This message can be customized for each list in the list's Control Panel.
This message is sent to the list owner, usually in a discussion list setup, when a message is sent to the list from an email address who does not have access to do so.
(List-centric, editable per list)
This message is sent out only if someone that's already currently subscribed to a list tries to subscribe again and you've set the preferences to send an email out, instead of giving this message in the web browser.
This email message is sent to the list owner, when a mass mailing has finished.
The text version of the list invitation message.
The HTML version of the list invitation message.
(List-centric, editable per list)
The text version of the message sent when an archived message is sent to a friend.
The HTML version of the message sent when an archived message is sent to a friend.
The global default HTML Screen Templates are saved right here in the Config.pm file.
Many of these HTML screen templates are list-centric and can be edited list by list in the list control panel under, Manage Copy - HTML Screen Templates. If what you desire is to edit an HTML screen template for just one list, the place to do that is in the list control panel.
If you desire to set the default HTML screen template for all your lists, you'd want to do this in the global configuration (right here, or in the outside configuration file)
(List-centric, editable per list)
Shown when a request to subscribe is successful.
(List-centric, editable per list)
Shown when a request to unsubscribe is successful.
(List-centric, editable per list)
Shown when a subscription is successful.
(List-centric, editable per list)
(List-centric, editable per list)
Shown when an unsubscription is successful.
For some reason, the text below is saved in the Config.pm:
These defaults will be used when CREATING a new list. These defaults will also be used for existing lists if there isn't a variable already set. These values correspond to the values created in the list databases. An example would be:
%LIST_SETUP_DEFAULTS = ( black_list => 1, send_via_smtp => 1, );
This would setup all lists created now with blacklists on, and mail being sent using SMTP.
Note! You *can* enter the passwords for both POP3 (for POP-before-SMTP stuff) and the SMTP SASL password here, but they will be in plain text. When these passwords are saved in the list settings, they are encrypted.
Similar to, %LIST_SETUP_DEFAULTS, %LIST_SETUP_INCLUDE holds defaults values for lists.
The difference is that any value NOT set here, will be set, in accordance to what %LIST_SETUP_DEFAULTS already has. Because of this, it's much more convenient to use this variable in the outside config file.
For example, if you set up the bounce handler with the bounce email of, "bounces@example.com", you could set %LIST_SETUP_INCLUDE to have these values:
%LIST_SETUP_INCLUDE = ( set_smtp_sender => 1, # For SMTP add_sendmail_f_flag => 1, # For Sendmail Command admin_email => 'bounces@example.com', );
And all new lists would automatically be hooked up to the bounce handler.
%LIST_SETUP_OVERRIDES will override any setting that's in the %LIST_SETUP_DEFAULTS hash and whatever is set in the list preferences.
@LIST_SETUP_DONT_CLONE is a list of settings you'd rather not have allowed to be cloned, in the little feature in the, "Create a New List" screen, entitled, "Clone settings from this list:"
(advanced hacker stuff)
Dada Mail tries to guess your Operating System using the $^O variable. If it's guessing wrong, you can set it yourself.
$NULL_DEVICE refers to where the /dev/null device or file or whatever you more smert people call that thing... is located. On most *nix's, it's at /dev/null. You may have to change it. For example, if you're a Windows folk.
if this is taken off, the seed random number will be made from the time, or from something pretty random, depending on your version of Perl.
Where is the salt number located in the encrypted password? It's usually at substr(0,2) but may be different on different systems, some systems are set to substring(3,2). Actually, I've only had this problem on one system - mine :) - which was a FreeBsd 4.0 distro. Under most cases, this is NOT going to be your problem!
The salt number. Change $SALT to
$SALT = "mj";
if all else fails.
A pin number is made when someone wants to subscribe to your list. They will get a confirmation email with a special link that includes their email, and a pin that's generated from the email and the variables below using a mathematical equation. It's much harder to guess a pin with these two variables changed:
Changes how Dada Mail handles parsing CSV files. See:
http://search.cpan.org/~makamaka/Text-CSV/lib/Text/CSV.pm#new_(\%attr)
Change what DB Dada Mail will use. Dada Mail can use various db packages to save each list's information. It looks for the best one and uses the next package in the list if it can't find it. If you get a software error (an error 500, not having any information changed when creating a new list) you may have to change this to:
BEGIN { @AnyDBM_File::ISA = qw(SDBM_File) }
SDBM is the worst package to use, but it is always available with perl. See the man page for the AnyDBM_File for more information.
Check the AnyDBM_File for more info.
To add an attachment to a list message in Dada Mail from the control panel, we have to upload it via the web browser. There are two ways we can do this. One is to save the information in the $FILES directory and then open it up, attach it, and then delete it; and the other involves some magical qualities of CGI.pm and MIME::Lite, probably coupled with your server's /tmp file, if you can use it. Setting $ATTACHMENT_TEMPFILE to '1' uploads, saves, attaches and then deletes the file. Setting it to '0' does it magically. I suggest '1', unless you want to play around with it.
See: http://search.cpan.org/~gyepi/Mail-Verp-0.05/Verp.pm
This is the version of this Dada Mail Program. Mostly it's used to see if there's a new version out there to use and to say that you've got the freshest tools on the Web.
This is the name of the program. I guess if this script has a mid-life crisis or something, it can change its name, buy a really fast car and start chasing guys half her age.
This is how you can set all the variables located in the Config.pm module outside of the module itself. Why would you want to do that? It makes Dada Mail more upgradable: every time you upgrade Dada Mail you don't have to tweak this file (or tweak it only slightly); you just throw up the new distro and away you go! Now, Dada Mail finds this external config file in a bunch of ways.
You can implicitly set the directory it lives in by changing the
$PROGRAM_CONFIG_FILE_DIR
variable that lives inside the Config.pm
module. Wherever the external config file lives, it needs to be
called .dada_config
By default, you'll notice that the $PROGRAM_CONFIG_FILE_DIR
variable is set to, auto. If this is the case, Dada Mail will attempt
to look for the .dada_config
file in the following location:
/home/user/.dada_files/.configs
Where, /home/user
is your home directory. This means that if you have set up
Dada Mail using the advanced installation instructions
http://dadamailproject.com/purchase/sample_chapter-dada_mail_setup.html
and Dada Mail can find your home directory automatically, you won't have to change a thing in the Config.pm file.
An example of a .dada_config file would look like this:
$PROGRAM_ROOT_PASSWORD = 'root_password'; $FILES = '/home/home_dir/dada_lists_dir'; $MAILPROG = '/usr/lib/sendmail'; $PROGRAM_URL = 'http://yoursite.com/cgi-bin/dada/mail.cgi';
Pretty much any variable, array or hash can be saved in the
.dada_config file, as long as it's not set inside a BEGIN{} block,
which leaves out $PROGRAM_ERROR_LOG and @AnyDBM_File::ISA
Treat .dada_config as a file that gets eval()
right into Config.pm
because, well, that's what happens. Because of this, great care should
be made in where you put .dada_config
The $PROGRAM_CONFIG_FILE_DIR is located at the top of the Config.pm file, right after the first 4 variables for easy getting-at and fumbling.
If you need to set a variable in the outside config file to '0', it may not work. Instead, try setting it to '2'.
If you need further support for this script, please do not email me directly, but use one of the following channels:
My name is Justin Simoni
Copyright (c) 1999-2009 Justin Simoni All rights reserved.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
To riding bicycles.