Email & Notifications
Range Warden sends transactional emails for membership reminders, payment receipts, and account notifications. Email requires an SMTP server — any standard provider works (Resend, SendGrid, Postmark, Amazon SES, Gmail, etc.).
Required module: Email Required role: Admin
Setting up email
Section titled “Setting up email”Navigate to Admin → System → Email.
SMTP configuration
Section titled “SMTP configuration”| Field | Description | Example |
|---|---|---|
| SMTP Enabled | Master toggle for all outgoing email | On |
| Host | SMTP server hostname | smtp.resend.com |
| Port | SMTP port (typically 587 for TLS) | 587 |
| Username | SMTP login username | resend |
| Password | SMTP login password | re_xxxxxxxxxx |
| From Address | The “From” email address | [email protected] |
| From Name | Display name on outgoing mail | Greenfield Range |
| Application URL | Base URL of your Range Warden instance (used in email links) | https://range.yourclub.org |
- Fill in all fields.
- Click Save.
- Click Send Test Email to verify the connection works.
SMTP password security
Section titled “SMTP password security”Your SMTP password is encrypted at rest using AES-256-GCM. It is never displayed in the admin panel — the field shows *** after saving. The password is only decrypted server-side when sending email.
Email templates
Section titled “Email templates”Range Warden includes 8 default email templates that you can customize or disable individually.
Navigate to Admin → System → Email Templates.
Available templates
Section titled “Available templates”| Template | When it’s sent | Key variables |
|---|---|---|
| Welcome | When a new member’s status is set to Active for the first time | Member name, member number, range name |
| Renewal Reminder | Automatically at configured intervals before membership expiry | Member name, expiry date, days remaining, renewal URL |
| Expiry Notice | On the day a membership expires | Member name, expiry date, renewal URL |
| Payment Receipt | After any payment is recorded | Member name, amount, payment method, date |
| Refund Confirmation | After a refund is processed | Member name, amount, original payment date |
| Password Reset | When a user clicks “Forgot Password” | Reset link (time-limited) |
| RSO Account Created | When an RSO member is provisioned with portal access | RSO name, login details, portal link |
| Test | Manually triggered from Admin → Email | Range name, test message |
Customizing a template
Section titled “Customizing a template”- Click on a template to open the editor.
- Modify the subject line and body content.
- Use the visual editor for formatting, or switch to code mode to edit HTML directly.
- Insert template variables by clicking the variable name from the available list — they’re automatically inserted at your cursor position.
- Click Preview to see how the email will look with sample data.
- Click Save.
Template variables
Section titled “Template variables”Each template has a list of available variables that get replaced with real data when the email is sent. Variables use double-brace syntax: {{MemberName}}, {{ExpiryDate}}, {{Amount}}, etc.
The available variables are shown alongside the editor when you’re customizing a template.
Enabling and disabling templates
Section titled “Enabling and disabling templates”Each template has an Enabled toggle. When disabled, that email type is never sent — even if the triggering event occurs.
For example, disabling the Welcome template means no welcome email goes out when new members are activated.
Resetting a template
Section titled “Resetting a template”Click Reset to Default on any template to restore the original subject and body content.
Renewal reminders
Section titled “Renewal reminders”Renewal reminders are the most important automated email feature. They notify members when their membership is about to expire.
How renewal reminders work
Section titled “How renewal reminders work”- A background job runs daily (at midnight).
- It checks for members whose memberships expire within the configured threshold days.
- For each matching member, a renewal reminder email is sent.
- The system tracks when the last reminder was sent to prevent duplicates.
Configuring reminder timing
Section titled “Configuring reminder timing”In Admin → Settings, set the renewal_reminder_days value. This is a comma-separated list of how many days before expiry to send reminders.
Default: 30,14,7 — This sends reminders at 30 days, 14 days, and 7 days before expiry.
Example customization: 60,30,14,7,3 — Start reminding 60 days out and send a final reminder 3 days before.
Renewal links in emails
Section titled “Renewal links in emails”If Stripe is configured, renewal reminder emails include a direct payment link. Members can click the link, land on a Stripe checkout page, pay their renewal fee, and their membership is automatically extended — no login or RSO interaction required.
Without Stripe, renewal emails remind members to visit the range or contact staff to renew.
Enabling/disabling reminders
Section titled “Enabling/disabling reminders”Toggle renewal_reminder_enabled in Admin → Settings to turn the automated reminder system on or off entirely. You can also disable just the renewal reminder email template while keeping other emails active.
Email trigger points
Section titled “Email trigger points”Here’s when each email is automatically sent:
| Event | Email sent | Conditions |
|---|---|---|
| Member activated (first time) | Welcome | Template enabled, member has email |
| Membership approaching expiry | Renewal Reminder | Reminders enabled, within configured days |
| Membership expires today | Expiry Notice | Template enabled, member has email |
| Payment recorded | Payment Receipt | Template enabled, member/guest has email |
| Refund processed | Refund Confirmation | Template enabled, member has email |
| User clicks “Forgot Password” | Password Reset | Always sent (critical account function) |
| RSO account provisioned | RSO Account Created | Template enabled, RSO has email |
Email prevention
Section titled “Email prevention”Emails are not sent when:
- The template is disabled.
- The member or guest does not have an email address on file.
- A duplicate reminder was already sent within the deduplication window (24 hours).
Sending behavior
Section titled “Sending behavior”All transactional emails are sent asynchronously in the background — they don’t block the action that triggered them. If an email fails to send (e.g., SMTP server is down), the action (payment, renewal, etc.) still completes successfully.
Troubleshooting email
Section titled “Troubleshooting email”| Problem | Solution |
|---|---|
| Test email not received | Check SMTP host, port, username, and password. Verify the from address is not blocked by your email provider. Check spam folders. |
| Renewal reminders not sending | Verify reminders are enabled in settings and the renewal reminder template is toggled on. Check that members have email addresses on file. |
| Links in emails are broken | Verify the Application URL in Admin → Email matches your actual Range Warden URL. |
| Emails going to spam | Use a dedicated email sending service (Resend, SendGrid) rather than a personal email account. Set up SPF, DKIM, and DMARC records for your domain. |
| Template changes not applying | Make sure you clicked Save after editing. Clear your browser cache and refresh. |