query("UPDATE smtp_settings SET is_enabled = 1, consecutive_failures = 0 WHERE id = 1"); $_SESSION['success'] = 'تم إعادة تفعيل SMTP وتصفير عداد الأخطاء'; redirect('charity-settings.php'); } // Fetch charity settings $stmt = db()->query("SELECT * FROM charity_settings WHERE id = 1"); $charity = $stmt->fetch(); // Fetch SMTP settings $stmt = db()->query("SELECT * FROM smtp_settings WHERE id = 1"); $smtp = $stmt->fetch(); // Handle Charity Settings Update if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['update_charity'])) { $charity_name = $_POST['charity_name']; $charity_email = $_POST['charity_email']; $charity_phone = $_POST['charity_phone']; $charity_address = $_POST['charity_address']; $charity_logo = $charity['charity_logo']; $charity_favicon = $charity['charity_favicon']; $upload_dir = 'uploads/charity/'; if (!is_dir($upload_dir)) mkdir($upload_dir, 0775, true); if (isset($_FILES['charity_logo']) && $_FILES['charity_logo']['error'] === UPLOAD_ERR_OK) { $file_ext = pathinfo($_FILES['charity_logo']['name'], PATHINFO_EXTENSION); $new_logo = 'logo_' . time() . '.' . $file_ext; if (move_uploaded_file($_FILES['charity_logo']['tmp_name'], $upload_dir . $new_logo)) { $charity_logo = $upload_dir . $new_logo; } } if (isset($_FILES['charity_favicon']) && $_FILES['charity_favicon']['error'] === UPLOAD_ERR_OK) { $file_ext = pathinfo($_FILES['charity_favicon']['name'], PATHINFO_EXTENSION); $new_favicon = 'favicon_' . time() . '.' . $file_ext; if (move_uploaded_file($_FILES['charity_favicon']['tmp_name'], $upload_dir . $new_favicon)) { $charity_favicon = $upload_dir . $new_favicon; } } $stmt = db()->prepare("UPDATE charity_settings SET charity_name = ?, charity_email = ?, charity_phone = ?, charity_address = ?, charity_logo = ?, charity_favicon = ? WHERE id = 1"); $stmt->execute([$charity_name, $charity_email, $charity_phone, $charity_address, $charity_logo, $charity_favicon]); $_SESSION['success'] = 'تم تحديث إعدادات النظام بنجاح'; redirect('charity-settings.php'); } // Handle SMTP Settings Update if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['update_smtp'])) { $stmt = db()->prepare("UPDATE smtp_settings SET smtp_host = ?, smtp_port = ?, smtp_secure = ?, smtp_user = ?, smtp_pass = ?, from_email = ?, from_name = ?, reply_to = ?, max_failures = ? WHERE id = 1"); $stmt->execute([ $_POST['smtp_host'], (int)$_POST['smtp_port'], $_POST['smtp_secure'], $_POST['smtp_user'], $_POST['smtp_pass'], $_POST['from_email'], $_POST['from_name'], $_POST['reply_to'], (int)$_POST['max_failures'] ]); $_SESSION['success'] = 'تم تحديث إعدادات البريد (SMTP) بنجاح'; redirect('charity-settings.php'); } // Handle Test Email if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['test_email_addr'])) { $to = $_POST['test_email_addr']; $res = MailService::sendMail($to, "رسالة تجريبية - Test Email", "
إذا كنت ترى هذه الرسالة، فإن إعدادات SMTP تعمل بشكل صحيح.
"); if ($res['success']) { $_SESSION['success'] = "تم إرسال الرسالة التجريبية بنجاح إلى $to"; } else { $_SESSION['error'] = "فشل إرسال الرسالة التجريبية: " . $res['error']; } redirect('charity-settings.php'); } // Handle Status Operations if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['add_status'])) { $name = $_POST['status_name']; $color = $_POST['status_color']; $is_default = isset($_POST['is_default']) ? 1 : 0; if ($is_default) db()->query("UPDATE mailbox_statuses SET is_default = 0"); $stmt = db()->prepare("INSERT INTO mailbox_statuses (name, color, is_default) VALUES (?, ?, ?)"); $stmt->execute([$name, $color, $is_default]); $_SESSION['success'] = 'تم إضافة نوع الحالة بنجاح'; redirect('charity-settings.php'); } if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['update_status'])) { $id = $_POST['status_id']; $name = $_POST['status_name']; $color = $_POST['status_color']; $is_default = isset($_POST['is_default']) ? 1 : 0; if ($is_default) db()->query("UPDATE mailbox_statuses SET is_default = 0"); $stmt = db()->prepare("UPDATE mailbox_statuses SET name = ?, color = ?, is_default = ? WHERE id = ?"); $stmt->execute([$name, $color, $is_default, $id]); $_SESSION['success'] = 'تم تحديث نوع الحالة بنجاح'; redirect('charity-settings.php'); } if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['delete_status'])) { $id = $_POST['status_id']; $count = db()->prepare("SELECT COUNT(*) FROM mailbox WHERE status_id = ?"); $count->execute([$id]); if ($count->fetchColumn() > 0) { $_SESSION['error'] = 'لا يمكن حذف هذه الحالة لأنها مستخدمة في بعض السجلات'; } else { db()->prepare("DELETE FROM mailbox_statuses WHERE id = ?")->execute([$id]); $_SESSION['success'] = 'تم حذف نوع الحالة بنجاح'; } redirect('charity-settings.php'); } // Get session messages if (isset($_SESSION['success'])) { $success_msg = $_SESSION['success']; unset($_SESSION['success']); } if (isset($_SESSION['error'])) { $error_msg = $_SESSION['error']; unset($_SESSION['error']); } $statuses = db()->query("SELECT * FROM mailbox_statuses ORDER BY id ASC")->fetchAll(); $email_logs = db()->query("SELECT * FROM email_logs ORDER BY id DESC LIMIT 50")->fetchAll(); ?>| الاسم | اللون | افتراضية | الإجراء |
|---|---|---|---|
| = htmlspecialchars($status['name']) ?> | = $status['color'] ?> |
= $status['is_default'] ? '' : '' ?> |
| الوقت | المستلم | الموضوع | الحالة | الخطأ |
|---|---|---|---|---|
| = date('Y-m-d H:i', strtotime($log['created_at'])) ?> | = htmlspecialchars($log['recipient']) ?> | = htmlspecialchars($log['subject']) ?> | = $log['status'] === 'success' ? 'نجاح' : 'فشل' ?> | = htmlspecialchars($log['error_message'] ?? '') ?> |