From dbd0ab5f0e84dd829c43093665ebb0d55e639093 Mon Sep 17 00:00:00 2001 From: Yasen Pramatarov Date: Sun, 14 Dec 2025 17:22:48 +0200 Subject: [PATCH] Adds password reset email template --- app/classes/passwordReset.php | 33 ++++++++++++++------------------ app/templates/password_reset.txt | 17 ++++++++++++++++ 2 files changed, 31 insertions(+), 19 deletions(-) create mode 100644 app/templates/password_reset.txt diff --git a/app/classes/passwordReset.php b/app/classes/passwordReset.php index 338b61a..75d42b8 100644 --- a/app/classes/passwordReset.php +++ b/app/classes/passwordReset.php @@ -67,28 +67,23 @@ class PasswordReset { // Send email with reset link $to = $user['email']; - $subject = "{$config['site_name']} - Password reset request"; - $message = "Dear user,\n\n"; - $message .= "We received a request to reset your password for your {$config['site_name']} account.\n\n"; - $message .= "To set a new password, please click the link below:\n\n"; - $message .= $resetLink . "\n\n"; - $message .= "This link will expire in 1 hour for security reasons.\n\n"; - $message .= "If you did not request this password reset, please ignore this email. Your account remains secure.\n\n"; - if (!empty($config['site_name'])) { - $message .= "Best regards,\n"; - $message .= "The {$config['site_name']} team\n"; - if (!empty($config['site_slogan'])) { - $message .= ":: {$config['site_slogan']} ::"; - } - } + // Load email helper + require_once __DIR__ . '/../helpers/email_helper.php'; - $headers = [ - 'From' => "noreply@{$config['domain']}", - 'Reply-To' => "noreply@{$config['domain']}", - 'X-Mailer' => 'PHP/' . phpversion() + $subject = "{$config['site_name']} - Password reset request"; + + $variables = [ + 'site_name' => $config['site_name'], + 'reset_link' => $resetLink, + 'site_slogan' => $config['site_slogan'] ?? '' ]; - if (!mail($to, $subject, $message, $headers)) { + $additionalHeaders = [ + 'From' => "noreply@{$config['domain']}", + 'Reply-To' => "noreply@{$config['domain']}" + ]; + + if (!sendTemplateEmail($to, $subject, 'password_reset', $variables, $config, $additionalHeaders)) { return ['success' => false, 'message' => 'Failed to send reset email']; } diff --git a/app/templates/password_reset.txt b/app/templates/password_reset.txt new file mode 100644 index 0000000..3882630 --- /dev/null +++ b/app/templates/password_reset.txt @@ -0,0 +1,17 @@ +Dear user, + +We received a request to reset your password for your {{site_name}} account. + +To set a new password, please click the link below: + +{{reset_link}} + +This link will expire in 1 hour for security reasons. + +If you did not request this password reset, please ignore this email. Your account remains secure. + +Best regards, +The {{site_name}} team +{{#site_slogan}} +:: {{site_slogan}} :: +{{/site_slogan}}