[ 'page_title' => 'Ρυθμίσεις Email (SMTP)', 'header_title' => 'Ρυθμίσεις Διακομιστή Email (SMTP)', 'provider_settings' => 'Ρυθμίσεις Παρόχου', 'gmail_instructions' => 'Οδηγίες για GMAIL: Αν χρησιμοποιείτε Gmail, βάλτε Host: smtp.gmail.com, Port: 587, Ασφάλεια: TLS. Πρέπει να ενεργοποιήσετε το 2-Factor Authentication και να δημιουργήσετε ένα App Password.', 'smtp_host' => 'Διακομιστής (SMTP Host) *', 'smtp_port' => 'Θύρα (SMTP Port) *', 'smtp_user' => 'Όνομα Χρήστη / Email (Username) *', 'smtp_pass' => 'Κωδικός Πρόσβασης (App Password) *', 'encryption' => 'Κρυπτογράφηση *', 'enc_tls' => 'STARTTLS (Συνιστάται - Port 587)', 'enc_ssl' => 'SSL (Port 465)', 'sender_details' => 'Στοιχεία Αποστολέα (Αυτό που βλέπει ο πελάτης)', 'sender_email' => 'Email Αποστολέα *', 'sender_name' => 'Όνομα Αποστολέα *', 'btn_save' => '💾 Αποθήκευση Ρυθμίσεων', 'test_title' => 'Δοκιμή Αποστολής (Test Email)', 'test_desc' => 'Αφού αποθηκεύσετε τις ρυθμίσεις σας, στείλτε ένα δοκιμαστικό email στον εαυτό σας.', 'test_email_addr' => 'Διεύθυνση Email παραλήπτη', 'btn_test' => '✉️ Αποστολή Δοκιμαστικού', 'msg_save_ok' => 'Οι ρυθμίσεις SMTP αποθηκεύτηκαν επιτυχώς!', 'msg_err_email' => 'Παρακαλώ εισάγετε ένα έγκυρο Email!', 'msg_test_ok' => 'Το δοκιμαστικό Email στάλθηκε επιτυχώς στο', 'msg_err_smtp' => 'Αποτυχία Αποστολής (SMTP Error).' ], 'en' => [ 'page_title' => 'Email Settings (SMTP)', 'header_title' => 'Email Server Settings (SMTP)', 'provider_settings' => 'Provider Settings', 'gmail_instructions' => 'GMAIL Instructions: If using Gmail, set Host: smtp.gmail.com, Port: 587, Security: TLS. You must enable 2-Factor Auth and create an App Password.', 'smtp_host' => 'Server (SMTP Host) *', 'smtp_port' => 'Port (SMTP Port) *', 'smtp_user' => 'Username / Email *', 'smtp_pass' => 'Password (App Password) *', 'encryption' => 'Encryption *', 'enc_tls' => 'STARTTLS (Recommended - Port 587)', 'enc_ssl' => 'SSL (Port 465)', 'sender_details' => 'Sender Details (Seen by customer)', 'sender_email' => 'Sender Email *', 'sender_name' => 'Sender Name *', 'btn_save' => '💾 Save Settings', 'test_title' => 'Test Email Delivery', 'test_desc' => 'After saving your settings, send a test email to yourself.', 'test_email_addr' => 'Recipient Email Address', 'btn_test' => '✉️ Send Test Email', 'msg_save_ok' => 'SMTP settings saved successfully!', 'msg_err_email' => 'Please enter a valid Email!', 'msg_test_ok' => 'Test Email sent successfully to', 'msg_err_smtp' => 'Delivery Failed (SMTP Error).' ] ]; $t = $translations[$current_lang]; header('Content-Type: text/html; charset=utf-8'); $message = ''; $setting_keys = ['smtp_host', 'smtp_port', 'smtp_username', 'smtp_password', 'smtp_encryption', 'mail_from_address', 'mail_from_name']; // --- 1. ΑΠΟΘΗΚΕΥΣΗ ΡΥΘΜΙΣΕΩΝ --- if ($_SERVER['REQUEST_METHOD'] === 'POST' and isset($_POST['action']) and $_POST['action'] == 'save_settings') { try { $pdo->beginTransaction(); foreach ($setting_keys as $key) { $value = trim($_POST[$key] ?? ''); $check = $pdo->prepare("SELECT COUNT(*) FROM settings WHERE `key` = ?"); $check->execute([$key]); if ($check->fetchColumn() > 0) { $stmt =$pdo->prepare("UPDATE settings SET `value` = ? WHERE `key` = ?"); $stmt->execute([$value,$key]); } else { $stmt =$pdo->prepare("INSERT INTO settings (`key`, `value`) VALUES (?, ?)"); $stmt->execute([$key,$value]); } } $pdo->commit();$message = "
{$t['msg_save_ok']}
"; } catch (PDOException $e) { $pdo->rollBack();$message = "
Σφάλμα: " . $e->getMessage() . "
"; } } // --- Ανάγνωση υφιστάμενων ρυθμίσεων --- $current_settings = []; $stmt =$pdo->query("SELECT `key`, `value` FROM settings WHERE `key` IN ('" . implode("','", $setting_keys) . "')"); while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {$current_settings[$row['key']] =$row['value']; } // --- 2. ΑΠΟΣΤΟΛΗ ΔΟΚΙΜΑΣΤΙΚΟΥ EMAIL --- if ($_SERVER['REQUEST_METHOD'] === 'POST' and isset($_POST['action']) and$_POST['action'] == 'test_email') { $test_email = trim($_POST['test_email']); if (empty($test_email) or !filter_var($test_email, FILTER_VALIDATE_EMAIL)) {$message = "
{$t['msg_err_email']}
"; } else { $mail = new PHPMailer(true); try { $mail->isSMTP();$mail->Host = $current_settings['smtp_host'] ?? '';$mail->SMTPAuth = true; $mail->Username =$current_settings['smtp_username'] ?? ''; $mail->Password =$current_settings['smtp_password'] ?? ''; $encryption =$current_settings['smtp_encryption'] ?? 'tls'; if ($encryption === 'ssl') {$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; } else { $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; } $mail->Port = (int)($current_settings['smtp_port'] ?? 587);$mail->CharSet = 'UTF-8'; $from_email = !empty($current_settings['mail_from_address']) ?$current_settings['mail_from_address'] : 'info@yourshop.com'; $from_name = !empty($current_settings['mail_from_name']) ? $current_settings['mail_from_name'] : 'Hockey CMS';$mail->setFrom($from_email,$from_name); $mail->addAddress($test_email); $mail->isHTML(true);$mail->Subject = 'Επιβεβαίωση SMTP - Hockey CMS'; $mail->Body = '

Συγχαρητήρια! 🎉

Αν διαβάζετε αυτό το μήνυμα, οι ρυθμίσεις του διακομιστή SMTP έχουν γίνει σωστά στο Hockey CMS.

'; $mail->send();$message = "
{$t['msg_test_ok']} {$test_email}!
"; } catch (Exception $e) {$message = "
{$t['msg_err_smtp']}
{$mail->ErrorInfo}
"; } } } ?> <?php echo $t['page_title']; ?> - Hockey CMS