Test Email

Hello, " . htmlspecialchars($tname) . "!

This is a test email from your {$site_name} installation. If you received this, your SMTP settings are working correctly.

" ); $ok = send_email($to, $tname, 'Test Email — ' . $site_name, $body); if ($ok) { $message = 'Test email sent to ' . htmlspecialchars($to); } else { $error = 'Failed to send test email. Check your SMTP settings and server error log.'; } } } $settings = [ 'site_name' => get_setting('site_name', 'Rosary Presenter'), 'site_url' => get_setting('site_url'), 'smtp_host' => get_setting('smtp_host'), 'smtp_port' => get_setting('smtp_port', '587'), 'smtp_user' => get_setting('smtp_user'), 'smtp_pass_set' => get_setting('smtp_pass') !== '', 'smtp_from' => get_setting('smtp_from'), 'smtp_from_name' => get_setting('smtp_from_name', 'Rosary Presenter'), 'donate_enabled' => get_setting('donate_enabled', '0'), 'donate_type' => get_setting('donate_type', 'custom'), 'donate_handle' => get_setting('donate_handle', ''), 'donate_label' => get_setting('donate_label', ''), 'recaptcha_enabled' => get_setting('recaptcha_enabled', '0'), 'recaptcha_site_key' => get_setting('recaptcha_site_key', ''), 'recaptcha_secret_key_set' => get_setting('recaptcha_secret_key') !== '', ]; ?> Settings — <?= htmlspecialchars($site_name) ?>

Site Settings

General

Displayed in the browser tab, emails, and the site header.

Used for links in emails. Include protocol, no trailing slash.

SMTP Email

Leave SMTP Host blank to use PHP's built-in mail() function. For Gmail: host=smtp.gmail.com, port=587, use an App Password.

587 for STARTTLS, 465 for SSL.

Donate Button

Show a small donation strip on the public home page. Choose a service, enter your handle or URL, and enable it when ready.

Bot Protection (reCAPTCHA)

Adds invisible Google reCAPTCHA v3 to the registration form, on top of the built-in honeypot/timing checks. Register your domain at google.com/recaptcha (choose reCAPTCHA v3) to get a Site Key and Secret Key.

Test Email

Send a test email to to verify your SMTP settings.