prepare("INSERT INTO session (id, user, domain, dateCreate, dateStart, dateEnd, what, format) VALUES (:id, :user, :domain, '".time()."', :dateStart, :dateEnd, :what, :format)"); $req->bindParam('id', $_POST['id'], PDO::PARAM_INT); $req->bindParam('user', $user, PDO::PARAM_STR); $req->bindParam('domain', $email['domain'], PDO::PARAM_STR); $req->bindParam('dateStart', $dateStartTimestamp, PDO::PARAM_INT); $req->bindParam('dateEnd', $dateEndTimestamp, PDO::PARAM_INT); $req->bindParam('what', $_POST['what'], PDO::PARAM_INT); $req->bindParam('format', $_POST['format'], PDO::PARAM_STR); $req->execute(); } catch ( PDOException $e ) { toLog(1, "INSERT in session, error : ".$e->getMessage(), 0); } echo '{"result": true}'; } // autodétection config imap if (isset($_POST['imapDetectConfig']) && isset($_POST['session_id']) && isset($_POST['user']) && isset($_POST['domain']) && isset($_POST['password'])) { $connexionSuccess = false; $mxConca = mxConca($_POST['domain']); // 1er tentative, si un paramètre est proposé par l'admin (session_id = null) try { $selectNoSession = $db->prepare("SELECT domain, imap_server, imap_port, imap_user, imap_secure, imap_auth, imap_cert FROM `open` WHERE (domain = :domain OR mx = :mx) AND session_id IS NULL ORDER BY dateCreate DESC LIMIT 1"); $selectNoSession->bindParam('domain', $_POST['domain'], PDO::PARAM_STR); $selectNoSession->bindParam('mx', $mxConca, PDO::PARAM_STR); $selectNoSession->execute(); } catch ( PDOException $e ) { toLog(1, "SELECT (no session) in open, error : ".$e->getMessage(), 0); } $imap_config_nosession = $selectNoSession->fetch(); $selectNoSession->closeCursor(); if (count($imap_config_nosession) > 1) { if ($imap_config_nosession['imap_user'] == '%e') { $imap_user = $_POST['user'].'@'.$_POST['domain']; } else { $imap_user = $_POST['user']; } $retourImapConfigNoSession = imapTestCon($_POST['session_id'], $imap_config_nosession['domain'], $imap_config_nosession['imap_server'], $imap_config_nosession['imap_port'], $imap_user, $_POST['password'], $imap_config_nosession['imap_secure'], $imap_config_nosession['imap_auth'], $imap_config_nosession['imap_cert']); if ($retourImapConfigNoSession['result'] == true) { $retourImapConfigNoSession['src'] = 'admin'; echo json_encode($retourImapConfigNoSession); $connexionSuccess = true; } } // 2ème tentative, si des paramètres sont proposé par les utilisateurs if ($connexionSuccess == false) { try { $selectSession = $db->prepare("SELECT count(*) nb, domain, imap_server, imap_port, imap_user, imap_secure, imap_auth, imap_cert FROM `open` WHERE (domain = :domain OR mx = :mx) AND session_id IS NOT NULL GROUP by imap_server, imap_port, imap_user, imap_auth, imap_cert ORDER BY nb DESC, dateCreate DESC LIMIT 1"); $selectSession->bindParam('domain', $_POST['domain'], PDO::PARAM_STR); $selectSession->bindParam('mx', $mxConca, PDO::PARAM_STR); $selectSession->execute(); } catch ( PDOException $e ) { toLog(1, "SELECT (with session) in open, error : ".$e->getMessage(), 0); } $imap_config_session = $selectSession->fetch(); $selectSession->closeCursor(); if (count($imap_config_session) > 1) { if ($imap_config_session['imap_user'] == '%e') { $imap_user = $_POST['user'].'@'.$_POST['domain']; } else { $imap_user = $_POST['user']; } $retourImapConfigSession = imapTestCon($_POST['session_id'], $imap_config_session['domain'], $imap_config_session['imap_server'], $imap_config_session['imap_port'], $imap_user, $_POST['password'], $imap_config_session['imap_secure'], $imap_config_session['imap_auth'], $imap_config_session['imap_cert']); if ($retourImapConfigSession['result'] == true) { $retourImapConfigSession['src'] = 'user'; echo json_encode($retourImapConfigSession); $connexionSuccess = true; } } } // 3ème, autodétection if ($connexionSuccess == false) { echo json_encode(imapAutoDetect($_POST['session_id'], $_POST['user'], $_POST['domain'], $_POST['password'])); } } // test connexion if (isset($_POST['imapTestCon']) && isset($_POST['session_id']) && isset($_POST['domain']) && isset($_POST['port']) && isset($_POST['user']) && isset($_POST['password']) && isset($_POST['secure']) && isset($_POST['auth']) && isset($_POST['cert'])) { echo json_encode(imapTestCon($_POST['session_id'], $_POST['domain'], $_POST['server'], $_POST['port'], $_POST['user'], $_POST['password'], $_POST['secure'], $_POST['auth'], $_POST['cert']), JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); } // Sauvegarde des folder et liste de ceux-ci if (isset($_POST['imapFolderValidation']) && isset($_POST['session_id']) && isset($_POST['imapfolder']) && isset($_POST['password'])) { try { $selectSession = $db->prepare("SELECT user, session.domain, imap_folder, dateStart, dateEnd, what, format, imap_server, imap_port, imap_user, imap_secure, imap_auth, imap_cert FROM session, open WHERE session.id = open.session_id AND session_id = :session_id LIMIT 1"); $selectSession->bindParam('session_id', $_POST['session_id'], PDO::PARAM_INT); $selectSession->execute(); } catch ( PDOException $e ) { toLog(1, "SELECT imapFolderValidation, error : ".$e->getMessage(), 0); } $imapConfig = $selectSession->fetch(); $selectSession->closeCursor(); if (count($imapConfig) > 1) { if ($imapConfig['imap_user'] == '%e') { $imap_user = myDecrypt($imapConfig['user']).'@'.$imapConfig['domain']; } else { $imap_user = myDecrypt($imapConfig['user']); } } $imapGetData = imapGetData('preview', $_POST['session_id'], $imapConfig['imap_server'], $imapConfig['imap_port'], $imap_user, $_POST['password'], $imapConfig['imap_secure'], $imapConfig['imap_auth'], $imapConfig['imap_cert'], $_POST['imapfolder'], $imapConfig['dateStart'], $imapConfig['dateEnd'], $imapConfig['what'], $imapConfig['format']); echo json_encode($imapGetData, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); // Enregistrement liste dossier & totaux : $imapfolder_json=json_encode($_POST['imapfolder']); try { $req = $db->prepare("UPDATE session SET imap_folder = :imap_folder, total_nb = :total_nb, total_size = :total_size WHERE id = :session_id"); $req->bindParam('session_id', $_POST['session_id'], PDO::PARAM_INT); $req->bindParam('imap_folder', $imapfolder_json, PDO::PARAM_STR); $req->bindParam('total_size', $imapGetData['totalSize'], PDO::PARAM_INT); $req->bindParam('total_nb', $imapGetData['totalNb'], PDO::PARAM_INT); $req->execute(); } catch ( PDOException $e ) { toLog(1, "INSERT in session, error : ".$e->getMessage(), 0); } } // Validation, mise en spooler if (isset($_POST['spoolerGo']) && isset($_POST['session_id']) && isset($_POST['password'])) { try { $selectSession = $db->prepare("SELECT user, domain, what FROM `session` WHERE id = :session_id LIMIT 1"); $selectSession->bindParam('session_id', $_POST['session_id'], PDO::PARAM_INT); $selectSession->execute(); } catch ( PDOException $e ) { toLog(1, "SELECT session error : ".$e->getMessage(), 0); } $session = $selectSession->fetch(); try { $password = myCrypt($_POST['password']); if ($session['what'] == 1) { // Requête d'archivage à exécuter $req = $db->prepare("INSERT INTO spooler (session_id, password, task, status) VALUES (:session_id, :password, 1, 2)"); $req->bindParam('session_id', $_POST['session_id'], PDO::PARAM_INT); $req->bindParam('password', $password, PDO::PARAM_STR); $req->execute(); // Requête de suppression en attente $req = $db->prepare("INSERT INTO spooler (session_id, password, task, status) VALUES (:session_id, :password, 2, 1)"); $req->bindParam('session_id', $_POST['session_id'], PDO::PARAM_INT); $req->bindParam('password', $password, PDO::PARAM_STR); $req->execute(); } elseif ($session['what'] == 2) { // Requête d'archivage à exécuter $req = $db->prepare("INSERT INTO spooler (session_id, password, task, status) VALUES (:session_id, :password, 1, 2)"); $req->bindParam('session_id', $_POST['session_id'], PDO::PARAM_INT); $req->bindParam('password', $password, PDO::PARAM_STR); $req->execute(); } elseif ($session['what'] == 3) { // Requête de suppression à exécuter $req = $db->prepare("INSERT INTO spooler (session_id, password, task, status) VALUES (:session_id, :password, 2, 2)"); $req->bindParam('session_id', $_POST['session_id'], PDO::PARAM_INT); $req->bindParam('password', $password, PDO::PARAM_STR); $req->execute(); } echo '{"result": true}'; } catch ( PDOException $e ) { toLog(1, "INSERT in spooler, error : ".$e->getMessage(), 0); echo '{"result": false}'; } $urlSpool=$config['baseUrl'].'spool_'.$_POST['session_id']; $mailSend_return = mailSend(username2email($session['user'], $session['domain']), _('Queuing'), _('Hello').'

'._('You can follow the progress of your request by the address: ').''.$urlSpool.''); if ($mailSend_return != true) { toLog(1, 'Erreur mailSend '.$mailSend_return); } } exit(); ?>