if ( !$sendmail_path ) {
$sendmail_path = "/usr/sbin/sendmail";
}
+if ( !$pop_before_smtp ) {
+ $pop_before_smtp = "false";
+}
if ( !$default_unseen_notify ) {
$default_unseen_notify = 2;
}
if ( !$edit_name ) {
$edit_name = "true";
}
+if ( !$allow_thread_sort ) {
+ $allow_thread_sort = 'false';
+}
+if ( !$allow_server_sort ) {
+ $allow_server_sort = 'false';
+}
+if ( !$allow_charset_search ) {
+ $allow_charset_search = 'true';
+}
if ( !$prefs_user_field ) {
$prefs_user_field = 'user';
}
print "6. SMTP Server : $WHT$smtpServerAddress$NRM\n";
print "7. SMTP Port : $WHT$smtpPort$NRM\n";
print "8. Authenticated SMTP : $WHT$use_authenticated_smtp$NRM\n";
+ print "9. POP Before SMTP : $WHT$pop_before_smtp$NRM\n";
}
- print "9. Server : $WHT$imap_server_type$NRM\n";
- print "10. Invert Time : $WHT$invert_time$NRM\n";
- print "11. Delimiter : $WHT$optional_delimiter$NRM\n";
+ print "10. Server : $WHT$imap_server_type$NRM\n";
+ print "11. Invert Time : $WHT$invert_time$NRM\n";
+ print "12. Delimiter : $WHT$optional_delimiter$NRM\n";
print "\n";
print "R Return to Main Menu\n";
} elsif ( $menu == 3 ) {
print "8. Hide SM attributions : $WHT$hide_sm_attributions$NRM\n";
print "9. Allow use of receipts : $WHT$default_use_mdn$NRM\n";
print "10. Allow editing of identity : $WHT$edit_identity$NRM\n";
-
+ print "11. Allow server thread sort : $WHT$allow_thread_sort$NRM\n";
+ print "12. Allow server-side sorting : $WHT$allow_server_sort$NRM\n";
if ( lc($edit_identity) eq "false" ) {
- print "11. Allow editing of name : $WHT$edit_name$NRM\n";
+ print "13. Allow editing of name : $WHT$edit_name$NRM\n";
}
+ print "14. Allow server charset search : $WHT$allow_charset_search$NRM\n";
print "\n";
print "R Return to Main Menu\n";
} elsif ( $menu == 5 ) {
print "6. Field for prefs key : $WHT$prefs_key_field$NRM\n";
print "7. Field for prefs value : $WHT$prefs_val_field$NRM\n";
print "\n";
- print "S Save data\n";
print "R Return to Main Menu\n";
}
if ( $config_use_color == 1 ) {
elsif ( $command == 6 ) { $smtpServerAddress = command16(); }
elsif ( $command == 7 ) { $smtpPort = command17(); }
elsif ( $command == 8 ) { $use_authenticated_smtp = command18(); }
- elsif ( $command == 9 ) { $imap_server_type = command19(); }
- elsif ( $command == 10 ) { $invert_time = command110(); }
- elsif ( $command == 11 ) { $optional_delimiter = command111(); }
+ elsif ( $command == 9 ) { $pop_before_smtp = command18a(); }
+ elsif ( $command == 10 ) { $imap_server_type = command19(); }
+ elsif ( $command == 11 ) { $invert_time = command110(); }
+ elsif ( $command == 12 ) { $optional_delimiter = command111(); }
} elsif ( $menu == 3 ) {
if ( $command == 1 ) { $default_folder_prefix = command21(); }
elsif ( $command == 2 ) { $show_prefix_option = command22(); }
elsif ( $command == 8 ) { $hide_sm_attributions = command38(); }
elsif ( $command == 9 ) { $default_use_mdn = command39(); }
elsif ( $command == 10 ) { $edit_identity = command310(); }
- elsif ( $command == 11 ) { $edit_name = command311(); }
+ elsif ( $command == 11 ) { $allow_thread_sort = command312(); }
+ elsif ( $command == 12 ) { $allow_server_sort = command313(); }
+ elsif ( $command == 13 ) { $edit_name = command311(); }
+ elsif ( $command == 14 ) { $allow_charset_search = command314(); }
} elsif ( $menu == 5 ) {
if ( $command == 1 ) { command41(); }
elsif ( $command == 2 ) { $theme_css = command42(); }
$new_org_name = $org_name;
} else {
$new_org_name =~ s/[\r|\n]//g;
+ $new_org_name =~ s/\"/"/g;
}
return $new_org_name;
}
if ( $new_org_logo_width eq '' ) {
$new_org_logo_width = $org_logo_width;
}
- print "Height: [$WHT$org_logo_height$NRM]: $WHT";
- $new_org_logo_height = <STDIN>;
- $new_org_logo_height =~ tr/0-9//cd; # only want digits!
- unless ( $new_org_logo_height > 0 ) {
- $new_org_logo_height = $org_logo_height;
+ if ( $new_org_logo_width > 0 ) {
+ print "Height: [$WHT$org_logo_height$NRM]: $WHT";
+ $new_org_logo_height = <STDIN>;
+ $new_org_logo_height =~ tr/0-9//cd; # only want digits!
+ if( $new_org_logo_height eq '' ) {
+ $new_org_logo_height = $org_logo_height;
+ }
+ } else {
+ $new_org_logo_height = 0;
}
return ($new_org_logo_width, $new_org_logo_height);
}
$new_org_title = $org_title;
} else {
$new_org_title =~ s/[\r|\n]//g;
+ $new_org_title =~ s/\"/\'/g;
}
return $new_org_title;
}
sub command5 {
print "SquirrelMail attempts to set the language in many ways. If it\n";
print "can not figure it out in another way, it will default to this\n";
- print "language. Please use the two-letter code for the desired language.\n";
+ print "language. Please use the code for the desired language.\n";
print "\n";
print "[$WHT$squirrelmail_default_language$NRM]: $WHT";
$new_signout_page = <STDIN>;
# domain
sub command11 {
- print "The domain name is the suffix at the end of all email messages. If\n";
+ print "The domain name is the suffix at the end of all email addresses. If\n";
print "for example, your email address is jdoe\@myorg.com, then your domain\n";
print "would be myorg.com.\n";
print "\n";
return $use_authenticated_smtp;
}
+# pop before SMTP
+sub command18a {
+ print "Do you wish to use POP3 before SMTP? Your server must\n";
+ print "support this in order for SquirrelMail to work with it.\n";
+
+ $YesNo = 'n';
+ $YesNo = 'y' if ( lc($pop_before_smtp) eq "true" );
+
+ print "Use pop before SMTP (y/n) [$WHT$YesNo$NRM]: $WHT";
+
+ $new_pop_before_smtp = <STDIN>;
+ $new_pop_before_smtp =~ tr/yn//cd;
+ return "true" if ( $new_pop_before_smtp eq "y" );
+ return "false" if ( $new_pop_before_smtp eq "n" );
+ return $pop_before_smtp;
+}
+
# imap_server_type
sub command19 {
print "Each IMAP server has its own quirks. As much as we tried to stick\n";
print " uw = University of Washington's IMAP server\n";
print " exchange = Microsoft Exchange IMAP server\n";
print " courier = Courier IMAP server\n";
+ print " macosx = Mac OS X Mailserver\n";
print " other = Not one of the above servers\n";
print "[$WHT$imap_server_type$NRM]: $WHT";
$new_imap_server_type = <STDIN>;
$line =~ s/ /\ \ /g;
$line =~ s/\t/\ \ \ \ /g;
$line =~ s/$/ /;
- $line =~ s/\'/\\\'/g;
+ $line =~ s/\"/"/g;
$new_motd = $new_motd . $line;
}
# sanitize the plugin
$dir = $unused_plugins[$ct];
- `./ri_once.pl ../plugins/$dir`;
+ if (-d "../plugins/$dir") {
+ `./ri_once.pl ../plugins/$dir`;
+ } else {
+ print "Could not locate ../plugins/$dir\n" ;
+ print "The plugin $dir could *not* be sanitized!\n" ;
+ print "If you want to try to do this manually, please run\n" ;
+ print "config/ri_once.pl with the full path to the $dir plugin.\n" ;
+ }
}
$ct++;
}
if ( $new_default_folder_prefix eq "\n" ) {
$new_default_folder_prefix = $default_folder_prefix;
} else {
- $new_default_folder_prefix =~ s/[\r|\n]//g;
+ $new_default_folder_prefix =~ s/[\r\n]//g;
}
- if ( ( $new_default_folder_prefix =~ /^\s*$/ ) || ( $new_default_folder_prefix =~ /none/i ) ) {
+ if ( ( $new_default_folder_prefix =~ /^\s*$/ ) || ( $new_default_folder_prefix =~ m/^none$/i ) ) {
$new_default_folder_prefix = "";
} else {
- $new_default_folder_prefix =~ s/\/*$//g;
- $new_default_folder_prefix =~ s/$/\//g;
+ # add the trailing delimiter only if we know what the server is.
+ if (($imap_server_type eq 'cyrus' and
+ $optional_delimiter eq 'detect') or
+ ($imap_server_type eq 'courier' and
+ $optional_delimiter eq 'detect')) {
+ $new_default_folder_prefix =~ s/\.*$/\./;
+ } elsif ($imap_server_type eq 'uw' and
+ $optional_delimiter eq 'detect') {
+ $new_default_folder_prefix =~ s/\/*$/\//;
+ }
}
return $new_default_folder_prefix;
}
return $edit_name;
}
+sub command312 {
+ print "This option allows you to choose if users can use thread sorting\n";
+ print "Your IMAP server must support the THREAD command for this to work\n";
+ print "PHP versions later than 4.0.3 recommended\n";
+ print "\n";
+
+ if ( lc($allow_thread_sort) eq "true" ) {
+ $default_value = "y";
+ } else {
+ $default_value = "n";
+ }
+ print "Allow server side thread sorting? (y/n) [$WHT$default_value$NRM]: $WHT";
+ $allow_thread_sort = <STDIN>;
+ if ( ( $allow_thread_sort =~ /^y\n/i ) || ( ( $allow_thread_sort =~ /^\n/ ) && ( $default_value eq "y" ) ) ) {
+ $allow_thread_sort = "true";
+ } else {
+ $allow_thread_sort = "false";
+ }
+ return $allow_thread_sort;
+}
+
+sub command313 {
+ print "This option allows you to choose if SM uses server-side sorting\n";
+ print "Your IMAP server must support the SORT command for this to work\n";
+ print "\n";
+
+ if ( lc($allow_server_sort) eq "true" ) {
+ $default_value = "y";
+ } else {
+ $default_value = "n";
+ }
+ print "Allow server-side sorting? (y/n) [$WHT$default_value$NRM]: $WHT";
+ $allow_server_sort = <STDIN>;
+ if ( ( $allow_server_sort =~ /^y\n/i ) || ( ( $allow_server_sort =~ /^\n/ ) && ( $default_value eq "y" ) ) ) {
+ $allow_server_sort = "true";
+ } else {
+ $allow_server_sort = "false";
+ }
+ return $allow_server_sort;
+}
+
+sub command314 {
+ print "This option allows you to choose if SM uses charset search\n";
+ print "Your IMAP server must support the SEARCH CHARSET command for this to work\n";
+ print "\n";
+
+ if ( lc($allow_charset_search) eq "true" ) {
+ $default_value = "y";
+ } else {
+ $default_value = "n";
+ }
+ print "Allow charset searching? (y/n) [$WHT$default_value$NRM]: $WHT";
+ $allow_charset_search = <STDIN>;
+ if ( ( $allow_charset_search =~ /^y\n/i ) || ( ( $allow_charset_search =~ /^\n/ ) && ( $default_value eq "y" ) ) ) {
+ $allow_charset_search = "true";
+ } else {
+ $allow_charset_search = "false";
+ }
+ return $allow_charset_search;
+}
+
+
sub command41 {
print "\nNow we will define the themes that you wish to use. If you have added\n";
print "a theme of your own, just follow the instructions (?) about how to add\n";
if ($print_config_version) {
print CF "\$config_version = '$print_config_version';\n";
}
+ # integer
print CF "\$config_use_color = $config_use_color;\n";
print CF "\n";
-
+
+ # string
print CF "\$org_name = \"$org_name\";\n";
- print CF "\$org_logo = '$org_logo';\n";
+ # string
+ print CF "\$org_logo = '$org_logo';\n";
$org_logo_width |= 0;
$org_logo_height |= 0;
- print CF "\$org_logo_width = $org_logo_width;\n";
- print CF "\$org_logo_height = $org_logo_height;\n";
+ # string
+ print CF "\$org_logo_width = '$org_logo_width';\n";
+ # string
+ print CF "\$org_logo_height = '$org_logo_height';\n";
+ # string that can contain variables.
print CF "\$org_title = \"$org_title\";\n";
+ # string
print CF "\$signout_page = '$signout_page';\n";
+ # string
print CF "\$frame_top = '$frame_top';\n";
print CF "\n";
- print CF "\$motd = '$motd';\n";
+ # string that can contain variables
+ print CF "\$motd = \"$motd\";\n";
print CF "\n";
-
+
+ # string
print CF "\$squirrelmail_default_language = '$squirrelmail_default_language';\n";
print CF "\n";
+ # string
print CF "\$domain = '$domain';\n";
+ # string
print CF "\$imapServerAddress = '$imapServerAddress';\n";
+ # integer
print CF "\$imapPort = $imapPort;\n";
+ # boolean
print CF "\$useSendmail = $useSendmail;\n";
+ # string
print CF "\$smtpServerAddress = '$smtpServerAddress';\n";
+ # integer
print CF "\$smtpPort = $smtpPort;\n";
+ # string
print CF "\$sendmail_path = '$sendmail_path';\n";
+ # boolean
print CF "\$use_authenticated_smtp = $use_authenticated_smtp;\n";
+ # boolean
+ print CF "\$pop_before_smtp = $pop_before_smtp;\n";
+ # string
print CF "\$imap_server_type = '$imap_server_type';\n";
+ # boolean
print CF "\$invert_time = $invert_time;\n";
+ # string
print CF "\$optional_delimiter = '$optional_delimiter';\n";
print CF "\n";
+ # string
print CF "\$default_folder_prefix = '$default_folder_prefix';\n";
+ # string
print CF "\$trash_folder = '$trash_folder';\n";
+ # string
print CF "\$sent_folder = '$sent_folder';\n";
+ # string
print CF "\$draft_folder = '$draft_folder';\n";
+ # boolean
print CF "\$default_move_to_trash = $default_move_to_trash;\n";
+ # boolean
print CF "\$default_move_to_sent = $default_move_to_sent;\n";
+ # boolean
print CF "\$default_save_as_draft = $default_save_as_draft;\n";
+ # boolean
print CF "\$show_prefix_option = $show_prefix_option;\n";
+ # boolean
print CF "\$list_special_folders_first = $list_special_folders_first;\n";
+ # boolean
print CF "\$use_special_folder_color = $use_special_folder_color;\n";
+ # boolean
print CF "\$auto_expunge = $auto_expunge;\n";
+ # boolean
print CF "\$default_sub_of_inbox = $default_sub_of_inbox;\n";
+ # boolean
print CF "\$show_contain_subfolders_option = $show_contain_subfolders_option;\n";
+ # integer
print CF "\$default_unseen_notify = $default_unseen_notify;\n";
+ # integer
print CF "\$default_unseen_type = $default_unseen_type;\n";
+ # boolean
print CF "\$auto_create_special = $auto_create_special;\n";
+ # boolean
print CF "\$delete_folder = $delete_folder;\n";
print CF "\n";
+ # string
print CF "\$default_charset = '$default_charset';\n";
+ # string
print CF "\$data_dir = '$data_dir';\n";
+ # string that can contain a variable
print CF "\$attachment_dir = \"$attachment_dir\";\n";
+ # integer
print CF "\$dir_hash_level = $dir_hash_level;\n";
- print CF "\$default_left_size = $default_left_size;\n";
+ # string
+ print CF "\$default_left_size = '$default_left_size';\n";
+ # boolean
print CF "\$force_username_lowercase = $force_username_lowercase;\n";
+ # boolean
print CF "\$default_use_priority = $default_use_priority;\n";
+ # boolean
print CF "\$hide_sm_attributions = $hide_sm_attributions;\n";
+ # boolean
print CF "\$default_use_mdn = $default_use_mdn;\n";
+ # boolean
print CF "\$edit_identity = $edit_identity;\n";
+ # boolean
print CF "\$edit_name = $edit_name;\n";
+ # boolean
+ print CF "\$allow_thread_sort = $allow_thread_sort;\n";
+ # boolean
+ print CF "\$allow_server_sort = $allow_server_sort;\n";
+ # boolean
+ print CF "\$allow_charset_search = $allow_charset_search;\n";
print CF "\n";
-
+
+ # all plugins are strings
for ( $ct = 0 ; $ct <= $#plugins ; $ct++ ) {
print CF "\$plugins[$ct] = '$plugins[$ct]';\n";
}
print CF "\n";
+ # strings
print CF "\$theme_css = '$theme_css';\n";
for ( $count = 0 ; $count <= $#theme_name ; $count++ ) {
print CF "\$theme[$count]['PATH'] = '$theme_path[$count]';\n";
if ( $default_use_javascript_addr_book ne "true" ) {
$default_use_javascript_addr_book = "false";
}
+
+ # boolean
print CF "\$default_use_javascript_addr_book = $default_use_javascript_addr_book;\n";
for ( $count = 0 ; $count <= $#ldap_host ; $count++ ) {
print CF "\$ldap_server[$count] = array(\n";
+ # string
print CF " 'host' => '$ldap_host[$count]',\n";
+ # string
print CF " 'base' => '$ldap_base[$count]'";
if ( $ldap_name[$count] ) {
print CF ",\n";
+ # string
print CF " 'name' => '$ldap_name[$count]'";
}
if ( $ldap_port[$count] ) {
print CF ",\n";
- print CF " 'port' => '$ldap_port[$count]'";
+ # integer
+ print CF " 'port' => $ldap_port[$count]";
}
if ( $ldap_charset[$count] ) {
print CF ",\n";
+ # string
print CF " 'charset' => '$ldap_charset[$count]'";
}
if ( $ldap_maxrows[$count] ) {
print CF ",\n";
- print CF " 'maxrows' => '$ldap_maxrows[$count]'";
+ # integer
+ print CF " 'maxrows' => $ldap_maxrows[$count]";
}
print CF "\n";
print CF ");\n";
print CF "\n";
}
+ # string
print CF "\$addrbook_dsn = '$addrbook_dsn';\n";
+ # string
print CF "\$addrbook_table = '$addrbook_table';\n\n";
+ # string
print CF "\$prefs_dsn = '$prefs_dsn';\n";
+ # string
print CF "\$prefs_table = '$prefs_table';\n";
+ # string
print CF "\$prefs_user_field = '$prefs_user_field';\n";
+ # string
print CF "\$prefs_key_field = '$prefs_key_field';\n";
+ # string
print CF "\$prefs_val_field = '$prefs_val_field';\n";
print CF "\n";