Migration
This commit is contained in:
331
0.7.1/daemon/GestionMail.php
Executable file
331
0.7.1/daemon/GestionMail.php
Executable file
@@ -0,0 +1,331 @@
|
||||
<?php
|
||||
/*
|
||||
Copyright (C) 2007 Mercier Benjamin
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
/*
|
||||
[ERREUR 1] => Erreur lors de la s<>lection du type dans la BDD
|
||||
[ERREUR 2] => Erreur lors de l'ajout d'un compte dans la BDD
|
||||
[ERREUR 3] => Erreur lors de la mise <20> jour du statut du compte dans la BDD
|
||||
[ERREUR 4] => Erreur lors de l'ajout d'un alias dans la BDD
|
||||
[ERREUR 5] => Erreur lors de la mise <20> jour du statut du compte dans la BDD
|
||||
[ERREUR 6] => Erreur lors de la suppression du domaine email dans la BDD
|
||||
[ERREUR 7] => Erreur lors de la s<>lection du type dans la BDD
|
||||
[ERREUR 8] => Erreur lors de la suppression du compte email dans la BDD
|
||||
[ERREUR 9] => Erreur lors de la suppression du dossier complet du domaine email
|
||||
[ERREUR 10] => Erreur lors de la suppression de l'entr<74>e compte dans la BDD
|
||||
[ERREUR 11] => Erreur lors de la suppression du domaine email dans la BDD
|
||||
[ERREUR 12] => Erreur lors de la suppression de l'alias email dans la BDD
|
||||
[ERREUR 13] => Erreur lors de la suppression de l'entr<74>e alias dans la BDD
|
||||
[ERREUR 14] => Le MX ne correspond pas.
|
||||
[ERREUR 15] => Erreur lors de la s<>lection du type dans la BDD.
|
||||
[ERREUR 16] => Erreur lors de l'ajout du domaine email dans la BDD.
|
||||
*/
|
||||
|
||||
// Annulation de la connexion MySql locale :
|
||||
$ConnexionLocale = "non";
|
||||
|
||||
// Inclusion du core
|
||||
require ('/var/www/daemon/system/core.php');
|
||||
|
||||
/* -------- */
|
||||
/* Cr<43>ation */
|
||||
/* -------- */
|
||||
$ListMail = $ConnexionPanel->Select ("*", "email", "Status='1'", "", "", "", "");
|
||||
if ( $ListMail != FALSE )
|
||||
{
|
||||
$CountMail = count ($ListMail);
|
||||
echo "\nCompte(s) ou alias en attente de cr<63>ation : ".$CountMail."\n";
|
||||
|
||||
for ($i=0; $i < $CountMail; $i++)
|
||||
{
|
||||
if ( $ListMail[$i]["Type"] == "alias" )
|
||||
{
|
||||
echo "Alias de ".$ListMail[$i]["Utilisateur"]." : ".$ListMail[$i]["Nom"];
|
||||
}
|
||||
elseif ( $ListMail[$i]["Type"] == "compte" )
|
||||
{
|
||||
echo "Compte de ".$ListMail[$i]["Utilisateur"]." : ".$ListMail[$i]["Nom"];
|
||||
}
|
||||
|
||||
$Email = explode ('@', $ListMail[$i]["Nom"]);
|
||||
$Domaine = $Email[1];
|
||||
$VerifMX = getmxrr($Domaine, $Mxhost, $MxWeight);
|
||||
if ( $VerifMX != FALSE )
|
||||
{
|
||||
$u=0;
|
||||
foreach ($Mxhost as $key => $value)
|
||||
{
|
||||
$ServeurMail[$value] = $MxWeight[$u];
|
||||
$u++;
|
||||
}
|
||||
asort($ServeurMail);
|
||||
|
||||
if ( (current(array_keys($ServeurMail)) == "mail.kelio.org") or (gethostbyname(current(array_keys($ServeurMail))) == gethostbyname("mail.kelio.org")) )
|
||||
{
|
||||
|
||||
//v<>rification du domaine dans la bdd
|
||||
$VerifMailDomain = $ConnexionPanel->Count("*", "email", "Nom LIKE '%@".$Domaine."' AND Status='2'");
|
||||
if ( $VerifMailDomain <= 0 ) { $VerifMailDomain = FALSE; } else { $VerifMailDomain = TRUE; }
|
||||
|
||||
if ( $ListMail[$i]["Type"] == "alias" )
|
||||
{
|
||||
$Champs = "source, destination";
|
||||
$Valeurs = "'".$ListMail[$i]["Nom"]."', '".$ListMail[$i]["Pointage"]."'";
|
||||
|
||||
$InsertMail = $ConnexionSystem->Insert($Champs, $Valeurs, "alias");
|
||||
if ( $InsertMail != FALSE )
|
||||
{
|
||||
|
||||
//si il n'y a pas de domaine
|
||||
if ( $VerifMailDomain == FALSE )
|
||||
{
|
||||
//on l'ajoute
|
||||
$InsertMailDomain = $ConnexionSystem->Insert("domain", "'".$Domaine."'", "domain");
|
||||
if ( $InsertMailDomain != FALSE )
|
||||
{
|
||||
$MajPanel = $ConnexionPanel->Update ("email", "Status", "2", "Nom='".$ListMail[$i]["Nom"]."'");
|
||||
if ( $MajPanel != FALSE )
|
||||
{
|
||||
echo "\t\t\t[OK]\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "\t\t\t[ERREUR 5]\n";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "\t\t\t[ERREUR 16]\n";
|
||||
}
|
||||
}
|
||||
// sinon on met <20> jour le panel
|
||||
else
|
||||
{
|
||||
$MajPanel = $ConnexionPanel->Update ("email", "Status", "2", "Nom='".$ListMail[$i]["Nom"]."'");
|
||||
if ( $MajPanel != FALSE )
|
||||
{
|
||||
echo "\t\t\t[OK]\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "\t\t\t[ERREUR 5]\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "\t\t\t[ERREUR 4]\n";
|
||||
}
|
||||
}
|
||||
elseif ( $ListMail[$i]["Type"] == "compte" )
|
||||
{
|
||||
$Champs = "email, password";
|
||||
$Valeurs = "'".$ListMail[$i]["Nom"]."', ENCRYPT('".$ListMail[$i]["Password"]."')";
|
||||
|
||||
$InsertMail = $ConnexionSystem->Insert($Champs, $Valeurs, "mailbox");
|
||||
if ( $InsertMail != FALSE )
|
||||
{
|
||||
if ( $VerifMailDomain == FALSE )
|
||||
{
|
||||
$InsertMailDomain = $ConnexionSystem->Insert("domain", "'".$Domaine."'", "domain");
|
||||
if ( $InsertMailDomain != FALSE )
|
||||
{
|
||||
$MajPanel = $ConnexionPanel->Update("email", "Status", "2", "Nom='".$ListMail[$i]["Nom"]."'");
|
||||
if ( $MajPanel != FALSE )
|
||||
{
|
||||
$mail = "robot@kelio.org";
|
||||
mail ($ListMail[$i]['Nom'], 'Kelio.org - Cr<43>ation de votre compte email','Ce message confirme que votre adresse email '.$ListMail[$i]['Nom'].' a bien <20>t<EFBFBD> cr<63><72>e.', 'FROM: '.$mail);
|
||||
echo "\t\t\t[OK]\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "\t\t\t[ERREUR 3]\n";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "\t\t\t[ERREUR 16]\n";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$MajPanel = $ConnexionPanel->Update("email", "Status", "2", "Nom='".$ListMail[$i]["Nom"]."'");
|
||||
if ( $MajPanel != FALSE )
|
||||
{
|
||||
$mail = "robot@kelio.org";
|
||||
mail ($ListMail[$i]['Nom'], 'Kelio.org - Cr<43>ation de votre compte email','Ce message confirme que votre adresse email '.$ListMail[$i]['Nom'].' a bien <20>t<EFBFBD> cr<63><72>e.', 'FROM: '.$mail);
|
||||
echo "\t\t\t[OK]\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "\t\t\t[ERREUR 3]\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "\t\t\t[ERREUR 2]\n";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "\t\t\t[ERREUR 1]\n";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "\t\t\t[ERREUR 14]\n";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "\t\t\t[ERREUR 15]\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Aucun compte ou alias en attente de cr<63>ation\n";
|
||||
}
|
||||
|
||||
/* ----------- */
|
||||
/* Suppression */
|
||||
/* ----------- */
|
||||
$ListMail = $ConnexionPanel->Select ("*", "email", "Status='3'", "", "", "", "");
|
||||
if ( $ListMail != FALSE )
|
||||
{
|
||||
$CountMail = count ($ListMail);
|
||||
echo "\nCompte(s) ou alias en attente de suppression : ".$CountMail."\n";
|
||||
|
||||
for ($i=0; $i < $CountMail; $i++)
|
||||
{
|
||||
$Email = explode ('@', $ListMail[$i]["Nom"]);
|
||||
$Domaine = $Email[1];
|
||||
$Nom = $Email[0];
|
||||
//v<>rifier si l'utilisateur n'a pas plusieurs adresses d<>j<EFBFBD> existantes sur le m<>me domaine!
|
||||
$VerifDomGeneral = $ConnexionPanel->Count("*", "email", "Nom LIKE '%@".$Domaine."'") - 1;
|
||||
$VerifDomCompte = $ConnexionPanel->Count("*", "email", "Nom LIKE '%@".$Domaine."' AND Type='compte'") - 1;
|
||||
|
||||
if ( $VerifDomGeneral <= 0 ) { $VerifDomGeneral = FALSE; } else { $VerifDomGeneral = TRUE; }
|
||||
if ( $VerifDomCompte <= 0 ) { $VerifDomCompte = FALSE; } else { $VerifDomCompte = TRUE; }
|
||||
|
||||
|
||||
if ( $ListMail[$i]["Type"] == "alias" )
|
||||
{
|
||||
echo "Alias de ".$ListMail[$i]["Utilisateur"]." : ".$ListMail[$i]["Nom"];
|
||||
|
||||
$DeleteMail = $ConnexionSystem->Delete ("alias", "source='".$ListMail[$i]["Nom"]."'");
|
||||
if ( $DeleteMail != FALSE )
|
||||
{
|
||||
$MajPanel = $ConnexionPanel->Delete ("email", "Nom='".$ListMail[$i]["Nom"]."'");
|
||||
if ( $MajPanel != FALSE AND $VerifDomGeneral == FALSE )
|
||||
{
|
||||
$SuppressionMailDomain = $ConnexionSystem->Delete ("domain", "domain='".$Domaine."'"); // Verifier si cette req != FALSE
|
||||
if ( $SuppressionMailDomain != FALSE )
|
||||
{
|
||||
echo "\t\t\t[OK]\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "\t\t\t[ERREUR 11]\n";
|
||||
}
|
||||
}
|
||||
elseif ( $MajPanel != FALSE AND $VerifDomGeneral != FALSE )
|
||||
{
|
||||
echo "\t\t\t[OK]\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "\t\t\t[ERREUR 13]\n";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "\t\t\t[ERREUR 12]\n";
|
||||
}
|
||||
}
|
||||
|
||||
elseif ($ListMail[$i]["Type"] == "compte")
|
||||
{
|
||||
echo "Compte de ".$ListMail[$i]["Utilisateur"]." : ".$ListMail[$i]["Nom"];
|
||||
|
||||
$DeleteMail = $ConnexionSystem->Delete ("mailbox", "email='".$ListMail[$i]["Nom"]."'");
|
||||
if ( $DeleteMail != FALSE )
|
||||
{
|
||||
shell_exec("rm -Rf /var/www/mail/".$Domaine."/".$Nom);
|
||||
$dossier = "/var/www/mail/".$Domaine."/";
|
||||
|
||||
if ( $VerifDomCompte != FALSE ) // Il reste encore des comptes
|
||||
{
|
||||
$MajPanel = $ConnexionPanel->Delete ("email", "Nom='".$ListMail[$i]["Nom"]."'");
|
||||
if ( $MajPanel != FALSE )
|
||||
{
|
||||
echo "\t\t\t[OK]\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "\t\t\t[ERREUR 10]\n";
|
||||
}
|
||||
}
|
||||
else // Il ne reste plus de comptes
|
||||
{
|
||||
|
||||
$DeleteAll = shell_exec("rm -Rf /var/www/mail/".$Domaine);
|
||||
|
||||
$MajPanel = $ConnexionPanel->Delete ("email", "Nom='".$ListMail[$i]["Nom"]."'");
|
||||
if ( $MajPanel != FALSE )
|
||||
{
|
||||
if ( $VerifDomGeneral == FALSE ) // Il n'y a plus d'alias
|
||||
{
|
||||
$SuppressionMailDomain = $ConnexionSystem->Delete ("domain", "domain='".$Domaine."'");
|
||||
if ( $SuppressionMailDomain != FALSE )
|
||||
{
|
||||
echo "\t\t\t[OK]\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "\t\t\t[ERREUR 11]\n";
|
||||
}
|
||||
}// Il reste des alias
|
||||
else
|
||||
{
|
||||
echo "\t\t\t[OK]\n";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "\t\t\t[ERREUR 10]\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "\t\t\t[ERREUR 8]\n";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "\t\t\t[ERREUR 7]\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Aucun compte n'est en attente de suppression\n";
|
||||
}
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user