 

=pod

=head1 SAMPLE CONFIG FILE

This is a sample config file that you can use for Mojo Mail. 

	=cut
	
	package MOJO::Config; 
	require Exporter;  
	@ISA = qw(Exporter); 
	@EXPORT = qw($VER $MOJO_ROOT_PASSWORD $MAILPROG $FILES $MOJO_URL  $MAIL_SETTINGS $FIRST_SUB $SEC_SUB @C $SALT $FILE_CHMOD $MAKE_ALL_LIST_FILES  $FOOTER $HTML_FOOTER  $DEFAULT_LIST $SUBSCRIBED_MESSAGE $UNSUBSCRIBED_MESSAGE  $CONFIRMATION_MESSAGE  $HTML_CONFIRMATION_MESSAGE 
	$HTML_UNSUB_CONFIRMATION_MESSAGE $HTML_SUBSCRIBED_MESSAGE $HTML_UNSUBSCRIBED_MESSAGE $ARCHIVES  $TEMPLATES $TMP $SUBSCRIPTION_SUCCESSFUL_COPY $MAILlING_LIST_MESSAGE $ADMIN_MENU $NOT_ALLOWED_TO_POST_MESSAGE $PIN_WORD $PIN_NUM @DOMAINS %SERVICES $SHOW_DOMAIN_TABLE $SHOW_SERVICES_TABLE $SHOW_EMAIL_LIST $GOOD_JOB_MESSAGE  $NO_ONE_SUBSCRIBED  $ALLOW_ROOT_LOGIN $SMTP_ADDRESS $SMTP_ERROR_LOG $SMTP_TRUSTING $UNSUB_CONFIRMATION_MESSAGE 
	$DEFAULT_SUBMIT_STYLE %STYLE @CHARSETS @PRECEDENCES @CONTENT_TYPES %LIST_SETUP_DEFAULTS %LIST_SETUP_OVERRIDES @SERVICES $MOJO_SEND_PATH %PRIORITIES $ATTACHMENT_TEMPFILE %MIME_TYPES $DEFAULT_MIME_TYPE $TEXT_INVITE_MESSAGE $HTML_INVITE_MESSAGE $MIME_PARANOID $MIME_HUSH $NPH $MOJO_LOG $ROOT_PASS_IS_ENCRYPTED @ALLOWED_IP_ADDRESSES $SHOW_ADMIN_LINK %LOG $ADMIN_MENU $EMAIL_CASE $LIST_IN_ORDER $ADMIN_TEMPLATE $USER_TEMPLATE $DB_TYPE $MOJO_ERROR_LOG $SHOW_HELP_LINKS $PROGRAM_NAME $FORK_SMTP_BULK_MAILINGS $PLAIN_TEXT_ENCODING);
	
	use strict;  
	use vars qw(@EXPORT  $VER $MOJO_ROOT_PASSWORD $MAILPROG $FILES $MOJO_URL $MAIL_SETTINGS $FIRST_SUB $SEC_SUB @C $SALT $FILE_CHMOD $MAKE_ALL_LIST_FILES  $FOOTER $HTML_FOOTER  $DEFAULT_LIST $SUBSCRIBED_MESSAGE $UNSUBSCRIBED_MESSAGE  $CONFIRMATION_MESSAGE  $HTML_CONFIRMATION_MESSAGE 
	$HTML_UNSUB_CONFIRMATION_MESSAGE $HTML_SUBSCRIBED_MESSAGE $HTML_UNSUBSCRIBED_MESSAGE $ARCHIVES  $TEMPLATES $TMP $SUBSCRIPTION_SUCCESSFUL_COPY $MAILlING_LIST_MESSAGE $ADMIN_MENU $NOT_ALLOWED_TO_POST_MESSAGE $PIN_WORD $PIN_NUM @DOMAINS %SERVICES $SHOW_DOMAIN_TABLE $SHOW_SERVICES_TABLE $SHOW_EMAIL_LIST $GOOD_JOB_MESSAGE  $NO_ONE_SUBSCRIBED  $ALLOW_ROOT_LOGIN $SMTP_ADDRESS $SMTP_ERROR_LOG $SMTP_TRUSTING $UNSUB_CONFIRMATION_MESSAGE 
	$DEFAULT_SUBMIT_STYLE %STYLE  @CHARSETS @PRECEDENCES @CONTENT_TYPES %LIST_SETUP_DEFAULTS %LIST_SETUP_OVERRIDES @SERVICES $MOJO_SEND_PATH %PRIORITIES $ATTACHMENT_TEMPFILE %MIME_TYPES $DEFAULT_MIME_TYPE $TEXT_INVITE_MESSAGE $HTML_INVITE_MESSAGE $MIME_PARANOID $MIME_HUSH $NPH $MOJO_LOG $ROOT_PASS_IS_ENCRYPTED @ALLOWED_IP_ADDRESSES $SHOW_ADMIN_LINK %LOG $ADMIN_MENU $EMAIL_CASE $LIST_IN_ORDER $ADMIN_TEMPLATE $USER_TEMPLATE $DB_TYPE $MOJO_ERROR_LOG $SHOW_HELP_LINKS $PROGRAM_NAME $FORK_SMTP_BULK_MAILINGS $PLAIN_TEXT_ENCODING); 
	
	=cut
	
	$MOJO_ROOT_PASSWORD = 'root_password';
	
	=cut
	
	$FILES     = '/home/home_dir/mojo_lists_dir';
	
	=cut
	
	$MAILPROG = '/usr/lib/sendmail';  
	 
	=cut
	
	$MOJO_URL ='http://yoursite.com/cgi-bin/mojo/mojo.cgi';
	
	=cut
	
	open(CONFIG, "< $ENV{DOCUMENT_ROOT}/mojo_config"); 
	if(-e CONFIG && -f _ && -s _){ 
		my $conf;
		{
			local $/ = undef; 
			$conf = <CONFIG>;    
		 
		}
		eval $conf;
	}
	
	=cut
	
		$DEFAULT_LIST ||= ""; 
	
	
	
	# (take the default list and replace spaces with underscores, 
	# since, when looking for the list, we want to  look for the filename
	# its  saved under)
	$DEFAULT_LIST =~ s/ /_/g; # don't edit this
	
	=cut
	
	$DB_TYPE ||= 'PlainText'; 
	
	=cut
	
	$SHOW_ADMIN_LINK ||= 1;
	
	=cut
	
	$ALLOW_ROOT_LOGIN ||= 1; 
	
	=cut
	
	$ROOT_PASS_IS_ENCRYPTED ||= 0;
	
	=cut
	
	@ALLOWED_IP_ADDRESSES = qw() 
		unless scalar @ALLOWED_IP_ADDRESSES;
	
	=cut
	
	$SMTP_ADDRESS ||= '';
	
	=cut
	
	$SMTP_ERROR_LOG ||= '';
	
	=cut
	
	$SMTP_TRUSTING ||= 1; 
	
	=cut
	
	$FORK_SMTP_BULK_MAILINGS ||= 1;
	
	=cut
	
	$MAIL_SETTINGS ||= "|$MAILPROG -t";
	
	=cut
	
	$NPH ||= 0; 
	
	=cut
	
	$MOJO_LOG ||= '';
	
	=cut
	
	# log subscriptions/unsubscriptions? 
	$LOG{subscriptions} ||= 1; 
	
	# log regular mailings? 
	$LOG{mailings} ||= 0; 
	
	# log mass mailings? 
	$LOG{mass_mailings} ||= 1;
	
	# log control panel login/logouts? 
	$LOG{logins} ||= 1; 
	
	# log new lists created/old lists destroyed?
	$LOG{list_lives} ||= 1;
	
	=item $MOJO_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. 
	
	=cut
	
	BEGIN {
	
	# Type in  the absolute path of the file you want to make as your 
	# error log for Mojo Mail. You'll probably have to create this file
	#  by hand and chmod  it to 777,  example: 
	
	$MOJO_ERROR_LOG = '';
	
	
	# keep this as it is, it's just opening the error file for writing. 
	if($MOJO_ERROR_LOG ne ''){open (STDERR, ">>$MOJO_ERROR_LOG") || warn "Mojo Mail Error: Cannot redirect STDERR, it's possible that Mojo Mail does not have write permissions to this file ($MOJO_ERROR_LOG) or it doesn't exists! If Mojo Mail cannot make this file for you, create it yourself and give it enough permissions so it may write to it: $!";}} 
	
	=back 
	
	=pod
	
	=head2 Templates 							
	
	You can change the look and feel of Mojo globally by specifying a #
	different template file to use, examples of what these templates 
	look like are located in the 'extras' directory. 
	
	=over 
	
	=item $ADMIN_TEMPLATE
	
	Path to the admin template. An example of this is in the 'extras' directory.
	
	=cut
	
	$ADMIN_TEMPLATE ||= ''; 
	
	=pod 
	
	=item $USER_TEMPLATE
	
	Path to the default user template. An example of this is in the 'extras' directory.
	
	=cut
	
	$USER_TEMPLATE  ||= ''; 
	
	=pod
	
	=item $TEMPLATES
	
	templates are b default, saved in the same directory as your lists. To make things cleaner and nice, 
	you can move them into their own directory
	
	=back 
	
	=cut
	
	$TEMPLATES ||= $FILES; 
	
	=pod
	
	=item  $TMP
	
	sort of on the same lins, but not really, you can specify a different directory that Mojo 
	should use for writing temporary files. These files my contain sensitive data, like a copy 
	of an outgoing message, so keep that in mind. 
	
	=cut
	
	$TMP ||= $FILES;
	 
	=pod 
	
	=head2 List Control Panel
	
	=over 
	
	=item $SHOW_HELP_LINKS						
	
	There are links on the bottom of some of the List Control Panel
	screens that go to helpful tutorials on the Mojo Mail support
	site.  If you'd like these messages taken off, set this variable
	to '0'
	
	=cut
	
	$SHOW_HELP_LINKS ||= 1;
	
	=pod 
	
	=item $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.
	
	=cut
	
	$ADMIN_MENU ||= [
	      {-Title           => 'Send A List Message', 
		   -Title_URL       => "$MOJO_URL?flavor=send_email",
		   -Activated       => 1, 
		   -Submenu         => [{-Title     => 'Send a Web Page', 
		  					     -Title_URL  => "$MOJO_URL?flavor=send_url_email",
		  					     -Function   => 'send_url_email',
		  					     -Activated  => 1},
		  					    {-Title     => 'Send a List Invitiation', 
		  					     -Title_URL  =>  "$MOJO_URL?flavor=list_invite",
		  					     -Function   => 'list_invite',
		  					     -Activated  => 1},
		  					  ]
		  }, 
		  {-Title           => 'Manage List', 
		   -Activated       => 1, 
		   -Submenu         => [{-Title      => 'Change List Information', 
		  					     -Title_URL  =>  "$MOJO_URL?flavor=change_info",
		  					     -Function   => 'change_info',
		  					     -Activated  => 1},
		  					    {-Title      => 'Change Your Password', 
		  					     -Title_URL  => "$MOJO_URL?flavor=change_password",
		  					     -Function   => 'change_password',
		  					     -Activated  => 1},
		  					    {-Title      => 'Delete This List', 
		  					     -Title_URL  => "$MOJO_URL?flavor=delete_list",
		  					     -Function   => 'delete_list',
		  					     -Activated  => 1},	  
		  					    {-Title      => 'Mailing List Options', 
		  					     -Title_URL  => "$MOJO_URL?flavor=list_options",
		  					     -Function   => 'list_options',
		  					     -Activated  => 1},	
		  					    {-Title      => 'Sending Options', 
		  					     -Title_URL  => "$MOJO_URL?flavor=sending_options",
		  					     -Function   => 'sending_options',
		  					     -Activated  => 1},	 
		  					    {-Title      => 'Group Options', 
		  					     -Title_URL  => "$MOJO_URL?flavor=mojo_send_options",
		  					     -Function   => 'mojo_send_options',
		  					     -Activated  => 1},	 					     
		  					  ]
		  }, 
	      {-Title           => 'Manage Subscribers', 
		   -Activated       => 1, 
		   -Submenu         => [{-Title     => 'View Subscribers', 
		  					     -Title_URL  =>  "$MOJO_URL?flavor=view_list",
		  					     -Function   => 'view_list',
		  					     -Activated  => 1},
		  					    {-Title     => 'Add Subscribers', 
		  					     -Title_URL  =>  "$MOJO_URL?flavor=add",
		  					     -Function   => 'add',
		  					     -Activated  => 1},
		  					    {-Title     => 'Remove Subscribers', 
		  					     -Title_URL  =>  "$MOJO_URL?flavor=delete_email",
		  					     -Function   => 'delete_email',
		  					     -Activated  => 1},	  	
		  					    {-Title     => 'Search Subscribers', 
		  					     -Title_URL  =>  "$MOJO_URL?flavor=search_email",
		  					     -Function   => 'search_email',
		  					     -Activated  => 1},	 
		  					    {-Title     => 'Black List Rules', 
		  					     -Title_URL  =>  "$MOJO_URL?flavor=black_list",
		  					     -Function   => 'black_list',
		  					     -Activated  => 1},	 	  					     				     
		  					  ]
		  }, 	  
		  {-Title           => 'Manage List Archive', 
		   -Activated       => 1, 
		   -Submenu         => [{-Title     => 'View Archive', 
		  					     -Title_URL  =>  "$MOJO_URL?flavor=view_archive",
		  					     -Function   => 'view_archive',
		  					     -Activated  => 1},
		  					    {-Title     => 'Archive Options', 
		  					     -Title_URL  =>  "$MOJO_URL?flavor=archive_options",
		  					     -Function   => 'archive_options',
		  					     -Activated  => 1},
		  					  ]
		  }, 
	      {-Title           => 'Manage Appearance', 
		   -Activated       => 1, 
		   -Submenu         => [{-Title     => 'Get HTML Code', 
		  					     -Title_URL  =>  "$MOJO_URL?flavor=html_code",
		  					     -Function   => 'html_code',
		  					     -Activated  => 1},
		  					    {-Title     => 'Edit Template', 
		  					     -Title_URL  =>  "$MOJO_URL?flavor=edit_template",
		  					     -Function   => 'edit_template',
		  					     -Activated  => 1},
		  					    {-Title     => 'Create a Back Link', 
		  					     -Title_URL  =>  "$MOJO_URL?flavor=back_link",
		  					     -Function   => 'back_link',
		  					     -Activated  => 1},
		  					    {-Title     => 'E-mail Messages', 
		  					     -Title_URL  =>  "$MOJO_URL?flavor=edit_type",
		  					     -Function   => 'edit_type',
		  					     -Activated  => 1},
		  					    {-Title     => 'HTML Messages', 
		  					     -Title_URL  =>  "$MOJO_URL?flavor=edit_html_type",
		  					     -Function   => 'edit_html_type',
		  					     -Activated  => 1}, 	  					     
		  					  ]
		  },
	      {-Title           => 'About Mojo Mail', 
		   -Title_URL       => "$MOJO_URL?flavor=manage_script",
		   -Function        => 'manage_script',
		   -Activated       => 1, 
		  },
	      {-Title           => 'Logout', 
		   -Title_URL       => "$MOJO_URL?flavor=logout",
		   -Function        => 'logout',
		   -Activated       => 1, 
		  },
	      {-Title           => 'Sign Into Another List', 
		   -Title_URL       => "$MOJO_URL?flavor=sign_in",
		   -Function        => 'sign_in',
		   -Activated       => 1, 
		  },
		  {-Title           => 'Customize Feature Set', 
		   -Title_URL       => "$MOJO_URL?flavor=feature_set",
		   -Function        => 'feature_set',
		   -Activated       => 0, 
		  },
		  
	]; 
	
	
	=pod
	
	=item $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'
	
	=cut
	
	$SHOW_EMAIL_LIST ||= 1;
	
	=pod
	
	To turn it on again, change this variable to 1
	
	=item $EMAIL_CASE
	
	$EMAIL_CASE configures mojo 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.
	
	=cut
	
	$EMAIL_CASE ||= 'lc_all'; 
	
	=pod
	
	=item $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.
	
	=cut
	
	$LIST_IN_ORDER ||= 0; 
	
	=pod
	
	=item $SHOW_DOMAIN_TABLE
	
	This variable tells Mojo 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
	
	=cut
	
	$SHOW_DOMAIN_TABLE ||= 1; 
	
	=pod
	
	=item  @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. 
	
	=cut
	
	@DOMAINS = qw(
	biz
	com
	info
	net
	org
	edu
	gov
	mil
	nu
	) unless scalar @DOMAINS;
	
	=pod 
	
	=item $SHOW_SERVICES_TABLE 
	
	This variable tells Mojo 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. 
	
	=cut
	
	$SHOW_SERVICES_TABLE ||= 1; 
	
	=item %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!
	
	=cut
	
	%SERVICES = ( 
	'AOL'           => 'aol.com',
	'Compuserve'    => 'compuserve.com', 
	'Excite Mail'   => 'excite.com', 
	'Hotmail'       => 'hotmail.com',
	'MSN'           => 'msn.com',
	'Prodigy'       => 'progidy.net',
	'Yahoo!'        => 'yahoo.com',
	) unless keys %SERVICES; 
	
	# keep a list as a shorthand. 
	@SERVICES = values %SERVICES; 
	
	=item Artsy Buttons
	
	these are buttons styles, if you find yourself well read in CSS,
	go ahead and fool around with em,
	
	=cut
	
	#default (brown)  
	$STYLE{default_submit} ||= 'font-size: 12px; font-family:arial,verdana, sans-serif; background-color: #CC9966; color: #000000; font-weight:bold;border-style:groove';
	$STYLE{green_submit}   ||= 'font-size: 12px; font-family:arial,verdana, sans-serif; background-color: #99CC99; color: #000000; font-weight:bold; border-style:groove';
	$STYLE{red_submit}     ||= 'font-size: 12px; font-family:arial,verdana, sans-serif; background-color: #FF6666; color: #000000; font-weight:bold; border-style:groove';
	$STYLE{yellow_submit}  ||= 'font-size: 12px; font-family:arial,verdana, sans-serif; background-color: #FFFFCC; color: #000000; font-weight:bold;border-style:groove';
	
	=pod
	
	=back 
	
	=head2 $FILE_CHMOD
	
	$FILE_CHMOD is a variable that sets what permission Mojo 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
	
	=cut
	
	$FILE_CHMOD ||= 0666;
	
	=pod
	
	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 alist under
	a different $FILE_CHMOD.
	
	We've changed what the $FILE_CHMOD Mojo 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.    
	
	=cut
	
	
	=pod
	
	=head2 Email Messagess and Headers
	
	=item  @CHARSETS
	
	Charsets that Mojo 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. 
	
	=cut
	
	
	@CHARSETS = ( 
	'Afrikaans (af)	 iso-8859-1','Afrikaans (af)	windows-1252','Albanian (sq)	 iso-8859-1',
	'Albanian (sq)	 windows-1252','Arabic (ar)	iso-8859-6','Basque (eu)	iso-8859-1',
	'Basque (eu)	windows-1252','Bulgarian (bg)	 iso-8859-5','Byelorussian (be)	 iso-8859-5',
	'Catalan (ca)	iso-8859-1','Catalan (ca)	windows-1252','Croatian (hr)	 iso-8859-2',
	'Czech (cs)	 iso-8859-2','Danish (da)	iso-8859-1','Danish (da)	windows-1252',
	'Dutch (nl)	 iso-8859-1','Dutch (nl)	 windows-1252','English (en)	iso-8859-1',
	'English (en)	windows-1252','Esperanto (eo)	 iso-8859-3','Estonian (et)	 iso-8859-15',
	'Faroese (fo)	iso-8859-1','Faroese (fo)	windows-1252','Finnish (fi)	iso-8859-1',
	'Finnish (fi)	windows-1252','French (fr)	iso-8859-1','French (fr)	windows-1252',
	'Galician (gl)	 iso-8859-1','Galician (gl)	 windows-1252','German (de)	iso-8859-1',
	'German (de)	windows-1252','Greek (el)	 iso-8859-7','Hebrew (iw)	iso-8859-8',
	'Hungarian (hu)	 iso-8859-2','Icelandic (is)	 iso-8859-1','Icelandic (is)	 windows-1252',
	'Inuit (Eskimo)	 iso-8859-10','Irish (ga)	 iso-8859-1','Irish (ga)	 windows-1252',
	'Italian (it)	iso-8859-1','Italian (it)	windows-1252','Japanese (ja)	 shift_jis',
	'Japanese (ja)	 iso-2022-jp','Japanese (ja)	 euc-jp','Lapp()	iso-8859-10',
	'Latvian (lv)	iso-8859-13','Latvian (lv)	windows-1257','Lithuanian (lt)	iso-8859-13',
	'Lithuanian (lt)	windows-1257','Macedonian (mk)	iso-8859-5','Maltese (mt)	iso-8859-3',
	'Norwegian (no)	 iso-8859-1','Norwegian (no)	 windows-1252','Polish (pl)	iso-8859-2',
	'Portuguese (pt)	iso-8859-1','Portuguese (pt)	windows-1252','Romanian (ro)	 iso-8859-2',
	'Russian (ru)	koi-8-r','Russian (ru)	iso-8859-5','Scottish (gd)	 iso-8859-1',
	'Scottish (gd)	 windows-1252','Serbian (sr)	iso-8859-5','Slovak (sk)	iso-8859-2',
	'Slovenian (sl)	 iso-8859-2','Spanish (es)	iso-8859-1','Spanish (es)	windows-1252',
	'Swedish (sv)	iso-8859-1','Swedish (sv)	windows-1252','Turkish (tr)	iso-8859-9',
	'Turkish (tr)	windows-1254','Ukrainian (uk)	 iso-8859-5'
	) unless scalar @CHARSETS;
	
	
	=pod
	
	=item @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. 
	
	=cut
	
	@PRECEDENCES = qw(
	list
	bulk
	junk
	) unless scalar @PRECEDENCES; 
	
	=pod
	
	=item @Content_type
	
	These are the default content-types, add your own,  have fun
	
	=cut
	
	@CONTENT_TYPES = qw(
	text/plain
	text/html
	) unless scalar @CONTENT_TYPES; 
	
	=pod
	
	=item %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. 
	
	=cut
	
	%PRIORITIES = ( 
	 5 => 'lowest',
	 4 => 'low',
	 3 => 'normal', 
	 2 => 'high',
	 1 => 'highest',
	) unless keys %PRIORITIES;
	
	
	=pod 
	
	=item $PLAIN_TEXT_ENCODING
	
	Sets how plain text messages are encoded, different things you can set this to: 
	
	7bit, 8bit, quoted-printable, base64  
	
	=cut                
	
	$PLAIN_TEXT_ENCODING ||= '8bit'; 
	
	
	=pod
	
	=head2 Additional Settings You'll probably not need to change. 
	
	(advanced hacker stuff)
	
	=item 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                                               
	
	=cut
	
	srand ( time() ^ ($$ + ($$ << 15)) );  
	
	=pod
	
	=item $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 sytems 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!
	
	=cut
	
	$FIRST_SUB ||= 0;
	$SEC_SUB   ||= 2;
	
	
	=pod
	
	=item $SALT
	
	the salt number, change $SALT to
	 
		 $SALT = "mj";
	
	if all else fails. 
	
	=cut
	
	@C=('a'..'z', 'A'..'Z', '0'..'9','.','/');
	$SALT=$C[rand(@C)].$C[rand(@C)];
	
	=pod
	
	=item $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:
	
	=cut
	
	# Pick a word. it really doesn't matter what the word is, a longer 
	# word doesn't necessarily mean a better pin number 
	# $PIN_WORD = "mojo"; 
	
	# Pick a number. I would keep it between 1 and 9. 
	$PIN_NUM   ||= "3";
	
	=pod
	
	=item $MAKE_ALL_LIST_FILES
	
	When making new lists, make each file Mojo Mail needs 
	Change this to "0" if, for some reason you don't want this done. 
	
	=cut
	
	$MAKE_ALL_LIST_FILES ||= 1; 
	
	=pod
	
	=item %LIST_SETUP_DEFAULTS
	
	These defaults will be used when CREATING a new list, it will not 
	affect lists already created.  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. 
	
	=cut
	
	%LIST_SETUP_DEFAULTS = (
		
		# smtp sending thingies
		use_pop_before_smtp          => 1,
		smtp_server                  => $SMTP_ADDRESS,
		
		# email headers
		precedence                   => 'list', 
		charset                      => 'English (en)	iso-8859-1',
		content_type                 => 'text/plain',
		priority                     => 3,
		
		# archive prefs
		archive_show_month           => 1,
		archive_show_day             => 1,
		archive_show_year            => 1,
		archive_index_count          => 10,
		
		# group prefs
		add_reply_to                 => 1,
		mail_group_message_to_poster => 1,
		
	) unless keys %LIST_SETUP_DEFAULTS;
	
	=pod
	
	=item %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. 
	
	=cut
	
	%LIST_SETUP_OVERRIDES = () unless keys %LIST_SETUP_OVERRIDES;
	
	
	
	=pod
	
	=item @AnyDBM_File
	
	Change what DB Mojo Mail will use. 
	Mojo 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
	
	=cut
	
	BEGIN { @AnyDBM_File::ISA = qw(DB_File GDBM_File NDBM_File ODBM_File SDBM_File) }
	
	=pod
	
	check the AnyDBM_File for more info (yo)
	
	
	=item $ATTACHMENT_TEMPFILE
	
	To add an attachment to a list message in Mojo 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. 
	
	=cut
	
	$ATTACHMENT_TEMPFILE ||= 1;
	
	=item %MIME_TYPES
	
	These are the MIME types Mojo 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. 
	
	=cut
	
	%MIME_TYPES = ( 
	'.gif'  => 'images/gif', 
	'.jpg'  => 'image/jpg',
	'.png'  => 'image/png',
	'.jpeg' => 'image/jpeg',
	'.pdf'  => 'application/pdf',
	'.psd'  => 'application/psd',
	'.html' => 'text/html',
	'.txt'  => 'text/plain',
	) unless keys %MIME_TYPES;
	
	
	=pod
	
	=item $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. 
	
	=cut
	
	$DEFAULT_MIME_TYPE ||= 'text/plain'; 
	
	=pod
	
	=item $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 :) 
	
	=cut
	
	$MIME_PARANOID ||= 1;
	
	=pod
	
	=item $MIME_HUSH
	
	set mime_hush to 1 to "suppress/unsuppress all warnings
	coming from this module.			
	
	=cut
	
	$MIME_HUSH ||= 1;
	
	######################################################################
	# Variables you DON'T have to change. 
	######################################################################
	=pod
	
	=item  $VER
	
	This is the version of this  Mojo 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
	
	=cut
	
	$VER ||= "2.6 beta 03/22/02";
	
	
	
	# If your having problems with Mojo Mail PLEASE tell me what the version 
	# of it is, Each new version of Mojo Mail is SOOOO different from each 
	# other, If I put two different releases together, I'd have Mojo 4.0 by
	# now.
	######################################################################
	
	=pod
	
	=item $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. 
	
	=cut
	
	$PROGRAM_NAME ||= 'Mojo Mail';
	
	
	######################################################################
	# This is the default "subscription successful!" e-mail message. 
	# This message can be customized for each list in the list's Control Panel.
	$SUBSCRIBED_MESSAGE  ||= <<EOF 
	
	Hello! Thanks for subscribing. 
	Here's information  about [list_name] 
	that was given by the list owner:
	
	[list_info]
	
	Private Policy:
	[list_privacy_policy]
	
	
	You might want to save this email for future reference. 
	You can unsubscribe anytime from [list_name] by following this link:
	
	[list_unsubscribe_link]
	
	
	If you have questions regarding this mailing list,
	you can contact the list owner at: 
	[list_owner_email]
	
	
	EOF
	; 
	
	
	######################################################################
	# This is the default "unsubscription successful!" e-mail message. 
	# This message can be customized for each list in the list's Control Panel.
	$UNSUBSCRIBED_MESSAGE  ||= <<EOF  
	
	Unsubscription from list: 
	
	[list_name] 
	
	is successful.
	
	If you would like to subscribe to [list_name] 
	in the future, just click this link: 
	
	[list_subscribe_link]
	
	- [list_owner_email]
	
	EOF
	; 
	
	
	
	
	
	######################################################################
	# This is the default "subscription confirmation" e-mail message. 
	# This message can be customized for each list in the list's Control Panel.
	
	
	$CONFIRMATION_MESSAGE ||= <<EOF   
	
	Hello, 
	This has been sent to you just to confirm that you 
	want to be subscribe to:
	 
	[list_name]
	
	to confirm, simply  follow the link below:
	
	[list_subscribe_link]
	
	(Click the link above or copy and paste the link into your browser)
	
	You are sent this email for a couple of reasons:
	We wanted  to make sure that the e-mail submitted is a real e-mail address
	and also wanted to prevent people from subscribing to the list with 
	an e-mail address other then their own. 
	
	If for some reason, you received this e-mail without 
	any idea why you did, simply ignore and sorry for the
	inconvenience. 
	
	- [list_owner_email]
	
	
	EOF
	; 
	
	
	
	
	######################################################################
	# 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 ||= <<EOF   
	
	Hello, 
	This has been sent to you just to confirm that you 
	want to be unsubscribed from:
	 
	[list_name]
	
	to unsubscribe, simply  follow the link below:
	
	[list_unsubscribe_link]
	
	(Click the link above or copy and paste the link into your browser)
	
	You were sent this email for a couple of reasons:
	We wanted  to make sure that the e-mail submitted is a real e-mail address
	and also wanted to prevent people from unsubscribing from the list with 
	an e-mail address other then their own. 
	
	If for some reason, you received this e-mail without 
	any idea why you did, simply ignore it. We are sorry for the
	inconvenience. 
	
	- [list_owner_email]
	
	
	EOF
	; 
	
	
	
	
	######################################################################
	# 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 ||= <<EOF  
	[message_body]
	
	
	--
	To unsubscribe from: [list_name], just follow this link:
	
	[list_unsubscribe_link]
	
	Click the link, or copy and paste the address into your browser.
	
	EOF
	; 
	
	######################################################################
	# This message is sent to someone who is not allowed to post to your list using the 
	# mojo_send.pl script. If you do not use the mojo_send.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.
	$NOT_ALLOWED_TO_POST_MESSAGE ||= <<EOF  
	
	Mojo Mail  Error: 
	Your Not Allowed to send messages to this list. 
	
	-Mojo Mail
	
	
	EOF
	; 
	
	
	
	$HTML_CONFIRMATION_MESSAGE ||= <<EOF
	
	<h3>Please confirm your subscription</h3>  
	
	
	<p>An email has been sent to your address: [subscriber_email]  to confirm your subscription to [list_name]</p>
	
	
	<P>Please follow the instructions in the confirmation email to finish the subscription process. 
	
	
	<p>This is to protect people's private email addresses and to stop any abuse to the list that might happen.</p>
	
	
	<p>If you have any questions, you can email the list owner owner at <a href=mailto:[list_owner_email]>[list_owner_email]</a></p>
	
	EOF
	; 
	
	
	$HTML_UNSUB_CONFIRMATION_MESSAGE ||= <<EOF
	
	<h3>Please confirm your unsubscription</h3>  
	
	
	<p>An email has been sent to your address: [subscriber_email]  to confirm your unsubscription to [list_name]</p>
	
	
	<P>Please follow the instructions in the confirmation email to finish the unsubscription process. 
	
	
	<p>This is to protect people's private email addresses and to stop any abuse to the list that might happen.</p>
	
	
	<p>If you have any questions, you can email the list owner owner at <a href=mailto:[list_owner_email]>[list_owner_email]</a></p>
	
	EOF
	; 
	
	
	$HTML_SUBSCRIBED_MESSAGE ||= <<EOF 
	
	<h3>You have been added to the list: [list_name]</h3>
	
	
	<p>Your e-mail address, [subscriber_email] has been subscribed to [list_name]</p>
	
	
	<p>A notification e-mail has been sent to your address: [subscriber_email]
	
	
	 with a brief summary of the list and instructions on how to unsubscribe.</p>
	
	
	EOF
	; 
	
	
	$HTML_UNSUBSCRIBED_MESSAGE ||= <<EOF  
	<h3>You have been unsubscribed from the list: [list_name]</h3>
	
	<p>[subscriber_email] is no longer a part of [list_name]. Thanks for subscribing.</p> 
	
	
	EOF
	;
	
	
	$TEXT_INVITE_MESSAGE ||= <<EOF  
	
	Hello! 
	
	I wanted to tell you about my email list, [list_name]: 
	
	[list_info] 
	
	I thought you might be interested in subscribing to it. If you 
	want to, just click this link: 
	
	[plain_list_subscribe_link] 
	
	This is a one-time mailing, you won't hear from us again, unless you 
	 subscribe. 
	
	- [list_owner_email]
	
	EOF
	;
	
	$HTML_INVITE_MESSAGE ||= <<EOF  
	
	<p><b>Hello!</b></p> 
	
	<p>I wanted to tell you about my email list, [list_name]:</p> 
	
	<blockquote> 
	
	<p>[list_info]</p>
	
	</blockquote> 
	
	<p>I thought you might be interested in subscribing to it. If you 
	want to, just click <b><a href="[plain_list_subscribe_link]" target=out>here</a></b></p> 
	 
	
	<p>This is a one-time mailing, you won't hear from us again, unless you 
	 subscribe.</p> 
	
	<p>- <a href='mailto:[list_owner_email]'>[list_owner_email]</a></p>
	
	EOF
	;
	
	
	
	
	
	
	# Good Job! 
	$GOOD_JOB_MESSAGE ||= "<p class=smallred><i>Your changes have been saved successfully</i></p>\n"; 
	
	# No ones subscribed? 
	$NO_ONE_SUBSCRIBED ||= "<p>No one is subscribed to your list at the moment</P>"; 
	
	######################################################################
	$ARCHIVES  ||= $FILES; 
	
	
	######################################################################
	
	######################################################################
	# Ah, Here is where I pass tip jar around. I've sung song, played 
	# instrument and I ask if you enjoy the performance, that you put a few 
	# in the bowl. Giving $50 to the Mojo Mail Project would be simply 
	# wonderful. In fact, If you do, It would be pleasure to allow you to 
	# make these two variables (below) blank. You can use the program indefinetly 
	# without sending any donations, I only ask that if you found this program 
	# AMAZING (and I believe you will) that you help out with the expenses 
	# of the web site, the online documentation, the free support and 
	# whatever else we provide. Like I said, I'm asking, not telling, you can 
	# either keep these variables like this, or remove them and donate some
	# money, either way, you'll be supporting the program. 
	#
	#
	# Donations, etc can be sent to: 
	#        
	#                      Justin Simoni 
	#                       PO BOX 369
	#                     Boulder, COLORADO
	#                          80306 
	#
	#
	# Tell me if you like the program! I'll post testimonials on the Mojo 
	# Mail Website. What I /really/ hope you get through this program is 
	# an amazing tool to allow you to communicate-  your ideas, dreams, 
	# hard work and struggle. *That* is why I made this program. 
	#
	#                     -Justin Simoni
	#                            http://skazat.com 
	#                                  justin@skazat.com
	 
	#this footer gets appended to most e-mails sent using Mojo Mail  
	$FOOTER ||= "\n\nList management using Mojo Mail $VER\n";
	#this footer gets appended to most HTML e-mails sent with Mojo Mail
	$HTML_FOOTER ||=  "\n\n<p style='font-size:10px;font-family:verdana,arial'>List management using <a href= http://mojo.skazat.com target=out style='font-size:10px;font-family:verdana,arial'>Mojo Mail $VER</a></p>\n";
	  
	
	
	
	
	# Don't remove the '1', it lives here at the bottom. it likes it there.
	1;
	
	=head1 CONTACT
	
	My name is Justin Simoni 
	
	e.  - me@justinsimoni
	ph. - 720.4367701
	w.  - http://justinsimoni.com
	
	I am available for Installation, Customization and Consultation of the 
	Mojo Mail program. I am also available for contract work, web design, 
	Fine and Commercial Art. 
	
	Please, get in touch.
	
	=head1 COPYRIGHT 
	
	Copyright (c) 1999 - 2002 Justin Simoni (justin@skazat.com) http://skazat.com 
	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.
	
	
	=cut
	
	# Here's to the future, eh? Let the future come soon and stay long. I am ready . . . 
; 

=cut


