Correction d'un bug empechant le tri par lettre des boites mails

This commit is contained in:
franck 2007-04-19 07:35:36 +00:00
parent 27c70f2047
commit 9f5ba7ea82
1 changed files with 25 additions and 25 deletions

View File

@ -106,13 +106,13 @@ class m_mail {
global $err,$cuid,$db; global $err,$cuid,$db;
$err->log("mail","enum_doms_mails",$dom); $err->log("mail","enum_doms_mails",$dom);
if($letter == "@") if($letter == "@")
$letter = ""; $letter = "";
else else
$letter = "%$letter"; $letter .= "%";
$db->query("SELECT mail,pop,alias FROM mail_domain WHERE mail LIKE '".addslashes($letter)."@".addslashes($dom)."' AND uid='$cuid' AND type=0;"); $db->query("SELECT mail,pop,alias FROM mail_domain WHERE mail LIKE '".addslashes($letter)."@".addslashes($dom)."' AND uid='$cuid' AND type=0;");
$res=array(); $i=0; $res=array(); $i=0;
while ($db->next_record()) { while ($db->next_record()) {
if ($db->f("pop")) { if ($db->f("pop")) {
$size=0; $size=0;
$r=mysql_query("SELECT size FROM size_mail WHERE alias='".str_replace("@","_",$db->f("mail"))."';"); $r=mysql_query("SELECT size FROM size_mail WHERE alias='".str_replace("@","_",$db->f("mail"))."';");
list($size)=@mysql_fetch_array($r); list($size)=@mysql_fetch_array($r);
@ -120,11 +120,11 @@ class m_mail {
} else $size=0; } else $size=0;
if ($db->f("pop")) { if ($db->f("pop")) {
$login=str_replace("@","_",$db->f("mail")); $login=str_replace("@","_",$db->f("mail"));
$account=str_replace($login,"",$db->f("alias")); $account=str_replace($login,"",$db->f("alias"));
} else { } else {
$account=$db->f("alias"); $account=$db->f("alias");
} }
$res[]=array("mail" => $db->f("mail"), "pop" => $db->f("pop"), $res[]=array("mail" => $db->f("mail"), "pop" => $db->f("pop"),
"alias"=>$account,"size"=>$size); "alias"=>$account,"size"=>$size);
$i++; $i++;
} }
@ -172,14 +172,14 @@ class m_mail {
global $err,$db,$cuid; global $err,$db,$cuid;
$err->log("mail","get_mail_details",$mail); $err->log("mail","get_mail_details",$mail);
$db->query("SELECT mail,pop,alias FROM mail_domain WHERE mail='$mail' AND uid='$cuid';"); $db->query("SELECT mail,pop,alias FROM mail_domain WHERE mail='$mail' AND uid='$cuid';");
if (!$db->next_record()) { if (!$db->next_record()) {
$err->raise("mail",3,$mail); $err->raise("mail",3,$mail);
return false; return false;
} }
$pop=$db->f("pop"); $pop=$db->f("pop");
if ($pop) { if ($pop) {
$login=str_replace("@","_",$db->f("mail")); $login=str_replace("@","_",$db->f("mail"));
$account=str_replace($login,"",$db->f("alias")); $account=str_replace($login,"",$db->f("alias"));
} else { } else {
$account=$db->f("alias"); $account=$db->f("alias");
} }
@ -391,12 +391,12 @@ class m_mail {
if (!$db->next_record()) { if (!$db->next_record()) {
$err->raise("mail",6,$dom); $err->raise("mail",6,$dom);
return false; return false;
} }
$db->query("SELECT mail FROM mail_domain WHERE mail='".$mail."@".$dom."' AND uid='$cuid';"); $db->query("SELECT mail FROM mail_domain WHERE mail='".$mail."@".$dom."' AND uid='$cuid';");
if ($db->next_record()) { if ($db->next_record()) {
$err->raise("mail",7,$mail."@".$dom); $err->raise("mail",7,$mail."@".$dom);
return false; return false;
} }
/* QuotaCheck */ /* QuotaCheck */
if (!$quota->cancreate("mail")) { if (!$quota->cancreate("mail")) {
@ -427,12 +427,12 @@ class m_mail {
if (!$db->next_record()) { if (!$db->next_record()) {
$err->raise("mail",3,$dom); $err->raise("mail",3,$dom);
return false; return false;
} }
/* Ok, le mail existe, on le detruit donc... */ /* Ok, le mail existe, on le detruit donc... */
$t=explode("@",$mail); $t=explode("@",$mail);
$mdom=$t[0]; $dom=$t[1]; $mdom=$t[0]; $dom=$t[1];
$pop=$db->f("pop"); $pop=$db->f("pop");
$db->query("DELETE FROM mail_domain WHERE mail='$mail' AND uid='$cuid';"); $db->query("DELETE FROM mail_domain WHERE mail='$mail' AND uid='$cuid';");
if ($pop=="1") { if ($pop=="1") {
@ -451,7 +451,7 @@ class m_mail {
function check_slave_account($login,$pass) { function check_slave_account($login,$pass) {
global $db,$err; global $db,$err;
$db->query("SELECT * FROM mxaccount WHERE login='$login' AND pass='$pass';"); $db->query("SELECT * FROM mxaccount WHERE login='$login' AND pass='$pass';");
if ($db->next_record()) { if ($db->next_record()) {
return true; return true;
} }
return false; return false;
@ -459,7 +459,7 @@ class m_mail {
/* ----------------------------------------------------------------- */ /* ----------------------------------------------------------------- */
/** /**
* Out (echo) the complete mx-hosted domain list : * Out (echo) the complete mx-hosted domain list :
*/ */
function echo_domain_list() { function echo_domain_list() {
global $db,$err; global $db,$err;
@ -596,7 +596,7 @@ class m_mail {
if (!$db->next_record()) { if (!$db->next_record()) {
$err->raise("mail",6,$dom); $err->raise("mail",6,$dom);
return false; return false;
} }
*/ */
/* Effacement de tous les mails de ce domaine : */ /* Effacement de tous les mails de ce domaine : */
@ -611,9 +611,9 @@ class m_mail {
} }
} }
/* Effacement du domaine himself */ /* Effacement du domaine himself */
$db->query("DELETE FROM mail_domain WHERE mail LIKE '%@$dom';"); $db->query("DELETE FROM mail_domain WHERE mail LIKE '%@$dom';");
$db->query("DELETE FROM mail_users WHERE alias LIKE '%@$dom' OR alias LIKE '%\\_$dom';"); $db->query("DELETE FROM mail_users WHERE alias LIKE '%@$dom' OR alias LIKE '%\\_$dom';");
$db->query("DELETE FROM mail_alias WHERE mail LIKE '%\\_$dom';"); $db->query("DELETE FROM mail_alias WHERE mail LIKE '%\\_$dom';");
$db->query("DELETE FROM mail_domain WHERE mail='$dom';"); $db->query("DELETE FROM mail_domain WHERE mail='$dom';");
return true; return true;
} }
@ -629,7 +629,7 @@ class m_mail {
global $err,$cuid,$db,$mem; global $err,$cuid,$db,$mem;
$err->log("mail","alternc_add_mx_domain",$dom); $err->log("mail","alternc_add_mx_domain",$dom);
$db->query("INSERT INTO mail_domain (mail,alias) VALUES ('$dom','$dom');"); $db->query("INSERT INTO mail_domain (mail,alias) VALUES ('$dom','$dom');");
// Create the postmaster email for this new domain : // Create the postmaster email for this new domain :
$this->add_mail($dom,"postmaster",0,"",$mem->user["mail"]); $this->add_mail($dom,"postmaster",0,"",$mem->user["mail"]);
return true; return true;
} }
@ -656,7 +656,7 @@ class m_mail {
/** /**
* Exports all the mail related information for an account. * Exports all the mail related information for an account.
* @access private * @access private
* EXPERIMENTAL 'sid' function ;) * EXPERIMENTAL 'sid' function ;)
*/ */
function alternc_export($tmpdir) { function alternc_export($tmpdir) {
global $db,$err; global $db,$err;
@ -691,14 +691,14 @@ class m_mail {
} }
$str.=" </address>\n"; $str.=" </address>\n";
} }
} }
$str.=" </domain>\n"; $str.=" </domain>\n";
} }
$str.="</mail>\n"; $str.="</mail>\n";
fclose($f); fclose($f);
if ($onepop) { if ($onepop) {
// Now do the tarball of all pop accounts : // Now do the tarball of all pop accounts :
exec("/bin/tar -czf ".escapeshellarg($tmpdir."/mail.tar.gz")." -T ".escapeshellarg($tmpfile)); exec("/bin/tar -czf ".escapeshellarg($tmpdir."/mail.tar.gz")." -T ".escapeshellarg($tmpfile));
} }
@unlink($tmpfile); @unlink($tmpfile);
return $str; return $str;
@ -707,11 +707,11 @@ class m_mail {
/* ----------------------------------------------------------------- */ /* ----------------------------------------------------------------- */
/** /**
* Returns the declaration of all xml rpc exportable functions * Returns the declaration of all xml rpc exportable functions
* related to mail service. Each method is returned as an array * related to mail service. Each method is returned as an array
* containing the function name, function, signature and docstring. * containing the function name, function, signature and docstring.
* @access private * @access private
* EXPERIMENTAL 'sid' function ;) * EXPERIMENTAL 'sid' function ;)
*/ */
function alternc_xmlrpc_server() { function alternc_xmlrpc_server() {
} }