From de6a28c63d18a72baa044d9385ed3d15afb40ef0 Mon Sep 17 00:00:00 2001 From: polo Date: Fri, 12 Sep 2025 15:04:53 +0200 Subject: =?UTF-8?q?param=C3=A8tres=20SMTP=20en=20mode=20admin,=20possibili?= =?UTF-8?q?t=C3=A9=20d'utiliser=20deux=20formulaires=20sur=20la=20m=C3=AAm?= =?UTF-8?q?e=20page?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/EmailService.php | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) (limited to 'src/EmailService.php') diff --git a/src/EmailService.php b/src/EmailService.php index c1f74d1..a9abc85 100644 --- a/src/EmailService.php +++ b/src/EmailService.php @@ -5,27 +5,34 @@ declare(strict_types=1); use PHPMailer\PHPMailer\PHPMailer; //use PHPMailer\PHPMailer\Exception; -use App\Entity\Email; use Doctrine\ORM\EntityManager; +use App\Entity\Email; +use App\Entity\NodeData; class EmailService { - static public function send(EntityManager $entityManager, string $recipient, bool $true_email, string $name = '', string $email = '', string $message = ''): bool + static public function send(EntityManager $entityManager, NodeData $form_data, bool $test_email, string $name = '', string $email = '', string $message = ''): bool { $mail = new PHPMailer(true); // true => exceptions $mail->CharSet = 'UTF-8'; + $smtp_host = $form_data->getData()['smtp_host'] ?? Config::$smtp_host; + $smtp_secure = $form_data->getData()['smtp_secure'] ?? Config::$smtp_secure; + $smtp_username = $form_data->getData()['smtp_username'] ?? Config::$smtp_username; + $smtp_password = $form_data->getData()['smtp_password'] ?? Config::$smtp_password; + $email_dest = $form_data->getData()['email_dest'] ?? Config::$email_dest; + try{ // Paramètres du serveur $mail->isSMTP(); - $mail->Host = Config::$smtp_host; + $mail->Host = $smtp_host; $mail->SMTPAuth = true; $mail->Port = 25; if($mail->SMTPAuth){ - $mail->Username = Config::$smtp_username; // e-mail - $mail->Password = Config::$smtp_password; - $mail->SMTPSecure = Config::$smtp_secure; // tls (starttls) ou ssl (smtps) + $mail->Username = $smtp_username; // e-mail + $mail->Password = $smtp_password; + $mail->SMTPSecure = $smtp_secure; // tls (starttls) ou ssl (smtps) if($mail->SMTPSecure === 'tls'){ $mail->Port = 587; } @@ -36,16 +43,16 @@ class EmailService //var_dump($mail->smtpConnect());die; // test de connexion // Expéditeur et destinataire - $mail->setFrom(strtolower(Config::$email_from), Config::$email_from_name); // expéditeur - $mail->addAddress(strtolower($recipient), Config::$email_dest_name); // destinataire + $mail->setFrom(strtolower(Config::$email_from), Config::$email_from_name); // paramètre modifiable uniquement dans le config.ini pour l'instant + $mail->addAddress(strtolower($email_dest), Config::$email_dest_name); // // paramètre modifiable uniquement dans le config.ini pour l'instant // Contenu $mail->isHTML(true); - if($true_email){ - $mail->Subject = 'Message envoyé par: ' . $name . ' (' . $email . ') depuis le site web'; + if($test_email){ + $mail->Subject = "TEST d'un envoi d'e-mail depuis le site web"; } else{ - $mail->Subject = "TEST d'un envoi d'e-mail depuis le site web"; + $mail->Subject = 'Message envoyé par: ' . $name . ' (' . $email . ') depuis le site web'; } $mail->Body = $message; $mail->AltBody = $message; @@ -53,9 +60,11 @@ class EmailService $mail->send(); // copie en BDD - $db_email = new Email($email, Config::$email_dest, $message); - $entityManager->persist($db_email); - $entityManager->flush(); + if(!$test_email){ + $db_email = new Email($email, Config::$email_dest, $message); + $entityManager->persist($db_email); + $entityManager->flush(); + } return true; } -- cgit v1.2.3