email.class.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. class email
  3. {
  4. private static $smtpServer = EMAIL_SMTP_HOST;
  5. private static $smtpPort = EMAIL_SMTP_PORT;
  6. private static $smtpSecure = EMAIL_SMTP_SECURE;
  7. private static $username = EMAIL_SMTP_USER;
  8. private static $password = EMAIL_SMTP_PASSWORD;
  9. private static $fromEmail = EMAIL_FROM_EMAIL;
  10. private static $fromName = EMAIL_FROM_NAME;
  11. public static function send($_to, $_name, $_subject, $_message)
  12. {
  13. $template = file_get_contents(DIR_TEMPLATE_EMAILS.'cms.alerte.html');
  14. if ($template === false) {
  15. echo "Impossible de lire le template d'email.";
  16. return;
  17. }
  18. // Remplacer les variables dans le template
  19. $template = str_replace('{{name}}', $_name, $template);
  20. $template = str_replace('{{message}}', $_message, $template);
  21. $template = str_replace('{{subject}}', $_subject, $template);
  22. // Créer une instance de PHPMailer
  23. $mail = new PHPMailer\PHPMailer\PHPMailer(true);
  24. try {
  25. // Paramètres du serveur
  26. $mail->isSMTP();
  27. $mail->Host = self::$smtpServer;
  28. $mail->SMTPAuth = true;
  29. $mail->Username = self::$username;
  30. $mail->Password = self::$password;
  31. $mail->SMTPSecure = self::$smtpSecure;
  32. $mail->Port = self::$smtpPort;
  33. // Destinataires
  34. $mail->setFrom(self::$fromEmail, self::$fromName);
  35. $mail->addAddress($_to, $_name);
  36. // Contenu de l'email
  37. $mail->isHTML(true);
  38. $mail->Subject = $_subject;
  39. $mail->Body = $template;
  40. try {
  41. $mail->send();
  42. return TRUE;
  43. } catch (Exception $e) {
  44. alert::recError("ERREUR TECHNIQUE : Send Email " . $mail->ErrorInfo);
  45. return FALSE;
  46. }
  47. } catch (Exception $e) {
  48. alert::recError("ERREUR TECHNIQUE : Config Email " . $mail->ErrorInfo);
  49. return FALSE;
  50. }
  51. }
  52. private static function sendCommand($smtp, $command)
  53. {
  54. fputs($smtp, $command . "\r\n");
  55. return self::serverResponse($smtp);
  56. }
  57. private static function serverResponse($smtp)
  58. {
  59. $response = '';
  60. while ($str = fgets($smtp, 512)) {
  61. $response .= $str;
  62. if (substr($str, 3, 1) == ' ') {
  63. break;
  64. }
  65. }
  66. return $response;
  67. }
  68. }