list, the space is allocated, but it is blank.
(lme) I'm not convinced that the cache gets deleted all the time. I'll
look into this one.
-(lme) In UW, removing folders with a / at the end is broke
- When reading through 7 unread messages, every time I would read
a message and click on "Message List" to go back, they would stay
marked "unread". The caching was doing too good of a job. (:
"Luke Ehresman <lehresma@css.tayloru.edu>" (without quotes)
translates to the SMTP server as:
<lehresma@css.tayloru.edu>>
+(lme) In UW, removing folders with a / at the end is broke
(pl?) Importing of address books
(nre) Use PHP4 Session management, get rid of cookies
- Make it possible to save preferences in MySQL DB or on Filesystem
- - Navigation between messages without going to folder list (next, prev)
- Configurable headers shown on the message listing, like: cc, to, etc
- Filters
- Better inline HTML support including graphics (content-disposition)
- - Maybe a rewrite of mime.php (see Gustav before any work is done)
+ - Rewrite of mime.php (see Gustav before any work is done)
- Make Location redirects absolute rather than relative (index.php)
- Foreground themes
- When deleting or moving messages (empty trash too), go back to the
list for the mail box you were looking at without having to click
a link
(mcp) Spell checking
- - Cache the sorted messages in mailbox and use that for navigation inside
- of mailbox (next 25, prev 25, etc.)
- Search mailbox(es) for given criteria
(lme) (9.4.00) Better email message body parsing
(lme) (10.4.00) Advanced statuses on messages (Seen, Answered, etc)
(glp) (12.4.00) Customize how many messages are shown at once while reading a mailbox
+(nre) (16.4.00) Navigation between messages without going to folder list (next, prev)
+(nre) (16.4.00) Cache the sorted messages in mailbox and use that for navigation inside
+ of mailbox (next 25, prev 25, etc.)
(lme) (21.4.00) Configure script
# First, lets read in the data already in there...
############################################################
if ( -e "config.php") {
- print "The file \"config.php\" exists. Using it for defaults.\n\n";
+ $config = 1;
open (FILE, "config.php");
-} else {
- print "No config file found. Reading from config_defaults.php.\n\n";
+} elsif (-e "config_default.php") {
+ $config = 2;
open (FILE, "config_default.php");
+} else {
+ print "No configuration file found. Please get config_default.php or\n";
+ print "config.php before running this again. This program needs a\n";
+ print "default config file to get default values.\n";
+ exit;
}
# Reads and parses the current configuration file (either
$options[1] =~ s/;.*$//g;
$options[1] =~ s/"$//g;
- if ($options[0] =~ /^special_folders/) {
- if ($options[0] =~ /\[.*\]$/) {
- $sub = $options[0];
- $sub =~ s/\]$//;
- $sub = substr ($sub, @sub-1, 1);
-
- $special_folders[$sub] = $options[1];
- }
- } elsif ($options[0] =~ /^theme\[[0-9]+\]\["PATH"\]/) {
+ if ($options[0] =~ /^theme\[[0-9]+\]\["PATH"\]/) {
$sub = $options[0];
$sub =~ s/\]\["PATH"\]//;
$sub = substr ($sub, @sub-1, 1);
$sub =~ s/\]\["NAME"\]//;
$sub = substr ($sub, @sub-1, 1);
$theme_name[$sub] = $options[1];
+ } elsif ($options[0] =~ /^ldap_server\[[0-9]+\]/) {
+ $sub = $options[0];
+ $sub = substr ($sub, length($sub)-2, 1);
+ $continue = 0;
+ while (($tmp = <FILE>) && ($continue != 1)) {
+ if ($tmp =~ /\);\s*$/) {
+ $continue = 1;
+ }
+
+ if ($tmp =~ /^\s*"host"/i) {
+ $tmp =~ s/^\s*"host"\s*=>\s*"//i;
+ $tmp =~ s/",\s*$//;
+ $tmp =~ s/"\);\s*$//;
+ $host = $tmp;
+ } elsif ($tmp =~ /^\s*"base"/i) {
+ $tmp =~ s/^\s*"base"\s*=>\s*"//i;
+ $tmp =~ s/",\s*$//;
+ $tmp =~ s/"\);\s*$//;
+ print $tmp."\n";
+ $base = $tmp;
+ } elsif ($tmp =~ /^\s*"charset"/i) {
+ $tmp =~ s/^\s*"charset"\s*=>\s*"//i;
+ $tmp =~ s/",\s*$//;
+ $tmp =~ s/"\);\s*$//;
+ $charset = $tmp;
+ } elsif ($tmp =~ /^\s*"port"/i) {
+ $tmp =~ s/^\s*"port"\s*=>\s*"//i;
+ $tmp =~ s/",\s*$//;
+ $tmp =~ s/"\);\s*$//;
+ $port = $tmp;
+ } elsif ($tmp =~ /^\s*"maxrows"/i) {
+ $tmp =~ s/^\s*"maxrows"\s*=>\s*"//i;
+ $tmp =~ s/",\s*$//;
+ $tmp =~ s/"\);\s*$//;
+ $maxrows = $tmp;
+ } elsif ($tmp =~ /^\s*"name"/i) {
+ $tmp =~ s/^\s*"name"\s*=>\s*"//i;
+ $tmp =~ s/",\s*$//;
+ $tmp =~ s/"\);\s*$//;
+ $name = $tmp;
+ }
+ }
+ $ldap_host[$sub] = $host;
+ $ldap_base[$sub] = $base;
+ $ldap_name[$sub] = $name;
+ $ldap_port[$sub] = $port;
+ $ldap_maxrows[$sub] = $maxrows;
+ $ldap_charset[$sub] = $charset;
} else {
${$options[0]} = $options[1];
}
$sendmail_path = "/usr/sbin/sendmail";
}
-
#####################################################################################
while (($command ne "q") && ($command ne "Q")) {
system "clear";
if ($menu == 0) {
- print $WHT."SquirrelMail Configuration Utility\n".$NRM;
+ print $WHT."SquirrelMail Configuration : ".$NRM;
+ if ($config == 1) { print "Read: config.php"; }
+ elsif ($config == 2) { print "Read: config_default.php"; }
+ print "\n";
+
print $WHT."Main Menu --\n".$NRM;
print "1. Organization Preferences\n";
print "2. Server Settings\n";
print "8. Auto Expunge : $WHT$auto_expunge$NRM\n";
print "9. Default Sub. of INBOX : $WHT$default_sub_of_inbox$NRM\n";
print "10. Show 'Contain Sub.' Option : $WHT$show_contain_subfolders_option$NRM\n";
- print "11. Special Folders > $WHT$special_folders[0]$NRM\n";
- for ($count = 1; $count <= $#special_folders; $count++) {
- print " > $WHT$special_folders[$count]$NRM\n";
- }
print "\n";
print "R Return to Main Menu\n";
} elsif ($menu == 4) {
print "R Return to Main Menu\n";
} elsif ($menu == 6) {
print $WHT."Address Books (LDAP)\n".$NRM;
+ print "1. Change Servers\n";
+ for ($count = 0; $count <= $#ldap_host; $count++) {
+ print " > $ldap_host[$count]\n";
+ }
print "\n";
print "R Return to Main Menu\n";
} elsif ($menu == 7) {
elsif ($command == 8) { $auto_expunge = command28 (); }
elsif ($command == 9) { $default_sub_of_inbox = command29 (); }
elsif ($command == 10){ $show_contain_subfolders_option = command210(); }
- elsif ($command == 11){ $special_folders = command211(); }
} elsif ($menu == 4) {
if ($command == 1) { $default_charset = command31 (); }
elsif ($command == 2) { $auto_forward = command32 (); }
command41 ();
}
} elsif ($menu == 6) {
+ if ($command == 1) { command61(); }
} elsif ($menu == 7) {
if ($command == 1) { $motd = command71 (); $motd =~ s/"/\\"/g;}
}
return $show_contain_subfolders_option;
}
-# special folders
-sub command211 {
- print "\nSpecial folders are folders that can't be manipulated like normal\n";
- print "user-created folders. A couple of examples of these would be the\n";
- print "trash folder, the sent folder, etc.\n";
- print "Special Folders:\n";
- $count = 0;
- print "\n";
- while ($count < @special_folders) {
- print " $count) $WHT" . $special_folders[$count] . "$NRM\n";
- $count++;
- }
- print "\n[folders] command (?=help) > ";
- $input = <STDIN>;
- $input =~ s/[\r|\n]//g;
- while ($input !~ /^d$/i) {
- ## ADD
- if ($input =~ /^\s*\+\s*.*/) {
- $input =~ s/^\s*\+\s*//;
- $special_folders[$#special_folders+1] = $input;
- }
-
- elsif ($input =~ /^\s*-\s*[0-9]?/i) {
- if ($input =~ /[0-9]+\s*$/) {
- $rem_num = $input;
- $rem_num =~ s/^\s*-\s*//g;
- $rem_num =~ s/\s*$//;
- } else {
- $rem_num = $#special_folders;
- }
-
- if ($rem_num == 0) {
- print "You cannot remove INBOX. It is a very special folder.\n";
- } else {
- $count = 0;
- @new_special_folders = ();
- $removed = 0;
- while ($count <= $#special_folders) {
- if ($count != $rem_num) {
- @new_special_folders = (@new_special_folders, $special_folders[$count]);
- }
- if ($count == $rem_num) {
- print "Removed: $special_folders[$rem_num]\n";
- $removed = 1;
- }
- $count++;
- }
- if ($removed != 1) {
- print "Error: Can't delete an entry that's not there!\n";
- }
- @special_folders = @new_special_folders;
- }
- }
-
- elsif ($input =~ /^\s*l\s*/i) {
- $count = 0;
- print "\n";
- while ($count < @special_folders) {
- print " $count) $WHT" . $special_folders[$count] . "$NRM\n";
- $count++;
- }
- } elsif ($input =~ /^\s*\?\s*/) {
- print ".-------------------------.\n";
- print "| + Folder (add folder) |\n";
- print "| - N (remove folder) |\n";
- print "| l (list folders) |\n";
- print "| d (done) |\n";
- print "`-------------------------'\n";
- }
-
- else {
- print "Unrecognized command.\n";
- }
-
- print "\n[folders] command (?=help) > ";
- $input = <STDIN>;
- $input =~ s/[\r|\n]//g;
- }
- return @special_folders;
-}
-
############# GENERAL OPTIONS #####################
# Default Charset
}
+sub command61 {
+ print "You can now define different LDAP servers.\n";
+ print "[ldap] command (?=help) > ";
+ $input = <STDIN>;
+ $input =~ s/[\r|\n]//g;
+ while ($input ne "d") {
+ if ($input =~ /^\s*l\s*/i) {
+ $count = 0;
+ while ($count <= $#ldap_host) {
+ print "$count. $ldap_host[$count]\n";
+ print " base: $ldap_base[$count]\n";
+ if ($ldap_charset[$count]) {
+ print " charset: $ldap_charset[$count]\n";
+ }
+ if ($ldap_port[$count]) {
+ print " port: $ldap_port[$count]\n";
+ }
+ if ($ldap_name[$count]) {
+ print " name: $ldap_name[$count]\n";
+ }
+ if ($ldap_maxrows[$count]) {
+ print " maxrows: $ldap_maxrows[$count]\n";
+ }
+ print "\n";
+ $count++;
+ }
+ } elsif ($input =~ /^\s*\+/) {
+ $sub = $#ldap_host + 1;
+
+ print "First, we need to have the hostname or the IP address where\n";
+ print "this LDAP server resides. Example: ldap.bigfoot.com\n";
+ print "hostname: ";
+ $name = <STDIN>;
+ $name =~ s/[\r|\n]//g;
+ $ldap_host[$sub] = $name;
+
+ print "\n";
+
+ print "Next, we need the server root (base dn). For this, an empty\n";
+ print "string is allowed.\n";
+ print "Example: ou=member_directory,o=netcenter.com\n";
+ print "base: ";
+ $name = <STDIN>;
+ $name =~ s/[\r|\n]//g;
+ $ldap_base[$sub] = $name;
+
+ print "\n";
+
+ print "This is the TCP/IP port number for the LDAP server. Default\n";
+ print "port is 389. This is optional. Press ENTER for default.\n";
+ print "port: ";
+ $name = <STDIN>;
+ $name =~ s/[\r|\n]//g;
+ $ldap_port[$sub] = $name;
+
+ print "\n";
+
+ print "This is the charset for the server. Default is utf-8. This\n";
+ print "is also optional. Press ENTER for default.\n";
+ print "charset: ";
+ $name = <STDIN>;
+ $name =~ s/[\r|\n]//g;
+ $ldap_charset[$sub] = $name;
+
+ print "\n";
+
+ print "This is the name for the server, used to tag the results of\n";
+ print "the search. Default it \"LDAP: hostname\". Press ENTER for default\n";
+ print "name: ";
+ $name = <STDIN>;
+ $name =~ s/[\r|\n]//g;
+ $ldap_name[$sub] = $name;
+
+ print "\n";
+
+ print "You can specify the maximum number of rows in the search result.\n";
+ print "Default is unlimited. Press ENTER for default.\n";
+ print "maxrows: ";
+ $name = <STDIN>;
+ $name =~ s/[\r|\n]//g;
+ $ldap_maxrows[$sub] = $name;
+
+ print "\n";
+
+ } elsif ($input =~ /^\s*-\s*[0-9]?/) {
+ if ($input =~ /[0-9]+\s*$/) {
+ $rem_num = $input;
+ $rem_num =~ s/^\s*-\s*//g;
+ $rem_num =~ s/\s*$//;
+ } else {
+ $rem_num = $#ldap_host;
+ }
+ $count = 0;
+ @new_ldap_host = ();
+ @new_ldap_base = ();
+ @new_ldap_port = ();
+ @new_ldap_name = ();
+ @new_ldap_charset = ();
+ @new_ldap_maxrows = ();
+ while ($count <= $#ldap_host) {
+ if ($count != $rem_num) {
+ @new_ldap_host = (@new_ldap_host, $ldap_host[$count]);
+ @new_ldap_base = (@new_ldap_base, $ldap_base[$count]);
+ @new_ldap_port = (@new_ldap_port, $ldap_port[$count]);
+ @new_ldap_name = (@new_ldap_name, $ldap_name[$count]);
+ @new_ldap_charset = (@new_ldap_charset, $ldap_charset[$count]);
+ @new_ldap_maxrows = (@new_ldap_maxrows, $ldap_maxrows[$count]);
+ }
+ $count++;
+ }
+ @ldap_host = @new_ldap_host;
+ @ldap_base = @new_ldap_base;
+ @ldap_port = @new_ldap_port;
+ @ldap_name = @new_ldap_name;
+ @ldap_charset = @new_ldap_charset;
+ @ldap_maxrows = @new_ldap_maxrows;
+ } elsif ($input =~ /^\s*\?\s*/) {
+ print ".-------------------------.\n";
+ print "| + (add host) |\n";
+ print "| - N (remove host) |\n";
+ print "| l (list hosts) |\n";
+ print "| d (done) |\n";
+ print "`-------------------------'\n";
+ }
+ print "[ldap] command (?=help) > ";
+ $input = <STDIN>;
+ $input =~ s/[\r|\n]//g;
+ }
+}
+
+
sub save_data {
open (FILE, ">config.php");
print FILE "\t\$auto_expunge = $auto_expunge;\n";
print FILE "\t\$default_sub_of_inbox = $default_sub_of_inbox;\n";
print FILE "\t\$show_contain_subfolders_option = $show_contain_subfolders_option;\n";
- for ($count=0; $count <= $#special_folders; $count++) {
- print FILE "\t\$special_folders[$count] = \"$special_folders[$count]\";\n";
- }
print FILE "\n";
print FILE "\t\$default_charset = \"$default_charset\";\n";
print FILE "\n";
+ for ($count=0; $count <= $#ldap_host; $count++) {
+ print FILE "\t\$ldap_server[$count] = Array(\n";
+ print FILE "\t\t\t\"host\" => \"$ldap_host[$count]\",\n";
+ print FILE "\t\t\t\"base\" => \"$ldap_base[$count]\"";
+ if ($ldap_name[$count]) {
+ print FILE ",\n\t\t\t\"name\" => \"$ldap_name[$count]\"";
+ }
+ if ($ldap_port[$count]) {
+ print FILE ",\n\t\t\t\"port\" => \"$ldap_port[$count]\"";
+ }
+ if ($ldap_charset[$count]) {
+ print FILE ",\n\t\t\t\"charset\" => \"$ldap_charset[$count]\"";
+ }
+ if ($ldap_maxrows[$count]) {
+ print FILE ",\n\t\t\t\"maxrows\" => \"$ldap_maxrows[$count]\"";
+ }
+ print FILE ");\n\n";
+ }
+
print FILE "\t\$motd = \"$motd\";\n";
print FILE "?>\n";
// functions/abook_ldap_server.php for a list of possible
// parameters
- $ldap_server[0] = Array("host" => "memberdir.netscape.com",
- "name" => "Netcenter Member Directory",
- "base" => "ou=member_directory,o=netcenter.com");
-
- $ldap_server[1] = Array("host" => "ldap.bigfoot.com",
- "name" => "Bigfoot Directory",
- "base" => "",
- "charset" => "iso8859-1");
+ $ldap_server[0] = Array(
+ "host" => "memberdir.netscape.com",
+ "name" => "Netcenter Member Directory",
+ "base" => "ou=member_directory,o=netcenter.com");
+
+ $ldap_server[1] = Array(
+ "host" => "ldap.bigfoot.com",
+ "name" => "Bigfoot Directory",
+ "base" => "",
+ "charset" => "iso8859-1");
?>
******************************************************************************/
function sqimap_mailbox_list ($imap_stream) {
global $load_prefs_php, $prefs_php, $config_php, $data_dir, $username, $list_special_folders_first;
- global $special_folders;
+ global $trash_folder, $sent_folder;
+ global $move_to_trash, $move_to_sent;
$inbox_in_list = false;
$inbox_subscribed = false;
/** Now, lets sort for special folders **/
for ($i = 0; $i < count($boxes); $i++) {
- if ($boxes[$i]["unformatted"] == $special_folders[0]) {
+ if (strtolower($boxes[$i]["unformatted"]) == "inbox") {
$boxesnew[0] = $boxes[$i];
$boxes[$i]["used"] = true;
}
if ($list_special_folders_first == true) {
for ($i = 0; $i < count($boxes); $i++) {
- for ($j = 1; $j < count($special_folders); $j++) {
- if (substr($boxes[$i]["unformatted"], strlen($folder_prefix), strlen($special_folders[$j])) == $special_folders[$j]) {
- $pos = count($boxesnew);
- $boxesnew[$pos] = $boxes[$i];
- $boxes[$i]["used"] = true;
- }
+ if (($boxes[$i]["unformatted"] == $trash_folder) && ($move_to_trash)) {
+ $pos = count($boxesnew);
+ $boxesnew[$pos] = $boxes[$i];
+ $boxes[$i]["used"] = true;
+ }
+ else if (($boxes[$i]["unformatted"] == $sent_folder) && ($move_to_sent)) {
+ $pos = count($boxesnew);
+ $boxesnew[$pos] = $boxes[$i];
+ $boxes[$i]["used"] = true;
}
}
}
for ($i = 0; $i < count($boxes); $i++) {
- if (($boxes[$i]["unformatted"] != $special_folders[0]) &&
+ if ((strtolower($boxes[$i]["unformatted"]) != "inbox") &&
($boxes[$i]["used"] == false)) {
$pos = count($boxesnew);
$boxesnew[$pos] = $boxes[$i];
** Returns a list of all folders, subscribed or not
******************************************************************************/
function sqimap_mailbox_list_all ($imap_stream) {
- global $special_folders, $list_special_folders_first, $folder_prefix;
+ global $list_special_folders_first, $folder_prefix;
if (!function_exists ("ary_sort"))
include ("../functions/array.php");
$imap_stream = sqimap_login($username, $key, $imapServerAddress, $imapPort, 1);
if (sqimap_mailbox_exists ($imap_stream, $sent_folder)) {
sqimap_append ($imap_stream, $sent_folder, $length);
+ echo "sqimap_append ($imap_stream, $sent_folder, $length)";
write822Header ($imap_stream, $t, $c, $b, $subject);
writeBody ($imap_stream, $body);
sqimap_append_done ($imap_stream);
// Delete the files uploaded for attaching (if any).
deleteAttachments();
+ exit;
}
?>
echo _("Delete Folder");
echo "</B></TD></TR>";
echo "<TR><TD BGCOLOR=\"$color[4]\" ALIGN=CENTER>";
+
$count_special_folders = 0;
- for ($i = 0; $i < count($special_folders); $i++) {
- for ($p = 0; $p < count($special_folders); $p++) {
- if ($boxes[$i]["unformatted"] == $special_folders[$p]) {
- $count_special_folders++;
- }
- }
- }
+ for ($p = 0; $p < count($boxes); $p++) {
+ if (strtolower($boxes[$i]["unformatted"]) == "inbox")
+ $count_special_folders++;
+ else if ($boxes[$i]["unformatted"] == $trash_folder)
+ $count_special_folders++;
+ else if ($boxes[$i]["unformatted"] == $sent_folder)
+ $count_special_folders++;
+ }
if ($count_special_folders < count($boxes)) {
echo "<FORM ACTION=\"folders_delete.php\" METHOD=\"POST\">\n";
echo "<TT><SELECT NAME=mailbox>\n";
for ($i = 0; $i < count($boxes); $i++) {
$use_folder = true;
- for ($p = 0; $p < count($special_folders); $p++) {
- if ($boxes[$i]["unformatted"] == $special_folders[$p]) {
- $use_folder = false;
- } else if (($trash_folder) && (substr($boxes[$i]["unformatted"], 0, strlen($trash_folder)) == $trash_folder)) {
- $use_folder = false;
- }
- }
- if ($use_folder == true) {
+ if ((strtolower($boxes[$i]["unformatted"]) != "inbox") &&
+ ($boxes[$i]["unformatted"] != $trash_folder) &&
+ ($boxes[$i]["unformatted"] != $sent_folder))
+ {
$box = $boxes[$i]["unformatted-dm"];
$box2 = replace_spaces($boxes[$i]["formatted"]);
echo " <OPTION VALUE=\"$box\">$box2\n";
if (count($boxes[$i]["flags"]) > 0) {
for ($j = 0; $j < count($boxes[$i]["flags"]); $j++) {
if ($boxes[$i]["flags"][$j] != "noinferiors") {
- if (($boxes[$i]["unformatted"] == $special_folders[0]) && ($default_sub_of_inbox == true)) {
+ if ((strtolower($boxes[$i]["unformatted"]) == "inbox") && ($default_sub_of_inbox == true)) {
$box = $boxes[$i]["unformatted"];
$box2 = replace_spaces($boxes[$i]["formatted"]);
echo "<OPTION SELECTED VALUE=\"$box\">$box2\n";
}
}
} else {
- if (($boxes[$i]["unformatted"] == $special_folders[0]) && ($default_sub_of_inbox == true)) {
+ if ((strtolower($boxes[$i]["unformatted"]) == "inbox") && ($default_sub_of_inbox == true)) {
$box = $boxes[$i]["unformatted"];
$box2 = replace_spaces($boxes[$i]["formatted"]);
echo "<OPTION SELECTED VALUE=\"$box\">$box2\n";
echo "<TT><SELECT NAME=old>\n";
for ($i = 0; $i < count($boxes); $i++) {
$use_folder = true;
- for ($p = 0; $p < count($special_folders); $p++) {
- if ($boxes[$i]["unformatted"] == $special_folders[$p]) {
- $use_folder = false;
- } else if (($trash_folder) && (substr($boxes[$i]["unformatted"], 0, strlen($trash_folder)) == $trash_folder)) {
- $use_folder = false;
- }
- }
- if ($use_folder == true) {
+
+ if ((strtolower($boxes[$i]["unformatted"]) != "inbox") &&
+ ($boxes[$i]["unformatted"] != $trash_folder) &&
+ ($boxes[$i]["unformatted"] != $sent_folder))
+ {
$box = $boxes[$i]["unformatted-dm"];
$box2 = replace_spaces($boxes[$i]["formatted"]);
echo " <OPTION VALUE=\"$box\">$box2\n";
echo "<TT><SELECT NAME=mailbox>\n";
for ($i = 0; $i < count($boxes); $i++) {
$use_folder = true;
- for ($p = 0; $p < count($special_folders); $p++) {
- if ($boxes[$i]["unformatted"] == $special_folders[$p]) {
- $use_folder = false;
- } else if (($trash_folder) && (substr($boxes[$i]["unformatted"], 0, strlen($trash_folder)) == $trash_folder)) {
- $use_folder = false;
- }
- }
- if ($use_folder == true) {
+ if ((strtolower($boxes[$i]["unformatted"]) != "inbox") &&
+ ($boxes[$i]["unformatted"] != $trash_folder) &&
+ ($boxes[$i]["unformatted"] != $sent_folder))
+ {
$box = $boxes[$i]["unformatted-dm"];
$box2 = replace_spaces($boxes[$i]["formatted"]);
echo " <OPTION VALUE=\"$box\">$box2\n";
echo "<tt><select name=mailbox>";
for ($i = 0; $i < count($boxes_all); $i++) {
$use_folder = true;
- for ($p = 0; $p < count ($boxes); $p++) {
- if ($boxes_all[$i]["unformatted"] == $boxes[$p]["unformatted"]) {
- $use_folder = false;
- continue;
- }
- }
- if ($use_folder == true) {
+ for ($p = 0; $p < count ($boxes); $p++) {
+ if ($boxes_all[$i]["unformatted"] == $boxes[$p]["unformatted"]) {
+ $use_folder = false;
+ continue;
+ } else if ($boxes_all[$i]["unformatted-dm"] == $folder_prefix) {
+ $use_folder = false;
+ }
+ }
+ if ($use_folder == true) {
$box = $boxes_all[$i]["unformatted-dm"];
$box2 = replace_spaces($boxes_all[$i]["formatted"]);
echo " <OPTION VALUE=\"$box\">$box2\n";
echo "<HTML>";
- function formatMailboxName($imapConnection, $mailbox, $real_box, $delimeter, $color, $move_to_trash) {
- global $folder_prefix;
- require ("../config/config.php");
+ function formatMailboxName($imapConnection, $mailbox, $real_box, $delimeter, $color) {
+ global $folder_prefix, $trash_folder, $sent_folder;
+ global $color, $move_to_sent, $move_to_trash;
$mailboxURL = urlencode($real_box);
sqimap_mailbox_select ($imapConnection, $real_box);
$line .= "<B>";
$special_color = false;
- for ($i = 0; $i < count($special_folders); $i++) {
- if (((substr($real_box, strlen($folder_prefix), strlen($special_folders[$i])) == $special_folders[$i]) || ($real_box == $special_folders[0])) && ($use_special_folder_color == true))
- $special_color = true;
- }
+ if ((strtolower($real_box) == "inbox") ||
+ (($real_box == $trash_folder) && ($move_to_trash)) ||
+ (($real_box == $sent_folder) && ($move_to_sent)))
+ $special_color = true;
if ($special_color == true) {
$line .= "<a href=\"right_main.php?sort=0&startMessage=1&mailbox=$mailboxURL\" target=\"right\" style=\"text-decoration:none\"><FONT COLOR=\"$color[11]\">";
$line .= " <small>($numUnseen)</small>";
}
- if (($move_to_trash == true) && (substr($real_box, strlen($folder_prefix), strlen($trash_folder)) == $trash_folder)) {
+ if (($move_to_trash == true) && ($real_box == $trash_folder)) {
$urlMailbox = urlencode($real_box);
$line .= "<small>";
$line .= " (<B><A HREF=\"empty_trash.php?numMessages=$numMessages&mailbox=$urlMailbox\" TARGET=right style=\"text-decoration:none\">"._("purge")."</A></B>)";
$line .= replace_spaces(readShortMailboxName($mailbox, $delimeter));
$line .= "</FONT>";
} else {
- $line .= formatMailboxName($imapConnection, $mailbox, $boxes[$i]["unformatted"], $delimeter, $color, $move_to_trash);
+ $line .= formatMailboxName($imapConnection, $mailbox, $boxes[$i]["unformatted"], $delimeter, $color);
}
} else {
- $line .= formatMailboxName($imapConnection, $mailbox, $boxes[$i]["unformatted"], $delimeter, $color, $move_to_trash);
+ $line .= formatMailboxName($imapConnection, $mailbox, $boxes[$i]["unformatted"], $delimeter, $color);
}
echo "$line<BR>";
}
}
}
+ $folder_prefix = getPref($data_dir, $username, "folder_prefix");
+ if ($folder_prefix == "")
+ $folder_prefix = $default_folder_prefix;
+
+ /** Load special folders **/
+ $new_trash_folder = getPref($data_dir, $username, "trash_folder");
+ if (($new_trash_folder == "") && ($move_to_trash == true))
+ $trash_folder = $folder_prefix . $trash_folder;
+ else
+ $trash_folder = $new_trash_folder;
+
+ /** Load special folders **/
+ $new_sent_folder = getPref($data_dir, $username, "sent_folder");
+ if (($new_sent_folder == "") && ($move_to_sent == true))
+ $sent_folder = $folder_prefix . $sent_folder;
+ else
+ $sent_folder = $new_sent_folder;
+
+ /** Load the user's sent folder preferences **/
+ $move_to_sent = getPref($data_dir, $username, "move_to_sent");
+ if ($move_to_sent == "")
+ $move_to_sent = $default_move_to_sent;
/** Load the user's trash folder preferences **/
$move_to_trash = getPref($data_dir, $username, "move_to_trash");
$left_size = 200;
}
- $folder_prefix = getPref($data_dir, $username, "folder_prefix");
- if ($folder_prefix == "")
- $folder_prefix = $default_folder_prefix;
-
$editor_size = getPref($data_dir, $username, "editor_size");
if ($editor_size == "")
$editor_size = 76;
echo " </TD>";
echo " </TR>";
- echo "</TABLE>";
+ // TRASH FOLDER
- echo "<TABLE WIDTH=100% COLS=2 ALIGN=CENTER>\n";
- // MOVE_TO_TRASH
- echo " <TR>";
- echo " <TD WIDTH=60% ALIGN=RIGHT>";
- echo _("Move deleted messages to ");
- echo "\"$trash_folder\"?";
- echo " </TD>";
- echo " <TD WIDTH=40% ALIGN=LEFT>";
- if ($move_to_trash == true)
- echo " <INPUT TYPE=RADIO NAME=movetotrash VALUE=1 CHECKED> True<BR>";
- else
- echo " <INPUT TYPE=RADIO NAME=movetotrash VALUE=1> True<BR>";
+ echo "<tr><td align=right>";
+ echo _("Trash Folder:");
+ echo "</td><td>";
+ echo "<TT><SELECT NAME=trash>\n";
+ if ($move_to_trash == true)
+ echo "<option value=none>" . _("Don't use Trash");
+ else
+ echo "<option value=none selected>" . _("Do not use Trash");
- if ($move_to_trash == false)
- echo " <INPUT TYPE=RADIO NAME=movetotrash VALUE=0 CHECKED> False";
- else
- echo " <INPUT TYPE=RADIO NAME=movetotrash VALUE=0> False";
+ for ($i = 0; $i < count($boxes); $i++) {
+ $use_folder = true;
+ if (strtolower($boxes[$i]["unformatted"]) == "inbox") {
+ $use_folder = false;
+ }
+ if ($use_folder == true) {
+ $box = $boxes[$i]["unformatted-dm"];
+ $box2 = replace_spaces($boxes[$i]["formatted"]);
+ if (($boxes[$i]["unformatted"] == $trash_folder) && ($move_to_trash == true))
+ echo " <OPTION SELECTED VALUE=\"$box\">$box2\n";
+ else
+ echo " <OPTION VALUE=\"$box\">$box2\n";
+ }
+ }
+ echo "</SELECT></TT>\n";
+ echo "</td></tr>";
- echo " </TD>";
- echo " </TR>";
+ // SENT FOLDER
+
+ echo "<tr><td align=right>";
+ echo _("Sent Folder:");
+ echo "</td><td>";
+ echo "<TT><SELECT NAME=sent>\n";
+ if ($move_to_sent == true)
+ echo "<option value=none>" . _("Don't use Sent");
+ else
+ echo "<option value=none selected>" . _("Do not use Sent");
+
+ for ($i = 0; $i < count($boxes); $i++) {
+ $use_folder = true;
+ if (strtolower($boxes[$i]["unformatted"]) == "inbox") {
+ $use_folder = false;
+ }
+ if ($use_folder == true) {
+ $box = $boxes[$i]["unformatted-dm"];
+ $box2 = replace_spaces($boxes[$i]["formatted"]);
+ if (($boxes[$i]["unformatted"] == $sent_folder) && ($move_to_sent == true))
+ echo " <OPTION SELECTED VALUE=\"$box\">$box2\n";
+ else
+ echo " <OPTION VALUE=\"$box\">$box2\n";
+ }
+ }
+ echo "</SELECT></TT>\n";
+ echo "</td></tr>";
+
+
+ echo "</TABLE>";
+
+ echo "<TABLE WIDTH=100% COLS=2 ALIGN=CENTER>\n";
// SHOW_NUM
echo " <TR>";
setPref($data_dir, $username, "email_address", stripslashes($email_address));
setPref($data_dir, $username, "reply_to", stripslashes($reply_to));
setPref($data_dir, $username, "chosen_theme", $chosentheme);
- setPref($data_dir, $username, "move_to_trash", $movetotrash);
setPref($data_dir, $username, "show_num", $shownum);
setPref($data_dir, $username, "wrap_at", $wrapat);
setPref($data_dir, $username, "editor_size", $editorsize);
setPref($data_dir, $username, "language", $language);
setPref($data_dir, $username, "left_size", $leftsize);
setPref($data_dir, $username, "folder_prefix", $folderprefix);
+
+ if ($trash != "none") {
+ setPref($data_dir, $username, "move_to_trash", true);
+ setPref($data_dir, $username, "trash_folder", $trash);
+ } else {
+ setPref($data_dir, $username, "move_to_trash", false);
+ setPref($data_dir, $username, "trash_folder", "");
+ }
+
+ if ($sent != "none") {
+ setPref($data_dir, $username, "move_to_sent", true);
+ setPref($data_dir, $username, "sent_folder", $sent);
+ } else {
+ setPref($data_dir, $username, "move_to_sent", false);
+ setPref($data_dir, $username, "sent_folder", "");
+ }
setSig($data_dir, $username, stripslashes($signature_edit));