X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=config%2Fconf.pl;h=9554acb5dfc0883132c5fc13e4f0f33caf899ae2;hb=20473d1e46b52f35bb6948d312f6b87a21dc07f1;hp=9b5ec456239925316414bc122c723f18b6b5343f;hpb=aa0da5307972761c952ea688d1603c0a283a101a;p=squirrelmail.git diff --git a/config/conf.pl b/config/conf.pl index 9b5ec456..9554acb5 100755 --- a/config/conf.pl +++ b/config/conf.pl @@ -239,6 +239,9 @@ if ( $useSendmail ne "true" ) { if ( !$sendmail_path ) { $sendmail_path = "/usr/sbin/sendmail"; } +if ( !$pop_before_smtp ) { + $pop_before_smtp = "false"; +} if ( !$default_unseen_notify ) { $default_unseen_notify = 2; } @@ -275,6 +278,9 @@ if ( !$default_use_mdn ) { if ( !$delete_folder ) { $delete_folder = "false"; } +if ( !$noselect_fix_enable ) { + $noselect_fix_enable = "false"; +} if ( !$frame_top ) { $frame_top = "_top"; } @@ -290,6 +296,13 @@ if ( !$allow_thread_sort ) { if ( !$allow_server_sort ) { $allow_server_sort = 'false'; } +if ( !$uid_support ) { + $uid_support = 'true'; +} + +if ( !$allow_charset_search ) { + $allow_charset_search = 'true'; +} if ( !$prefs_user_field ) { $prefs_user_field = 'user'; } @@ -378,10 +391,11 @@ while ( ( $command ne "q" ) && ( $command ne "Q" ) ) { 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 ) { @@ -403,6 +417,7 @@ while ( ( $command ne "q" ) && ( $command ne "Q" ) ) { print "15. Default Unseen Type : $WHT$default_unseen_type$NRM\n"; print "16. Auto Create Special Folders : $WHT$auto_create_special$NRM\n"; print "17. Don't move folders into Trash : $WHT$delete_folder$NRM\n"; + print "18. Enable /NoSelect folder fix : $WHT$noselect_fix_enable$NRM\n"; print "\n"; print "R Return to Main Menu\n"; } elsif ( $menu == 4 ) { @@ -418,10 +433,12 @@ while ( ( $command ne "q" ) && ( $command ne "Q" ) ) { 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"; + print "12. Allow server-side sorting : $WHT$allow_server_sort$NRM\n"; if ( lc($edit_identity) eq "false" ) { print "13. Allow editing of name : $WHT$edit_name$NRM\n"; } + print "14. Allow server charset search : $WHT$allow_charset_search$NRM\n"; + print "15. Enable UID support : $WHT$uid_support$NRM\n"; print "\n"; print "R Return to Main Menu\n"; } elsif ( $menu == 5 ) { @@ -499,7 +516,6 @@ while ( ( $command ne "q" ) && ( $command ne "Q" ) ) { 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 ) { @@ -567,9 +583,10 @@ while ( ( $command ne "q" ) && ( $command ne "Q" ) ) { 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(); } @@ -588,6 +605,7 @@ while ( ( $command ne "q" ) && ( $command ne "Q" ) ) { elsif ( $command == 15 ) { $default_unseen_type = command213(); } elsif ( $command == 16 ) { $auto_create_special = command214(); } elsif ( $command == 17 ) { $delete_folder = command215(); } + elsif ( $command == 18 ) { $noselect_fix_enable = command216(); } } elsif ( $menu == 4 ) { if ( $command == 1 ) { $default_charset = command31(); } elsif ( $command == 2 ) { $data_dir = command33a(); } @@ -602,6 +620,8 @@ while ( ( $command ne "q" ) && ( $command ne "Q" ) ) { 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 ( $command == 15 ) { $uid_support = command315(); } } elsif ( $menu == 5 ) { if ( $command == 1 ) { command41(); } elsif ( $command == 2 ) { $theme_css = command42(); } @@ -639,6 +659,7 @@ sub command1 { $new_org_name = $org_name; } else { $new_org_name =~ s/[\r|\n]//g; + $new_org_name =~ s/\"/"/g; } return $new_org_name; } @@ -676,7 +697,9 @@ sub command2a { print "Height: [$WHT$org_logo_height$NRM]: $WHT"; $new_org_logo_height = ; $new_org_logo_height =~ tr/0-9//cd; # only want digits! - $new_org_logo_height = $org_logo_height; + if( $new_org_logo_height eq '' ) { + $new_org_logo_height = $org_logo_height; + } } else { $new_org_logo_height = 0; } @@ -695,6 +718,7 @@ sub command3 { $new_org_title = $org_title; } else { $new_org_title =~ s/[\r|\n]//g; + $new_org_title =~ s/\"/\'/g; } return $new_org_title; } @@ -721,7 +745,7 @@ sub command4 { 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 = ; @@ -755,7 +779,7 @@ sub command6 { # 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"; @@ -879,6 +903,23 @@ sub command18 { 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 = ; + $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"; @@ -891,6 +932,7 @@ sub command19 { 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 = ; @@ -961,7 +1003,7 @@ sub command71 { $line =~ s/ /\ \ /g; $line =~ s/\t/\ \ \ \ /g; $line =~ s/$/ /; - $line =~ s/\'/\\\'/g; + $line =~ s/\"/"/g; $new_motd = $new_motd . $line; } @@ -1049,12 +1091,13 @@ sub command21 { $new_default_folder_prefix = ""; } else { # add the trailing delimiter only if we know what the server is. - if ($optional_delimiter and $optional_delimiter ne 'detect') { - $new_default_folder_prefix =~ s/${optional_delimiter}*$/$optional_delimiter/; - } elsif ($imap_server_type eq 'cyrus' or - $imap_server_type eq 'courier') { + 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') { + } elsif ($imap_server_type eq 'uw' and + $optional_delimiter eq 'detect') { $new_default_folder_prefix =~ s/\/*$/\//; } } @@ -1431,6 +1474,27 @@ sub command215 { return $delete_folder; } +#noselect fix +sub command216 { + print "Some IMAP server allow subfolders to exist even if the parent\n"; + print "folders do not. This fixes some problems with the folder list\n"; + print "when this is the case, causing the /NoSelect folders to be displayed\n"; + print "\n"; + + if ( lc($noselect_fix_enable) eq "true" ) { + $default_value = "y"; + } else { + $default_value = "n"; + } + print "enable noselect fix? (y/n) [$WHT$noselect_fix_enable$NRM]: $WHT"; + $noselect_fix_enable = ; + if ( ( $noselect_fix_enable =~ /^y\n/i ) || ( ( $noselect_fix_enable =~ /^\n/ ) && ( $default_value eq "y" ) ) ) { + $noselect_fix_enable = "true"; + } else { + $noselect_fix_enable = "false"; + } + return $noselect_fix_enable; +} ############# GENERAL OPTIONS ##################### # Default Charset @@ -1719,6 +1783,46 @@ sub command313 { 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 = ; + 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 command315 { + print "This option allows you to enable unique identifier (UID) support.\n"; + print "\n"; + + if ( lc($uid_support) eq "true" ) { + $default_value = "y"; + } else { + $default_value = "n"; + } + print "Enable Unique identifier (UID) support? (y/n) [$WHT$default_value$NRM]: $WHT"; + $uid_support = ; + if ( ( $uid_support =~ /^y\n/i ) || ( ( $uid_support =~ /^\n/ ) && ( $default_value eq "y" ) ) ) { + $uid_support = "true"; + } else { + $uid_support = "false"; + } + return $uid_support; +} + + 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"; @@ -2178,78 +2282,140 @@ sub save_data { 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"; + # boolean + print CF "\$noselect_fix_enable = $noselect_fix_enable;\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"; + # boolean + print CF "\$uid_support = $uid_support;\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"; @@ -2260,39 +2426,56 @@ sub save_data { 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"; + # boolean + print CF "\$no_list_for_subscribe = $no_list_for_subscribe;\n"; print CF "\n"; print CF "/**\n"; @@ -2337,6 +2520,7 @@ sub set_defaults { 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 " quit = Do not change anything\n"; print "Command >> "; $server = ; @@ -2394,6 +2578,20 @@ sub set_defaults { $optional_delimiter = "."; $disp_default_folder_prefix = $default_folder_prefix; + $continue = 1; + } elsif ( $server eq "macosx" ) { + $imap_server_type = "macosx"; + $default_folder_prefix = "INBOX/"; + $trash_folder = "Trash"; + $sent_folder = "Sent"; + $draft_folder = "Drafts"; + $show_prefix_option = false; + $default_sub_of_inbox = true; + $show_contain_subfolders_option = false; + $optional_delimiter = "detect"; + $allow_charset_search = false; + $disp_default_folder_prefix = $default_folder_prefix; + $continue = 1; } elsif ( $server eq "quit" ) { $continue = 1;