'mail.1984.is', // Replace with your SMTP host 'port' => 587, 'username' => 'notice@jim.pagetelegram.com', // Replace with your SMTP username 'password' => 'hackme', // Replace with your SMTP password 'from_email' => 'notice@jim.pagetelegram.com', // Replace with your from email 'from_name' => 'Chat Room Notification with Jim/James' ]; // Load existing messages $messages = []; if (file_exists($messages_file)) { $messages = json_decode(file_get_contents($messages_file), true); if (!is_array($messages)) { $messages = []; } } // Load existing emails $emails = []; if (file_exists($emails_file)) { $handle = fopen($emails_file, 'r'); while (($data = fgetcsv($handle)) !== false) { if (!empty($data[0])) { $emails[] = trim($data[0]); } } fclose($handle); } // Function to send email notification function send_notification($smtp_settings, $emails, $new_message) { require 'vendor/autoload.php'; // Assumes PHPMailer is installed via Composer $mail = new PHPMailer\PHPMailer\PHPMailer(); try { $mail->isSMTP(); $mail->Host = $smtp_settings['host']; $mail->SMTPAuth = true; $mail->Username = $smtp_settings['username']; $mail->Password = $smtp_settings['password']; $mail->SMTPSecure = 'tls'; $mail->Port = $smtp_settings['port']; $mail->setFrom($smtp_settings['from_email'], $smtp_settings['from_name']); foreach ($emails as $email) { $mail->addAddress($email); } $mail->isHTML(true); $mail->Subject = 'New Message in Chat Room'; $mail->Body = "

New Message Posted

Name: {$new_message['name']}

Time: {$new_message['timestamp']} CST

Message:
" . nl2br($new_message['message']) . "

"; $mail->send(); } catch (Exception $e) { return "Email notification failed: {$mail->ErrorInfo}"; } return true; } // Handle password submission if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["action"]) && $_POST["action"] == "login") { $password = $_POST["password"] ?? ""; if ($password === $correct_password) { $_SESSION['authenticated'] = true; $is_authenticated = true; } else { $error = "Incorrect password"; } } // Handle message submission if ($is_authenticated && $_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["action"]) && $_POST["action"] == "send_message") { $name = trim($_POST["name"] ?? ""); $message = trim($_POST["message"] ?? ""); if (empty($name) || empty($message)) { $error = "Name and message are required"; } else { // Add new message $new_message = [ "name" => htmlspecialchars($name), "message" => htmlspecialchars($message), "timestamp" => date("Y-m-d H:i:s") ]; $messages[] = $new_message; // Save messages file_put_contents($messages_file, json_encode($messages, JSON_PRETTY_PRINT)); // Send email notification if (!empty($emails)) { $email_result = send_notification($smtp_settings, $emails, $new_message); if ($email_result !== true) { $error = $email_result; } else { $success = "Message sent and notifications emailed"; } } else { $success = "Message sent successfully"; } } } // Handle email management if ($is_authenticated && $_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["action"]) && $_POST["action"] == "manage_emails") { if (isset($_POST["add_email"]) && !empty(trim($_POST["new_email"]))) { $new_email = filter_var(trim($_POST["new_email"]), FILTER_VALIDATE_EMAIL); if ($new_email && !in_array($new_email, $emails)) { $emails[] = $new_email; $success = "Email added successfully"; } else { $error = "Invalid or duplicate email"; } } elseif (isset($_POST["delete_email"])) { $email_to_delete = $_POST["delete_email"]; if (($key = array_search($email_to_delete, $emails)) !== false) { unset($emails[$key]); $emails = array_values($emails); $success = "Email deleted successfully"; } else { $error = "Email not found"; } } // Save updated emails $handle = fopen($emails_file, 'w'); foreach ($emails as $email) { fputcsv($handle, [$email]); } fclose($handle); } // Handle logout if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["action"]) && $_POST["action"] == "logout") { session_unset(); session_destroy(); $is_authenticated = false; } ?> Private Messaging Room for Jim/James

Private Messaging Room for James with Family and Friends

( CST)

Manage Notification Emails

No notification emails configured.