NAME Config.pm


DESCRIPTION

Hello! Welcome to the Dada Mail Config.pm File! Here, you'll be able to set up your entire mailing list system quickly and easily.

Please look at the end of this file for copyright, license and general information. Donations are always welcome.

Follow the instructions closely and this process should be pretty easy. A few things before we get started. This is a Perl program, so it follows certain programming conventions. You just can't put anything in this file and expect it to work. First off: The '#' (pound character) is used for commenting, any line starting with this character is used to write notes and comments. It won't be seen to Perl as code and it is safe to write whatever you want with, like this:

        # This is a comment. yeee ha.

Also, this file has documentation embedded in itself; if you're looking at this sentence in anything other than the Congig.pm file itself, the documentation has been extracted and saved somewhere else. That's cool, just trust us. The documentation is called POD and looks like this:

        =pod 
        
        I am pod and I am, OK
        
        =cut

Exciting stuff, we know

Lastly, words that start with a '$' (dollar sign) are variables, They're Perl code that stand for something else. You'll need to change some variables (only 4) in this file to make Dada Mail work correctly. This will be the only file you'll need to change out of the whole bunch. To set up Dada Mail,follow the instructions exactly. This file is HEAVILY commented to help you along your way, be sure to read all the notes! :) Scroll down about 5 lines until you see the next group of comments to start setting up Dada Mail.


Dada Mail Set Up Instructions

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.

$PROGRAM_ROOT_PASSWORD

(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 follow the instructions located near the $ROOT_PASS_IS_ENCRYPTED variable.

$FILES

(2. What is the Absolute Path the lists going to be stored in? Its a good idea to store this information somewhere OTHER than under your public_html directory, to gaurantee 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, if you can, always set this to the minimum permission needed!

$MAILPROG

(3. What is the Absolute Path of your mail program? (type in ``which sendmail'' in a telnet session if you don't have sendmail, this script will still work great, 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.

$PROGRAM_URL

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.

That's it, You're done! It's recommended that you set up at least one list to see if everything is working correctly and then fix (if any) problems that you find. All other variables either don't need to be changed, or are advanced settings. Your error log is a great place to start figuring out what went wrong. If you don't have access to an error log, scroll through this file to see how to create an error log just for Dada Mail

Here's a check-off list to make sure you've installed everything correctly, this list is somewhat long and exhaustive, as it covers most frequently asked questions that can be fixed in this file.

Check out the support section on the Dada Mail website:

http://dadamail.org/support

If you have any more questions

One last note:

Always Always Always set up a test list. Mailing List Managers are almost always in a critical state, since who knows how many thousands of people are interacting with your lists. Will this sending option work well? at all? Test. Test. Test. Test. You may want to read this entire file to get familiar with what Dada Mail does. Actually no. I really want you to read this entire file to get familiar with DADA Mail. It may take you a minute, but it will save you time in the future.

Another Last Note:

This file is going to be your best friend. It's choke full of information, advice and ideas. Use it!


Additional Settings

It's well advised that you get familiar with this program and go through it ENTIRELY before you change any of the below settings, From this point, it helps if you have some kind of Unix/Perl background, Or you've used previous versions of the script.

$S_PROGRAM_URL

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 protocal, you can use that different URL specifically for list control panel activity.

Make sure $S_PROGRAM_URL contains a valid URL (http://...).

$DB_TYPE

$DB_TYPE specifies what database you'd like to be using. The plain as grain one to use is 'PlainText', although others may be available and you may be so inclined to make your own. MySQL and PostgreSQL should be included in the standard distribution. To be able to use any SQL backend requires that you have access to an SQL database and that you have the DBI perl modules installed.

Set $DB_TYPE to MySQL for Mysql, PostgreSQL for Postgres.

If you do use a SQL database, you most likely have to tweak the %SQL_PARAMS hash.

$ARCHIVE_DB_TYPE

Similar to $DB_TYPE, $ARCHIVE_DB_TYPE refers to what database type you'd like to be using for Dada Mail's archives. The default is, Db, which refers to the DB File format (ex: The Berkeley DB_File format)

Available also are MySQL and PostgreSQL.

Set $ARCHIVE_DB_TYPE to MySQL for Mysql, PostgreSQL for Postgres.

If you do use a SQL database, you most likely have to tweak the %SQL_PARAMS hash.

%SQL_PARAMS

%SQL_PARAMS are parameters passed to the SQL server. You need to fill these out if you're using either MySQL or PostgreSQL (You also need to make a table for Dada Mail to work with, explained later). They are as follows:

database
The name of the database you are using

dbserver
The name of the database server itself. Example: sql.mydomain.com

port
The port that is used when connecting to the database server. You usually only needs this for Postgres.

dbtype
set dbtype to 'mysql' for MySQL usage, 'Pg' for Postgres.

user
The SQL username

pass
The SQL password

Before trying to install Dada Mail with an SQL backend, make sure you create the appropriate table. For MySQL users, make the table using this:

 CREATE TABLE dada_subscribers (
 email_id                                            int4 not null primary key auto_increment,
 email                            text,
 list                             text,
 list_type                        text,
 list_status                      char(1)
 );

For Postgres, use this:

 CREATE TABLE dada_subscribers (
 email_id                         serial,
 email                            text,
 list                             text,
 list_type                        text,
 list_status                      char(1)
 );

If you are setting $ARCHIVE_DB_TYPE to an SQL, also issue the following table:

 CREATE TABLE dada_archives (
 list                          varchar(32),
 archive_id                    varchar(32),
 subject                       text,
 message                       text,
 format                        text,
 raw_msg                       text
 );

(should work for both MySQL and Postgres)

Note! That the table schema for Archives has changed for version 2.9 - if you're upgrading, make sure your table now matches the new schema.


Security

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.

$SHOW_ADMIN_LINK

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.

$LOGIN_WIDGET

By default, on the list login screen, Dada Mail presents it's 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 listshortname in, set $LOGIN_WIDGET to 'text_box'

$ALLOW_ROOT_LOGIN

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 off 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)

$ROOT_PASS_IS_ENCRYPTED

You can store an encrypted version of the $PROGRAM_ROOT_PASSWORD, instead of the plain text version and here are the steps. This is extremely recomended for obvious reasons.

  1. set up Dada Mail so it's working, usually this means setting up the first four variables.

  2. 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

  3. 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.

  4. Copy that encrypted password and use it as the root password.

  5. Set $ROOT_PASS_IS_ENCRYPTED (below) to '1';

  6. eat a mango. they're REALLY good.

@ALLOWED_IP_ADDRESSES

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.

$REFERER_CHECK

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 into your list control panel, then stop, check your email on Yahoo! and come back to the list control panel by typing in its URL.


Cookies

Dada Mail uses cookies only for its login mechanism. Subscribers are not given a cookie.

$LOGIN_COOKIE_NAME

$LOGIN_COOKIE_NAME holds the name of the cookie passed to the person's browser that will be accessing the list control panel.

Cookie Paramaters.

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


SMTP Settings

You can send email using an SMTP server instead of the sendmail program. If you can, we suggest you do. Dada Mail uses the amazing Mail::Bulkmail module to do all SMTP sending.

$SMTP_ADDRESS

Specify a SMTP server address

Deprecated - to set a default SMTP address, set the %LIST_SETUP_DEFAULTS smtp_server to a valid SMTP server. It's easy enough to set an SMTP address for a list via the list control panel, under Sending Options - SMTP Settings.

$SMTP_ERROR_LOG

SMTP can be a bit more tricky than regular mailings, you can specify an error log just for SMTP mailings.

$SMTP_CONVERSATION_LOG

To further aid debugging SMTP problems, you can set the $SMTP_CONVERSATION_LOG to an absolute path to a file you want the log written to. This log will hold almost the entire conversation Dada Mail will have with the SMTP server and should not be used in a production environment. Among the things it logs will be passwords, if you are using SALS authentication.

$SMTP_TRUSTING

(from Mail::Bulkmail) - By default, Mail::Bulkmail will only allow you to use valid e-mail, valid dates, valid timezones, and valid precedences. Turn it on by setting it (in this case $SMTP_TRUSTING) to some non-zero value. This will bypass all error checking. You should probabaly just leave it off so you can check for valid e-mails, dates, etc.

Note: this only refers to SMTP sending, not the rest of Dada Mail. We just thought you'd like the option.

$FORK_SMTP_BULK_MAILINGS

This is mostly for WinNT users, but you can send messages, without forking AS LONG AS you're using an SMTP server and YOU ARE NOT using batching. To do that, change this variable to '0';

You most likely will not want to set this variable to '0' unless there is just no other way.


sendmail Settings

$MAIL_SETTINGS

|$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 man 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 immediently.

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


Windows Specific Settings

$NPH

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. Set this varable 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.


Logging

$LOGS

$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.

$PROGRAM_USAGE_LOG

The dada log keeps track of mundane things, such as subscriptions, unsubscription, control panel logins... things like that. This can be pretty useful come debugging time, or 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 benificial if there is some sort of subscription dispute.

%LOG

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

$PROGRAM_ERROR_LOG

Create your own error log file for fun and profit! Many people either don't know where their error log is, or aren't allowed to see it, which is pretty cruddy, but here's your chance to make your own error log, and get a better picture of what's going wrong.


Templates

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.

$ADMIN_TEMPLATE

Path to the admin template. The default admin template is located at:

 dada/DADA/Template/templates/default_admin_template.tmpl

$USER_TEMPLATE

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


List Files - Specific Places To Write Them.

$TEMPLATES

templates are by default, saved in the same directory as your lists. To make things cleaner and nice, you can move them into their own directory by setting the $TEMPLATES variable to an absolute path to a directory.

$ALTERNATIVE_HTML_TEMPLATE_PATH

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) are 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.

$TMP

Specifies the different directory that Dada Mail should use for writing temporary files. These files my contain sensitive data, like a copy of an outgoing message, so keep that in mind.

$ARCHIVES

Set $ARCHIVES to the absolute path a directory that you want archives to be saved under.

$BACKUPS

Set $BACKUPS to an absolute path to a directory to where you want list backups to be saved.

%BACKUP_HISTORY

%BACKUP_HISTORY sets how many different revisions of various list files are saved.


Program Behavior

HTML Area Integration - $HTMLAREA_URL

Currently, Dada Mail can use an inline HTML Editor called HTMLArea for authoring of the HTML version of the mailing list message. To do this, you need to install HTML Area.

Luckily, Dada Mail now comes with a copy of HTML area in the:

/dada/extras/htmlarea

directory of the distribution.

To install:

You'll see the HTMLArea inline editor by going to the ``Send a List Message'' screen in the list control panel and clicking, ``Advanced''.

For more information on HTMLAREA, please see:

        http://www.dynarch.com/projects/htmlarea/

HTMLArea is:

Copyright (c) 2002-2005, interactivetools.com, inc. Copyright (c) 2003-2005 dynarch.com

@PING_URLS

@PING_URLS holds the URLS that should be sent a 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/

$DEFAULT_SCREEN

If no paramaters 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 someway to at least unsubscribe to every one of your lists.

$DEFAULT_ADMIN_SCREEN

By default, when you log into the administration area, you are shown the ``Send a List Message'' Screen. You can specify a different URL to go to by changing the $DEFAULT_ADMIN_SCREEN variable.

$ADMIN_MENU

This generates the Admin Menu and various links and features can 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

$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.

$SHOW_EMAIL_LIST

Customize the ``View List'' Screen in the Administration Area You can turn off and on many of the features in the ``View List'' administration area. If lists get really large, it may take some time for this page to load, some people have reported that the screen won't load at all. The main reason for this is the scroll box that holds a list of all the subscribed people. Not only does it take time to sort through the list in alphabetical order and then print all the addresses out, it's also a huge burden for the browser to render a select box that large. It's not much help anyways to have a select box holding 10,000 email addresses. You can stop this select box from being shown by editing the below variable to '0'

To turn it on again, change this variable to 1

$EMAIL_CASE

$EMAIL_CASE configures dada to either lowercase ONLY the 'domain' part of an email, or lowercase the entire email address. lower casing the domain is the correct way, since the 'name' part of an email should be case sensitive, but 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

@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

$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, this will, especially when you're using a PlainText list, slow down things. If you have small lists, then this should be too too much of a problem. Set this variable to '1' to have your list sorted, 0, to keep your list unsorted.

$SHOW_DOMAIN_TABLE

This variable tells Dada Mail if you should show the ``Top Level Domains'' table. You might not be interested in this information, or 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

@DOMAINS

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.

$SHOW_SERVICES_TABLE

This variable tells Dada Mail if it should show the ``Services'' table. You might not be interested in this information, or your list is so large that your ``View List'' page is having trouble loading.

%SERVICES

The services Panel can also be customized, You can put in, or take away any service that you want to track, add a record in between the parentheses, heres 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 on the right that corresponds to that service. The domain ending for American Online is ``aol.com'' Follow the pattern!

Artsy Buttons (DEPRECATED)

This is the old way that button styles were applied. Lord knows why they're here.

Do not use these, as they will disappear very soon.

Rather, consult the default_css.css file in dada/DADA/Template/templates for ALL style information.

As a guide, here's how the old inline styles relate to the new style classes:

$STYLE{default_submit} -> input.plain

$STYLE{green_submit} -> input.processing

$STYLE{red_submit} -> input.cautionary

$STYLE{yellow_submit} -> input.alertive

$FILE_CHMOD

$FILE_CHMOD is a variable that sets what permission Dada Mail sets files to when it initialy 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 - god awful 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.

$DIR_CHMOD

Similar to $FILE_CHMOD, $DIR_CHMOD sets permissions to Directories created with Dada Mail. At the moment, this is limited to backup directories.

$HTML_CHARSET

List Control Panel

$SHOW_HELP_LINKS

There are links on the bottom of some of the List Control Panel screens that go to helpful tutorials on the Dada Mail support site. If you'd like these messages taken off, set this variable to '0'

$HELP_LINKS_URL

Provides an easy way to change the base URL of the Help Links. Not very useful, unless you want to have your own version of the Help Links.


Email Messagess and Headers

@CHARSETS

Charsets that Dada Mail supports, they 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.

@PRECEDENCES

This is the default group of Precedences used when sending Bulk Messages, be warned the SMTP sending may not support any other prededence value except the ones listed here. The Default is, ``undef'' which will stop the Precedence header from being written out.

@Content_type

These are the default content-types, add your own, have fun

%PRIORITIES

priorities of mailings. I find people that send me things with the highest priority telling me about credit cards really don't garder my attention.

@CONTENT_TRANSFER_ENCODINGS


$PROGRAM_CONFIG_FILE_DIR

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. Everytime 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

If you don't change the $PROGRAM_CONFIG_FILE_DIR variable in the Config.pm file, Dada Mail will try to look in your home directory for the .dada_config file. It tries to find your home directory in different places, one is the Environment Variable $ENV{'HOME'} and by called the getpwuid() function as so:

        getpwuid $> )[7]

The rub with these is that you usually can't get anything from the getpwuid() function unless you run the script as same user that created it, ie via suEXEC or by setting the setuid bit.

So, knowing this, the easiest, most suprise-unfriendly way to set the .dada_config file directory location is to *sigh* set it in this here Config.pm module. I'll leave setting the setuid bit for scripts that use the Config.pm file decision up to you.

If you don't set any of the above, Config.pm will use the same directory that it's in as the directory to find the .dada_config file, which I guess ain't the worst way to go about things.

Anyways, 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, whoich leaves out $PROGRAM_ERROR_LOG and @AnyDBM_File::ISA treat .dada_config as a file that gets eval() right into Config.pm cause 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, to setting this to , '2'.


Formatting

Plaintext To HTML Encoding

Dada Mail uses the HTML::FromText 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 Text2HTML module, as described here:

http://search.cpan.org/author/GDR/HTML-FromText-1.005/FromText.pm#SUMMARY_OF_OPTIONS


List Setting Defaults

%LIST_SETUP_DEFAULTS

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 black lists on, and mail being sent using SMTP.

%LIST_SETUP_OVERRIDES

%LIST_SETUP_OVERRIDES will override any setting that's in the %LIST_SETUP_DEFAULTS hash and whatever is set in the list preferences.


MIME Settings

%MIME_TYPES

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 to this.

$DEFAULT_MIME_TYPE

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.

$MIME_PARANOID

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 :)

$MIME_HUSH

set mime_hush to 1 to ``suppress/unsuppress all warnings coming from this module.

$MIME_OPTIMIZE

set to, 'faster', 'less memory', '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


Default Email Messages

$SUBSCRIBED_MESSAGE

This is the default ``subscription successful!'' e-mail message. This message can be customized for each list in the list's Control Panel.

$UNSUBSCRIBED_MESSAGE

This is the default ``unsubscription successful!'' e-mail message. This message can be customized for each list in the list's Control Panel.

$CONFIRMATION_MESSAGE

This is the default ``subscription confirmation'' e-mail message. This message can be customized for each list in the list's Control Panel.

$UNSUB_CONFIRMATION_MESSAGE

This is the default ``subscription confirmation'' e-mail message. This message can be customized for each list in the list's Control Panel.

$MAILlING_LIST_MESSAGE

This is the default ``Mailing List!'' e-mail message. This message can be customized for each list in the list's Control Panel.

$MAILlING_LIST_MESSAGE_HTML

Similar to $MAILlING_LIST_MESSAGE, but used specifically for HTML messages.

$NOT_ALLOWED_TO_POST_MESSAGE

This message is sent to someone who is not allowed to post to your list using the dada_bridge.pl script. If you do not use the dada_bridge.pl script, this won't be of any use to you! This message can be customized for each list in the list's Control Panel.


Default HTML screens

$HTML_CONFIRMATION_MESSAGE

Shown when a request to subscribe is successful.

$HTML_UNSUB_CONFIRMATION_MESSAGE

Shown when a request to unsubscribe is successful.

$HTML_SUBSCRIBED_MESSAGE

Shown when a subscription is successful.

$HTML_UNSUBSCRIBED_MESSAGE

Shown when an unsubscription is successful.

$TEXT_INVITE_MESSAGE

The text version of the list invitation message.

$HTML_INVITE_MESSAGE

The HTML version of the list invitation message.

$SEND_ARCHIVED_MESSAGE

The text version of the message sent when an archived message is sent to a friend.

$HTML_SEND_ARCHIVED_MESSAGE

The HTML version of the message sent when an archived message is sent to a friend.


Additional Settings You'll probably not need to change.

(advanced hacker stuff)

Operating System

Dada Mail tries to guess your Operating System using the $^O variable. If it's guessing wrong, you can set it yourself.

$NULL_DEVICE

$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.

Seed random number generator

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

$FIRST_SUB, $SEC_SUB

Where is the salt number located in the encrypted password? its 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!

$SALT

the salt number, change $SALT to


         $SALT = "mj";

if all else fails.

$PIN_WORD $PIN_NUM

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 e-mail, and a pin thats generated from the email and the variables below using a mathematical equation. Its much harder to guess a pin with these two variables changed:

@AnyDBM_File

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 no 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.

$ATTACHMENT_TEMPFILE

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's 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, 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 magicaly. I suggest 1, unless you want to play around with it.


Variables that don't need changin'

$VER

This is the version of this Dada Mail Program. mostly its 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

$PROGRAM_NAME

This is the name of the program. I guess if this script has a mid-life crisis or something, it can change it's name, buy a really fast car start chasing guys half her age.


SUPPORT

If you need further support for this script, please do not email me directly, but use one of the following channels:


CONTACT

My name is Justin Simoni


COPYRIGHT

Copyright (c) 1999 - 2005 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.


Last Words

To all my Lovers and Lovely's in this year's development of Dada Mail:

Laura, Erin, Stefani, Anne, Elizabeth, Julie, Sandy, Kristi and Sondra; Brandi, Katie T., Cheryl, (HOT!) Natalie, Damaris, Christina, Krissy, Monica and what the heck, Terry.

<3

Plus this goes out to Amy and Josh of Monkey Mania!

And to that cute girl - the different one everyday!

And to those who dance in Denver!

And to whoever else!

And to the letter, ``J''

And to Paul.