query("SELECT `key`, `value` FROM settings WHERE `key` LIKE 'smtp_%' OR `key` LIKE 'mail_from_%'"); $smtp_settings =$settingsStmt->fetchAll(PDO::FETCH_KEY_PAIR); // 2. Φόρτωση Template από τη βάση $tplStmt =$pdo->prepare("SELECT * FROM email_templates WHERE template_key = ?"); $tplStmt->execute([$template_key]); $tpl =$tplStmt->fetch(PDO::FETCH_ASSOC); if (!$tpl) return false; $subject = ($lang === 'en') ? $tpl['subject_en'] :$tpl['subject_el']; $body = ($lang === 'en') ? $tpl['body_en'] :$tpl['body_el']; // 3. Αντικατάσταση μεταβλητών (placeholders) foreach ($placeholders as $key =>$val) { $subject = str_replace('{' .$key . '}', $val,$subject); $body = str_replace('{' .$key . '}', $val,$body); } // 4. Αποστολή με PHPMailer require_once __DIR__ . '/../vendor/autoload.php'; $mail = new PHPMailer(true); try { $mail->isSMTP();$mail->Host = $smtp_settings['smtp_host'] ?? '';$mail->SMTPAuth = true; $mail->Username =$smtp_settings['smtp_username'] ?? ''; $mail->Password =$smtp_settings['smtp_password'] ?? ''; $encryption =$smtp_settings['smtp_encryption'] ?? 'tls'; $mail->SMTPSecure = ($encryption === 'ssl') ? PHPMailer::ENCRYPTION_SMTPS : PHPMailer::ENCRYPTION_STARTTLS; $mail->Port = (int)($smtp_settings['smtp_port'] ?? 587);$mail->CharSet = 'UTF-8'; $from_email =$smtp_settings['mail_from_address'] ?? 'info@hockeycms.com'; $from_name = $smtp_settings['mail_from_name'] ?? 'Hockey CMS';$mail->setFrom($from_email,$from_name); $mail->addAddress($to_email); $mail->isHTML(true); $mail->Subject =$subject; $mail->Body = nl2br($body); return $mail->send(); } catch (Exception $e) { return false; } }