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;
}
}