'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