Advertisement
Guest User

Untitled

a guest
May 8th, 2018
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.19 KB | None | 0 0
  1. <?php
  2.  
  3. function get_include_contents($filename, $variablesToMakeLocal) {
  4. extract($variablesToMakeLocal);
  5. if (is_file($filename)) {
  6. ob_start();
  7. include $filename;
  8. return ob_get_clean();
  9. }
  10. return false;
  11. }
  12.  
  13.  
  14. function sendMails($typeX, $typeH) {
  15.  
  16. // CONSTANTES
  17. $HTMFile = 'uploads/file.htm';
  18. $HTMLFile = 'uploads/file.html';
  19. $INIFile = 'uploads/file.ini';
  20. $INIServerFile = 'mailregister.ini.php';
  21.  
  22. if ($typeX == '' || $typeH == '') {
  23. echo 'bad extensions';
  24. exit();
  25. }
  26. require 'PHPMailer-master/src/PHPMailer.php';// Initialisation PHPMailer
  27. require 'PHPMailer-master/src/SMTP.php';
  28. require 'vendor/autoload.php'; //PHPSpreadSheet
  29.  
  30. //Lecture des .ini
  31. $server_var = parse_ini_file($INIServerFile, true);
  32. $ini_var = parse_ini_file($INIFile);
  33. foreach ($server_var as $server) {
  34. if (strtoupper($server['host']) == strtoupper($ini_var['host'])) {
  35. $host = $server['host'];
  36. $port = $server['port'];
  37. $user = $server['user'];
  38. $pwd = $server['pwd'];
  39. }
  40. }
  41. if (!isset($host)) {
  42. echo 'Unavailable server from mailregister.ini';
  43. exit();
  44. }
  45. if (!isset($ini_var['host']) || !isset($ini_var['from']) || !isset($ini_var['subject'])) {
  46. echo 'error in .ini file, host, from or subject is not define.';
  47. exit();
  48. }
  49. if (!unlink($INIFile)) {
  50. echo 'Error cannot delete';
  51. exit();
  52. }
  53. //initiliastion $mail
  54. $mail = new PHPMailer\PHPMailer\PHPMailer();
  55. $mail->IsSMTP();
  56. //$mail->SMTPDebug = 1;
  57. if ($port == '465') {
  58. $mail->SMTPAuth = true;
  59. $mail->SMTPSecure = 'ssl';
  60. } else {
  61. $mail->SMTPAuth = false;
  62. $mail->SMTPSecure = false;
  63. }
  64. $mail->Host = $host;
  65. $mail->Port = $port;
  66. $mail->isHTML(true);
  67. $mail->Username = $user;
  68. $mail->Password = $pwd;
  69. $mail->setFrom($ini_var['from']);
  70. $mail->Subject = $ini_var['subject'];
  71. //pieces jointes
  72. if (isset($ini_var['attachments']) && strlen(trim($ini_var['attachments'])) > 1) {
  73. $paths = explode(',', $ini_var['attachments']);
  74. foreach($paths as $path) {
  75. $mail->AddAttachment($path, '');
  76. }
  77. }
  78. //contenu
  79. if ($typeH == 'htm') {
  80. $body = file_get_contents($HTMFile);
  81. } else {
  82. $body = file_get_contents($HTMLFile);
  83. }
  84.  
  85. //Destinataire et envois
  86. if ($typeX == "xlsx") {
  87. $inputFileName = "uploads/file.xlsx";
  88. } else if ($typeX == "xls") {
  89. $inputFileName = "uploads/file.xls";
  90. }
  91. $inputFileType = \PhpOffice\PhpSpreadsheet\IOFactory::identify($inputFileName);
  92. $reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($inputFileType);
  93. $reader->setReadDataOnly(true);
  94. $spreadsheet = $reader->load($inputFileName);
  95. $worksheet = $spreadsheet->getActiveSheet();
  96. foreach ($worksheet->getRowIterator() as $row) {
  97. $ligne = array();
  98. $cellIterator = $row->getCellIterator();
  99. $cellIterator->setIterateOnlyExistingCells(false);
  100. //chargement valeurs
  101. $caseIterateur = 0;
  102. foreach ($cellIterator as $cell) {
  103. //piece jointe personnel
  104. $alphabet = range('A', 'Z'); //convertir entier en lettre majuscule
  105. if (isset($ini_var['attachments']) && strlen(trim($ini_var['attachments'])) == 1 && strtoupper($ini_var['attachments']) == $alphabet[strval($caseIterateur)]) {
  106. $paths = explode(',', $cell->getValue());
  107. foreach($paths as $path) {
  108. $mail->AddAttachment($path);
  109. }
  110. }
  111. $value = $cell->getValue();
  112. array_push($ligne, $value);
  113. ++$caseIterateur; //deviner la colonne actuel de $cell
  114. }
  115. //remplacement des valeurs PHP
  116. for ($i = 1; $i <= (count($ligne)); $i++) {
  117. $body = str_replace('$' . $i, $ligne[$i - 1], $body);
  118. }
  119. $mail->addAddress($ligne[0]); //ajout addresse
  120. $mail->Body = $body; //ajout contenu
  121. if(!$mail->send()) { //envoie du mail
  122. echo 'Message was not sent.';
  123. echo 'Mailer error: ' . $mail->ErrorInfo;
  124. } else {
  125. echo "Message has been sent to " . $ligne[0];
  126. }
  127. $mail->ClearAddresses(); //clear de la liste d'adresse
  128. $mail->clearAttachments(); //clear de la liste des pièces jointes
  129. }
  130.  
  131. //fichier log
  132.  
  133. }
  134.  
  135. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement