Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- function get_include_contents($filename, $variablesToMakeLocal) {
- extract($variablesToMakeLocal);
- if (is_file($filename)) {
- ob_start();
- include $filename;
- return ob_get_clean();
- }
- return false;
- }
- function sendMails($typeX, $typeH) {
- // CONSTANTES
- $HTMFile = 'uploads/file.htm';
- $HTMLFile = 'uploads/file.html';
- $INIFile = 'uploads/file.ini';
- $INIServerFile = 'mailregister.ini.php';
- if ($typeX == '' || $typeH == '') {
- echo 'bad extensions';
- exit();
- }
- require 'PHPMailer-master/src/PHPMailer.php';// Initialisation PHPMailer
- require 'PHPMailer-master/src/SMTP.php';
- require 'vendor/autoload.php'; //PHPSpreadSheet
- //Lecture des .ini
- $server_var = parse_ini_file($INIServerFile, true);
- $ini_var = parse_ini_file($INIFile);
- foreach ($server_var as $server) {
- if (strtoupper($server['host']) == strtoupper($ini_var['host'])) {
- $host = $server['host'];
- $port = $server['port'];
- $user = $server['user'];
- $pwd = $server['pwd'];
- }
- }
- if (!isset($host)) {
- echo 'Unavailable server from mailregister.ini';
- exit();
- }
- if (!isset($ini_var['host']) || !isset($ini_var['from']) || !isset($ini_var['subject'])) {
- echo 'error in .ini file, host, from or subject is not define.';
- exit();
- }
- if (!unlink($INIFile)) {
- echo 'Error cannot delete';
- exit();
- }
- //initiliastion $mail
- $mail = new PHPMailer\PHPMailer\PHPMailer();
- $mail->IsSMTP();
- //$mail->SMTPDebug = 1;
- if ($port == '465') {
- $mail->SMTPAuth = true;
- $mail->SMTPSecure = 'ssl';
- } else {
- $mail->SMTPAuth = false;
- $mail->SMTPSecure = false;
- }
- $mail->Host = $host;
- $mail->Port = $port;
- $mail->isHTML(true);
- $mail->Username = $user;
- $mail->Password = $pwd;
- $mail->setFrom($ini_var['from']);
- $mail->Subject = $ini_var['subject'];
- //pieces jointes
- if (isset($ini_var['attachments']) && strlen(trim($ini_var['attachments'])) > 1) {
- $paths = explode(',', $ini_var['attachments']);
- foreach($paths as $path) {
- $mail->AddAttachment($path, '');
- }
- }
- //contenu
- if ($typeH == 'htm') {
- $body = file_get_contents($HTMFile);
- } else {
- $body = file_get_contents($HTMLFile);
- }
- //Destinataire et envois
- if ($typeX == "xlsx") {
- $inputFileName = "uploads/file.xlsx";
- } else if ($typeX == "xls") {
- $inputFileName = "uploads/file.xls";
- }
- $inputFileType = \PhpOffice\PhpSpreadsheet\IOFactory::identify($inputFileName);
- $reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($inputFileType);
- $reader->setReadDataOnly(true);
- $spreadsheet = $reader->load($inputFileName);
- $worksheet = $spreadsheet->getActiveSheet();
- foreach ($worksheet->getRowIterator() as $row) {
- $ligne = array();
- $cellIterator = $row->getCellIterator();
- $cellIterator->setIterateOnlyExistingCells(false);
- //chargement valeurs
- $caseIterateur = 0;
- foreach ($cellIterator as $cell) {
- //piece jointe personnel
- $alphabet = range('A', 'Z'); //convertir entier en lettre majuscule
- if (isset($ini_var['attachments']) && strlen(trim($ini_var['attachments'])) == 1 && strtoupper($ini_var['attachments']) == $alphabet[strval($caseIterateur)]) {
- $paths = explode(',', $cell->getValue());
- foreach($paths as $path) {
- $mail->AddAttachment($path);
- }
- }
- $value = $cell->getValue();
- array_push($ligne, $value);
- ++$caseIterateur; //deviner la colonne actuel de $cell
- }
- //remplacement des valeurs PHP
- for ($i = 1; $i <= (count($ligne)); $i++) {
- $body = str_replace('$' . $i, $ligne[$i - 1], $body);
- }
- $mail->addAddress($ligne[0]); //ajout addresse
- $mail->Body = $body; //ajout contenu
- if(!$mail->send()) { //envoie du mail
- echo 'Message was not sent.';
- echo 'Mailer error: ' . $mail->ErrorInfo;
- } else {
- echo "Message has been sent to " . $ligne[0];
- }
- $mail->ClearAddresses(); //clear de la liste d'adresse
- $mail->clearAttachments(); //clear de la liste des pièces jointes
- }
- //fichier log
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement