$messageHtml
$domainLinkgetEmailSettings(); $appSettings = $settingModel->getAppSettings(); // Server settings $mail->isSMTP(); $mail->Host = $emailSettings['mail_host']; $mail->SMTPAuth = !empty($emailSettings['mail_username']); $mail->Username = $emailSettings['mail_username']; $mail->Password = $emailSettings['mail_password']; $mail->SMTPSecure = $emailSettings['mail_encryption']; $mail->Port = $emailSettings['mail_port']; // Recipients $mail->setFrom($emailSettings['mail_from_address'], $emailSettings['mail_from_name']); $mail->addAddress($config['email']); // Content $mail->isHTML(true); $mail->Subject = $this->getSubject($data); $mail->Body = $this->formatHtmlBody($message, $data, $appSettings); $mail->AltBody = strip_tags($message); $mail->send(); return true; } catch (Exception $e) { error_log("Email send failed: {$mail->ErrorInfo}"); return false; } } private function getSubject(array $data): string { if (isset($data['domain'])) { $daysLeft = $data['days_left']; if ($daysLeft <= 0) { return "🚨 URGENT: Domain {$data['domain']} has EXPIRED"; } if ($daysLeft == 1) { return "⚠️ CRITICAL: Domain {$data['domain']} expires TOMORROW"; } return "⚠️ Domain Expiration Alert: {$data['domain']} ({$daysLeft} days)"; } return "Domain Monitor Alert"; } private function formatHtmlBody(string $message, array $data, array $appSettings): string { $messageHtml = nl2br(htmlspecialchars($message)); $appName = htmlspecialchars($appSettings['app_name']); $appUrl = htmlspecialchars($appSettings['app_url']); // Build domain link if domain ID is available $domainLink = ''; if (isset($data['domain_id'])) { $domainUrl = rtrim($appUrl, '/') . '/domains/' . $data['domain_id']; $domainLink = "
"; } return "$messageHtml
$domainLink