You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
127 lines
4.5 KiB
127 lines
4.5 KiB
<?php
|
|
|
|
/**
|
|
* Page de fonctions permettant la la sauvegarde et la restauration des données de la base de la messagerie.
|
|
*/
|
|
|
|
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/connexion.php");
|
|
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php");
|
|
|
|
/**
|
|
* Fonction générant un fichier CSV avec le contenu des alias virtuels d'un utilisateur.
|
|
* Ce fichier est créé à la volée et se popose à l'utilisateur pour téléchargement.
|
|
*/
|
|
function exportAliasVirtuelsUtilisateur($pdo,$utilisateur) {
|
|
try {
|
|
// Filtre des alias virtuels de l'utilisateur courant
|
|
$req = 'SELECT * FROM postfix_alias_virtuels WHERE destination=:destination';
|
|
$sql=$pdo->prepare($req);
|
|
$sql->bindValue(':destination',$utilisateur);
|
|
$sql->execute();
|
|
|
|
$liste_alias_virtuels = $sql->fetchAll(PDO::FETCH_ASSOC);
|
|
$nom_fichier_csv="Alias-virtuels_".$utilisateur."_".date('d-m-Y').".csv";
|
|
|
|
// Entêtes HTTP permettant le téléchargement à la volée du CSV
|
|
header("Content-Disposition: attachment; filename=\"$nom_fichier_csv\"");
|
|
header("Content-Type: text/csv");
|
|
|
|
foreach ($liste_alias_virtuels as $alias_virtuel => $champ_alias_virtuel) {
|
|
echo implode(":", $champ_alias_virtuel)."\n";
|
|
}
|
|
|
|
// Le fait de tuer la page enclenche la demande de téléchargement à l'utilisateur qui ne quitte visuellement jamais la page des paramètres
|
|
die();
|
|
}
|
|
catch (\Exception $e) {
|
|
die ("Erreur de requête d'export des alias virtuels utilisateur en CSV : ".$e->getMessage());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Fonction générant un fichier CSV avec le contenu de la base Sqlite demandé par un administrateur.
|
|
* Ce fichier est créé à la volée et se popose à l'administrateur pour téléchargement.
|
|
*/
|
|
function exportDonneesMessagerie($pdo,$types_donnees_a_exporter) {
|
|
try {
|
|
$nom_fichier_csv="Données_Courtail_".date('d-m-Y').".csv";
|
|
|
|
// Entêtes HTTP permettant le téléchargement à la volée du CSV
|
|
header("Content-Disposition: attachment; filename=\"$nom_fichier_csv\"");
|
|
header("Content-Type: text/csv");
|
|
|
|
foreach ($types_donnees_a_exporter as $cle_donnees_a_exporter => $type_donnee_a_exporter) {
|
|
switch ($type_donnee_a_exporter) {
|
|
case "alias_virtuels":
|
|
$req = 'SELECT * FROM postfix_alias_virtuels';
|
|
$sql=$pdo->prepare($req);
|
|
$sql->execute();
|
|
|
|
$liste_alias_virtuels = $sql->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
echo "#~// Alias vituels\n";
|
|
foreach ($liste_alias_virtuels as $alias_virtuel => $champ_alias_virtuel) {
|
|
echo implode(":", $champ_alias_virtuel)."\n";
|
|
}
|
|
break;
|
|
case "domaines":
|
|
$req = 'SELECT * FROM postfix_domaines';
|
|
$sql=$pdo->prepare($req);
|
|
$sql->execute();
|
|
|
|
$liste_domaines = $sql->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
echo "#~// Domaines\n";
|
|
foreach ($liste_domaines as $domaine => $champ_domaine) {
|
|
echo implode(":", $champ_domaine)."\n";
|
|
}
|
|
break;
|
|
case "liste_noire_destinataires":
|
|
$req = 'SELECT * FROM postfix_liste_noire_destinataires';
|
|
$sql=$pdo->prepare($req);
|
|
$sql->execute();
|
|
|
|
$liste_liste_noire_destinataires = $sql->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
echo "#~// Liste noire destinataires\n";
|
|
foreach ($liste_liste_noire_destinataires as $liste_noire_destinataire => $champ_liste_noire_destinataire) {
|
|
echo implode(":", $champ_liste_noire_destinataire)."\n";
|
|
}
|
|
break;
|
|
case "liste_noire_expediteurs":
|
|
$req = 'SELECT * FROM postfix_liste_noire_expediteurs';
|
|
$sql=$pdo->prepare($req);
|
|
$sql->execute();
|
|
|
|
$liste_liste_noire_expediteurs = $sql->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
echo "#~// Liste noire expéditeur\n";
|
|
foreach ($liste_liste_noire_expediteurs as $liste_noire_expediteur => $champ_liste_noire_expediteur) {
|
|
echo implode(":", $champ_liste_noire_expediteur)."\n";
|
|
}
|
|
break;
|
|
case "utilisateurs":
|
|
$req = 'SELECT * FROM postfix_utilisateurs';
|
|
$sql=$pdo->prepare($req);
|
|
$sql->execute();
|
|
|
|
$liste_utilisateurs = $sql->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
echo "#~// Utilisateurs\n";
|
|
foreach ($liste_utilisateurs as $liste_utilisateur => $champ_utilisateur) {
|
|
echo implode(":", $champ_utilisateur)."\n";
|
|
}
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
// Le fait de tuer la page enclenche la demande de téléchargement à l'utilisateur qui ne quitte visuellement jamais la page des paramètres
|
|
die();
|
|
}
|
|
catch (\Exception $e) {
|
|
die ("Erreur de requête d'export des données de la base en CSV : ".$e->getMessage());
|
|
}
|
|
}
|
|
|
|
?>
|