Testing CVS access
[squirrelmail.git] / config / conf.pl
index 1f3b0ff89f854d258c998a9cf8943ff825ff589c..2295f560300bf3527247d460938b83034e0907d7 100755 (executable)
@@ -6,7 +6,7 @@
 #
 # $Id$
 ############################################################              
-$conf_pl_version = "x62";
+$conf_pl_version = "x63";
 
 ############################################################              
 # Some people try to run this as a CGI. That's wrong!
@@ -242,6 +242,12 @@ if (!$force_username_lowercase) {
 if (!$optional_delimiter) {
        $optional_delimiter = "detect";
 }
+if (!$use_authenticated_smtp) {
+    $use_authenticated_smtp = "false";
+}
+if (!$auto_create_special) {
+       $auto_create_special = "false";
+}
 
 #####################################################################################
 if ($config_use_color == 1) {
@@ -279,6 +285,8 @@ while (($command ne "q") && ($command ne "Q")) {
       print "1.  Organization Name    : $WHT$org_name$NRM\n";
       print "2.  Organization Logo    : $WHT$org_logo$NRM\n";
       print "3.  Organization Title   : $WHT$org_title$NRM\n";
+      print "4.  Signout Page         : $WHT$signout_page$NRM\n";
+      print "5.  Default Language     : $WHT$squirrelmail_default_language$NRM\n";
       print "\n";
       print "R   Return to Main Menu\n";
    } elsif ($menu == 2) {
@@ -298,10 +306,11 @@ while (($command ne "q") && ($command ne "Q")) {
       } else {
          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 "8.  Server               : $WHT$imap_server_type$NRM\n";
-      print "9.  Invert Time          : $WHT$invert_time$NRM\n";
-      print "10. Delimiter            : $WHT$optional_delimiter$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 "\n";
       print "R   Return to Main Menu\n";
    } elsif ($menu == 3) {
@@ -319,6 +328,7 @@ while (($command ne "q") && ($command ne "Q")) {
       print "11. Show 'Contain Sub.' Option : $WHT$show_contain_subfolders_option$NRM\n";
       print "12. Default Unseen Notify      : $WHT$default_unseen_notify$NRM\n";
       print "13. Default Unseen Type        : $WHT$default_unseen_type$NRM\n";
+         print "14. Auto create Sent and Trash : $WHT$auto_create_special$NRM\n";
       print "\n";
       print "R   Return to Main Menu\n";
    } elsif ($menu == 4) {
@@ -446,6 +456,8 @@ while (($command ne "q") && ($command ne "Q")) {
          if    ($command == 1) { $org_name   = command1 (); }
          elsif ($command == 2) { $org_logo   = command2 (); }
          elsif ($command == 3) { $org_title  = command3 (); }
+         elsif ($command == 4) { $signout_page  = command4 (); }
+        elsif ($command == 5) { $squirrelmail_default_language = command5(); }
       } elsif ($menu == 2) {
          if    ($command == 1)  { $domain             = command11 (); }
          elsif ($command == 2)  { $imapServerAddress  = command12 (); }
@@ -454,9 +466,10 @@ while (($command ne "q") && ($command ne "Q")) {
          elsif ($command == 5)  { $sendmail_path      = command15 (); }
          elsif ($command == 6)  { $smtpServerAddress  = command16 (); }
          elsif ($command == 7)  { $smtpPort           = command17 (); }
-         elsif ($command == 8)  { $imap_server_type   = command18 (); }
-         elsif ($command == 9)  { $invert_time        = command19 (); }
-         elsif ($command == 10) { $optional_delimiter = command110 (); }
+         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 ($menu == 3) {
          if    ($command == 1) { $default_folder_prefix          = command21 (); }
          elsif ($command == 2) { $show_prefix_option             = command22 (); }
@@ -471,6 +484,7 @@ while (($command ne "q") && ($command ne "Q")) {
          elsif ($command == 11){ $show_contain_subfolders_option = command211(); }
          elsif ($command == 12){ $default_unseen_notify          = command212(); }
          elsif ($command == 13){ $default_unseen_type            = command213(); }
+         elsif ($command == 14){ $auto_create_special            = command214(); }
       } elsif ($menu == 4) {
          if    ($command == 1) { $default_charset          = command31 (); }
          elsif ($command == 2) { $data_dir                 = command33 (); }
@@ -543,6 +557,41 @@ sub command3 {
    return $new_org_title;
 }
 
+# signout_page
+sub command4 {
+   print "When users click the Sign Out button they will be logged out and\n";
+   print "then sent to signout_page.  If signout_page is left empty,\n";
+   print "(hit space and then return) they will be taken, as normal,\n";
+   print "to the default and rather sparse SquirrelMail signout page.\n";
+   print "\n";
+   print "[$WHT$signout_page$NRM]: $WHT";
+   $new_signout_page = <STDIN>;
+   if ($new_signout_page eq "\n") {
+      $new_signout_page = $signout_page;
+   } else {
+      $new_signout_page =~ s/[\r|\n]//g;
+      $new_signout_page =~ s/^\s+$//g;
+   }
+   return $new_signout_page;
+}
+
+# Default language
+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 "\n";
+   print "[$WHT$squirrelmail_default_language$NRM]: $WHT";
+   $new_signout_page = <STDIN>;
+   if ($new_signout_page eq "\n") {
+      $new_signout_page = $squirrelmail_default_language;
+   } else {
+      $new_signout_page =~ s/[\r|\n]//g;
+      $new_signout_page =~ s/^\s+$//g;
+   }
+   return $new_signout_page;
+}
+
 ####################################################################################
 
 # domain
@@ -651,8 +700,27 @@ sub command17 {
    }
    return $new_smtpPort;
 }
-# imap_server_type 
+
+# authenticated server 
 sub command18 {
+   print "Do you wish to use an authenticated SMTP server?  Your server must\n";
+   print "support this in order for SquirrelMail to work with it.  We implemented\n";
+   print "it according to RFC 2554.\n";
+   
+   $YesNo = 'n';
+   $YesNo = 'y' if ($use_authenticated_smtp eq "true");
+
+   print "Use authenticated SMTP server (y/n) [$WHT$YesNo$NRM]: $WHT";
+
+   $new_use_authenticated_smtp = <STDIN>;
+   $new_use_authenticated_smtp =~ tr/yn//cd;
+   return "true" if ($new_use_authenticated_smtp eq "y");
+   return "false" if ($new_use_authenticated_smtp eq "n");
+   return $use_authenticated_smtp;
+}   
+
+# imap_server_type 
+sub command19 {
    print "Each IMAP server has its own quirks.  As much as we tried to stick\n";
    print "to standards, it doesn't help much if the IMAP server doesn't follow\n";
    print "the same principles.  We have made some work-arounds for some of\n";
@@ -663,6 +731,7 @@ sub command18 {
    print "    uw         = University of Washington's IMAP server\n";
    print "    exchange   = Microsoft Exchange IMAP server\n";
    print "    courier    = Courier IMAP server\n";
+   print "    other      = Not one of the above servers\n";
    print "[$WHT$imap_server_type$NRM]: $WHT";
    $new_imap_server_type = <STDIN>;
    if ($new_imap_server_type eq "\n") {
@@ -674,7 +743,7 @@ sub command18 {
 }
 
 # invert_time
-sub command19 {
+sub command110 {
    print "Sometimes the date of messages sent is messed up (off by a few hours\n";
    print "on some machines).  Typically this happens if the system doesn't support\n";
    print "tm_gmtoff.  It will happen only if your time zone is \"negative\".\n";
@@ -696,7 +765,7 @@ sub command19 {
    return $invert_time;
 }   
 
-sub command110 {
+sub command111 {
        print "This is the delimiter that your IMAP server uses to distinguish between\n";
        print "folders.  For example, Cyrus uses '.' as the delimiter and a complete\n";
        print "folder would look like 'INBOX.Friends.Bob', while UW uses '/' and would\n";
@@ -1077,6 +1146,28 @@ sub command213 {
    return $default_unseen_type;
 }
 
+# Auto create special folders
+sub command214 {
+   print "Would you like the Sent and Trash folders to be created automatically for\n";
+   print "you when a user loggs in?  If the user accidentally deletes their special\n";
+   print "folders, this option will automatically create it again for them.\n";
+   print "\n";
+   
+   if ($auto_create_special eq "true") {
+      $default_value = "y";
+   } else {
+      $default_value = "n";
+   }
+   print "Auto create special folders? (y/n) [$WHT$default_value$NRM]: $WHT";
+   $new_show = <STDIN>;
+   if (($new_show =~ /^y\n/i) || (($new_show =~ /^\n/) && ($default_value eq "y"))) {
+      $auto_create_special = "true";
+   } else {
+      $auto_create_special = "false";
+   }
+   return $auto_create_special;
+}
+
 
 ############# GENERAL OPTIONS #####################
 
@@ -1523,32 +1614,50 @@ sub save_data {
 
    print FILE "<?php\n\t/** SquirrelMail configuration\n";
    print FILE "\t ** Created using the configure script, conf.pl\n\t **/\n\n";
+   
+   print FILE "if (defined('config_php'))\n   return;\n";
+   print FILE "define('config_php', true);\n\n";
+
+   print FILE "\tglobal \$print_config_version, \$config_version, \$config_use_color;\n";
 
    if ($print_config_version) {
       print FILE "\t\$config_version = \"$print_config_version\";\n";
    }
    print FILE "\t\$config_use_color = $config_use_color;\n"; 
    print FILE "\n";
-   
+
+   print FILE "\tglobal \$org_name, \$org_logo, \$org_title, \$signout_page;\n";
    print FILE "\t\$org_name   = \"$org_name\";\n";
    print FILE "\t\$org_logo   = \"$org_logo\";\n";
    print FILE "\t\$org_title  = \"$org_title\";\n";
+   print FILE "\t\$signout_page  = \"$signout_page\";\n";
 
    print FILE "\n";
 
-   print FILE "\t\$domain               = \"$domain\";\n";
-   print FILE "\t\$imapServerAddress    = \"$imapServerAddress\";\n";
-   print FILE "\t\$imapPort             =  $imapPort;\n";
-   print FILE "\t\$useSendmail          =  $useSendmail;\n";
-   print FILE "\t\$smtpServerAddress    = \"$smtpServerAddress\";\n";
-   print FILE "\t\$smtpPort             =  $smtpPort;\n";
-   print FILE "\t\$sendmail_path        = \"$sendmail_path\";\n";
-   print FILE "\t\$imap_server_type     = \"$imap_server_type\";\n";
-   print FILE "\t\$invert_time          = $invert_time;\n";
-       print FILE "\t\$optional_delimiter   = \"$optional_delimiter\";\n";
+   print FILE "\tglobal \$domain, \$imapServerAddress, \$imapPort;\n";
+   print FILE "\tglobal \$useSendmail, \$smtpServerAddress, \$smtpPort;\n";
+   print FILE "\tglobal \$sendmail_path, \$use_authenticated_smtp, \$imap_server_type;\n";
+   print FILE "\tglobal \$invert_time, \$optional_delimiter;\n";
+   print FILE "\t\$domain                 = \"$domain\";\n";
+   print FILE "\t\$imapServerAddress      = \"$imapServerAddress\";\n";
+   print FILE "\t\$imapPort               =  $imapPort;\n";
+   print FILE "\t\$useSendmail            =  $useSendmail;\n";
+   print FILE "\t\$smtpServerAddress      = \"$smtpServerAddress\";\n";
+   print FILE "\t\$smtpPort               =  $smtpPort;\n";
+   print FILE "\t\$sendmail_path          = \"$sendmail_path\";\n";
+   print FILE "\t\$use_authenticated_smtp = $use_authenticated_smtp;\n";
+   print FILE "\t\$imap_server_type       = \"$imap_server_type\";\n";
+   print FILE "\t\$invert_time            = $invert_time;\n";
+   print FILE "\t\$optional_delimiter     = \"$optional_delimiter\";\n";
    
    print FILE "\n";
 
+   print FILE "\tglobal \$default_folder_prefix, \$trash_folder, \$sent_folder;\n";
+   print FILE "\tglobal \$default_move_to_trash, \$default_move_to_sent;\n";
+   print FILE "\tglobal \$show_prefix_option, \$list_special_folders_first;\n";
+   print FILE "\tglobal \$use_special_folder_color, \$auto_expunge, \$default_sub_of_inbox;\n";
+   print FILE "\tglobal \$show_contain_subfolders_option, \$default_unseen_notify;\n";
+   print FILE "\tglobal \$default_unseen_type, \$auto_create_special;\n";
    print FILE "\t\$default_folder_prefix            = \"$default_folder_prefix\";\n";
    print FILE "\t\$trash_folder                     = \"$trash_folder\";\n";
    print FILE "\t\$sent_folder                      = \"$sent_folder\";\n";
@@ -1562,8 +1671,11 @@ sub save_data {
    print FILE "\t\$show_contain_subfolders_option   =  $show_contain_subfolders_option;\n";
    print FILE "\t\$default_unseen_notify            =  $default_unseen_notify;\n";
    print FILE "\t\$default_unseen_type              =  $default_unseen_type;\n";
+   print FILE "\t\$auto_create_special              =  $auto_create_special;\n";
    print FILE "\n";
 
+   print FILE "\tglobal \$default_charset, \$data_dir, \$attachment_dir;\n";
+   print FILE "\tglobal \$default_left_size, \$force_username_lowercase;\n";
    print FILE "\t\$default_charset          = \"$default_charset\";\n";
    print FILE "\t\$data_dir                 = \"$data_dir\";\n";
    print FILE "\t\$attachment_dir           = \"$attachment_dir\";\n";
@@ -1572,12 +1684,14 @@ sub save_data {
 
    print FILE "\n";
 
+   print FILE "\tglobal \$plugins;\n";
    for ($ct=0; $ct <= $#plugins; $ct++) {
       print FILE "\t\$plugins[$ct] = \"$plugins[$ct]\";\n";
    }
    
    print FILE "\n";
 
+   print FILE "\tglobal \$theme_css, \$theme;\n";
    print FILE "\t\$theme_css = \"$theme_css\";\n";
    for ($count=0; $count <= $#theme_name; $count++) {
       print FILE "\t\$theme[$count][\"PATH\"] = \"$theme_path[$count]\";\n";
@@ -1589,6 +1703,7 @@ sub save_data {
    if ($default_use_javascript_addr_book ne "true") {
       $default_use_javascript_addr_book = "false";
    }   
+   print FILE "\tglobal \$default_use_javascript_addr_book, \$ldap_server;\n";
    print FILE "\t\$default_use_javascript_addr_book = $default_use_javascript_addr_book;\n";
    for ($count=0; $count <= $#ldap_host; $count++) {
       print FILE "\t\$ldap_server[$count] = Array(\n";
@@ -1609,9 +1724,12 @@ sub save_data {
       print FILE ");\n\n";
    }
 
+   print FILE "\tglobal \$motd;\n";
    print FILE "\t\$motd = \"$motd\";\n";
+   
+   print FILE "\tglobal \$squirrelmail_default_language;\n";
+   print FILE "\t\$squirrelmail_default_language = \"$squirrelmail_default_language\";\n";
 
-   print FILE "?>\n";
    close FILE;
 }
 
@@ -1683,7 +1801,7 @@ sub set_defaults {
                        
          $continue = 1;
       } elsif ($server eq "exchange") {
-                       $default_folder_prefix = "INBOX/";
+                       $default_folder_prefix = "";
                        $default_sub_of_inbox = true;
                        $trash_folder = "INBOX/Deleted Items";
                        $sent_folder = "INBOX/Sent Items";
@@ -1691,7 +1809,7 @@ sub set_defaults {
                        $show_contain_subfolders_option = false;
                        $imap_server_type = "exchange";
          
-         print "          default_folder_prefix = INBOX/\n";
+         print "          default_folder_prefix = <none>\n";
          print "           default_sub_of_inbox = true\n";
          print "                   trash_folder = \"INBOX/Deleted Items\"\n";
          print "                    sent_folder = \"INBOX/Sent Items\"\n";