JEM Mailer Plugin

Plugin name: JEM - Mailer Plugin

Extension: plg_jem_mailer

Plugin group: JEM

Current versions: JEM 5.0.1, JEM 5.0.2 Beta 1 and JEM 5.1.0 Beta 4.

Joomla compatibility: Joomla 5.4 and Joomla 6.

The JEM Mailer Plugin sends email notifications when registration, event or venue actions occur. Depending on its configuration, messages can be sent to attendees, submitters, creators, administrators, category recipients, Joomla ACL groups, JEM groups and confirmed event attendees.

JEM 5.1.0 Beta 4 extends the mailer with editable multilingual templates, named variables, shared footer and data-protection content, persistent delivery history, retries, controlled resends and scheduled event reminders.

Requirements

  • The JEM component must be installed and enabled.
  • The JEM - Mailer Plugin must be enabled.
  • Joomla mail delivery must be configured correctly in System → Global Configuration → Server → Mail.
  • Recipient users must have valid email addresses and must not be blocked.
  • Category, group or distribution-list recipients must be configured before enabling those destinations.
  • Scheduled reminders in JEM 5.1.0 require Joomla Scheduled Tasks to run regularly on the server.

Where To Configure The Plugin

  1. Open System → Manage → Plugins.
  2. Search for JEM - Mailer Plugin.
  3. Enable the plugin.
  4. Open the plugin to configure its notification profile and recipient matrix.
  5. Save the plugin before testing email delivery.

Configuration Layers

LayerLocationPurposeAvailability
Joomla mail configuration Global Configuration → Server Defines the mail transport, sender address and sender name. All versions
Mailer recipient matrix JEM - Mailer Plugin Defines which recipient groups receive each kind of notification. All current versions
Global JEM notification policy JEM Settings → Notifications Controls reminders, retention, retries and self-service resend limits. JEM 5.1.0 Beta 4, Advanced profile
Notification content JEM Control Panel → Notifications Customises multilingual reservation and reminder templates, footer and data-protection content. JEM 5.1.0 Beta 4, Advanced profile
Event reminders Create or edit an event → Notifications Selects which reminder intervals apply to the event. JEM 5.1.0 Beta 4, Advanced profile
Do not confuse the two kinds of profiles: Quiet, Standard, Editorial and Community are Mailer recipient presets. Essential and Advanced are global JEM operating profiles. They perform different functions.

Profiles And Recipient Matrix

The plugin provides four presets. Selecting a preset replaces the complete recipient matrix. Changing an individual checkbox afterwards creates a custom combination.

Mailer profilePurposeMain recipients
Quiet Minimum email traffic. Only the affected attendee receives registration, waiting-list and registration-removal confirmations.
Standard Normal confirmation workflow. This is the default configuration. Attendees and administrators receive registration messages. Submitters/editors and administrators receive event and venue submission messages.
Editorial Event and venue review workflow. Submitters, creators, administrators, Category ACL recipients and event creators using an edited venue. Registration confirmations are not enabled by this preset.
Community Broad notification distribution. Enables every applicable recipient group, including creators, category lists, Category ACL users, JEM groups and confirmed attendees.
Custom Site-specific configuration. Created automatically when the administrator changes individual matrix checkboxes.
Bulk email warning: Community mode and the Registered Attendees options can generate many messages. Test the configuration on a staging site before enabling it on a large production site.

Registration Notifications

ActionAffected attendeeEvent creatorAdminCategoryGroup
Event registration or attendance-status change Available Available Available Available Available
Waiting-list change Available Available Available Available Available
Registration removal Available Available Available Available Available

Registration messages cover confirmed attendance, waiting-list registration, invitations, a Not Attending response, waiting-list movement and removal of a registration.

The attendee message can also distinguish between an action performed by the attendee and an action performed on behalf of another user.

Event Notifications

ActionSubmitter or editorEvent creatorAdminRegistered attendeesCategoryCategory ACLGroup
New event Available — Available — Available Available Available
Edited event or state change Available Available Available Available Available Available Available

The Registered Attendees recipient currently includes confirmed, non-waiting registrations for events which have not finished more than one hour earlier. Waiting-list, invited and Not Attending records are not included in this recipient group.

Venue Notifications

ActionSubmitter or editorVenue creatorEvent creators using venueAdminRegistered attendeesCategoryGroup
New venue Available — — Available — — —
Edited venue or state change Available Available Available Available Available Available Available

When a venue is edited, JEM can find events assigned to that venue and notify their creators, category recipients, JEM groups or confirmed attendees.

Recipient Types

RecipientMeaningRequired configuration
Affected attendee The user whose registration or attendance status changed. A valid email address in the Joomla user account.
Submitter / editor The logged-in user who created or edited the item. A valid email address in the Joomla user account.
Event or venue creator The original creator of the item when a different user edits it. A valid, unblocked Joomla user.
Event creators using venue Creators of events currently assigned to the edited venue. Events must reference that venue.
Admin The recipients collected from Joomla System Mail users and/or the plugin distribution list. Configure at least one administrator recipient source.
Registered attendees Confirmed, non-waiting attendees of the affected event or events. Published event, confirmed registration and valid user email.
Category Email addresses entered in the Email field of the event categories. Edit the JEM category and enter one or more comma-separated addresses.
Category ACL Users belonging to the Joomla groups contained in the category access level. Enable category ACL email delivery in the category email options.
Group Members of the JEM group assigned to the event category. Assign a JEM group to the category and add members to that group.

When the same email address is found through several recipient roles, JEM removes duplicates. The message can include an explanation of why the recipient received it, such as administrator, item creator, category recipient or JEM group member.

Administrator Options

OptionDefaultDescription
System Mail receivers No Includes unblocked Joomla users whose Receive System Emails option is enabled.
Distribution list Empty Comma-separated email addresses which receive Admin notifications. Invalid addresses and duplicates are removed.
Send as HTML No Sends HTML email. In JEM 5.1.0, a custom HTML template is used when available; otherwise JEM converts plain-text line breaks to HTML. A plain-text alternative is also included.
The Standard Mailer profile enables several Admin notification checkboxes, but no administrator message can be delivered until System Mail receivers, the Distribution list, or both contain recipients.

Global JEM Settings That Affect Email

The plugin configuration chooses recipients, but some message values come from global JEM Settings.

Global optionEffect on email
Display User Name Controls whether attendee and actor names use the Joomla display name or username.
Date and time formats Control the formatted event date and time inserted into messages.
Show Online Meeting Allows an event's validated online-meeting URL to be appended to the event link information in email.
Default Online Meeting Label Provides the meeting-link label when the event does not define its own label.
Associated article content When applicable and accessible, associated article content can contribute to the event description used by reservation messages.
Operating profile In JEM 5.1.0, the Advanced profile enables template administration, reminder automation and notification history tools.

Triggered Plugin Actions

  • onEventUserRegistered: registration, attendance status, invitation and waiting-list confirmation.
  • onUserOnOffWaitinglist: movement between the waiting and attending lists.
  • onEventUserUnregistered: registration removal.
  • onEventEdited: new or edited event.
  • onVenueEdited: new or edited venue.
  • onContentChangeState: event or venue publication-state change.
  • onJemNotificationAction: controlled retry or resend in JEM 5.1.0.

JEM 5.0.1 And JEM 5.0.2 Email Content

In JEM 5.0.1 and JEM 5.0.2 Beta 1, notification text comes from the installed JEM Mailer language files. To change the wording, use an appropriate Joomla language override.

The named-variable template editor, shared notification content, persistent notification history and scheduled reminders described below are specific to JEM 5.1.0 Beta 4.

JEM 5.1.0 Beta 4 Appendix

Beta feature: the functionality in this appendix belongs to JEM 5.1.0 Beta 4. It is not present in JEM 5.0.1 or JEM 5.0.2 Beta 1.

Advanced Operating Profile

Notification administration and reminder automation are available when JEM uses the Advanced operating profile. The Essential profile continues to support the core Mailer notification workflow but does not expose the advanced template and reminder administration interfaces.

The advanced Notifications area contains five sections:

  • Templates: reservation and reminder message templates.
  • Footer: common content appended to messages.
  • Data Protection: optional privacy notice.
  • Reminders: reusable reminder intervals.
  • History: persisted reservation notifications and delivery attempts.
The editable template catalogue currently covers reservation, attendance, waiting-list, cancellation and scheduled reminder notifications. New-event, edited-event, new-venue and edited-venue messages continue to use the JEM Mailer language strings.

Global Notification Settings

Open JEM Settings → Notifications to configure the global policy.

OptionDefaultRangePurpose
Enable event reminders No Yes / No Enables scheduled reminders for eligible confirmed registrations.
All-day event reference time 09:00 Valid time Provides the reference time used to calculate reminders for an event without a start time. Open-date events never receive reminders.
Retention period 0 days 0 or more Controls how long terminal notification snapshots and attempts are retained. Zero keeps them indefinitely. Pending work is never purged.
Self-service resend limit 2 1 to 20 Maximum user-requested resends inside the configured rolling window.
Self-service window 24 hours 1 to 168 hours Rolling period used to count frontend resend requests.
Self-service cooldown 10 minutes 1 to 1440 minutes Minimum delay between two user-requested resends for the same reservation.
Maximum delivery attempts 4 1 to 20 Maximum attempts for one immutable notification snapshot. With the default configuration, failed delivery is retried after approximately 10 minutes, 30 minutes and 2 hours.

The same page shows whether the JEM Joomla Scheduled Task is installed and active, and provides a link to open it.

Notification Templates

Open JEM Control Panel → Notifications → Templates. Templates can be filtered by language, workflow, recipient, source and identifier.

The default text continues to come from the JEM language files. A customised version is stored by Joomla for the selected language and is preserved during normal JEM updates.

Each template contains:

  • A required subject with a maximum length of 255 characters.
  • A required plain-text body.
  • An optional HTML body.
  • A preview using example data.
  • A list of allowed named variables.
  • A tool for generating basic HTML from the plain-text body.
  • A Restore Default action which removes only the selected language customisation.

Template Workflows

WorkflowExamples
Registration confirmation Confirmed event registration by the attendee or on behalf of another user.
Waiting-list confirmation Initial registration placed on the waiting list.
Attendance status Not Attending or another stored attendance status.
Invitation User invitation, including an invitation created by another user.
Registration cancellation Registration removal by the attendee or by another authorised user.
Waiting-list movement Movement from waiting to attending or from attending to waiting.
Scheduled reminder Message sent before the event according to a selected reminder interval.

Available Template Variables

Variables use literal names inside braces, for example {event_title}. Variable names are internal identifiers and must never be translated.

VariableValueNotes
{user_name} Name of the booking holder or affected attendee. Uses the JEM global Display User Name configuration.
{actor_name} Name of the user who performed the action. Mainly useful for actions performed on behalf of another user.
{comment} Registration comment. Empty when no comment was supplied.
{event_title} Event title. For a programme item, JEM can include its parent-event context.
{event_date} Formatted event date. Uses the current JEM date format.
{event_time} Formatted event start time. May be empty for an all-day or open-time event.
{venue} Venue name. Empty when no venue is assigned.
{venue_configuration} Summary of the effective venue or space configuration. Particularly useful with Advanced venue capacities and configurations.
{city} Venue city. Empty when the venue has no city.
{places} Number of places in the registration. Represents the booking quantity, not total event capacity.
{event_description} Plain-text event description. HTML and executable content are removed.
{event_url} Public URL of the event. Can also include online-meeting information when globally enabled.
{reservation_url} URL of the individual reservation page. Allows the booking holder to review the reservation and request another notification copy when permitted.
{event_image_url} Absolute URL of the event image. Empty when the event has no existing image in an accepted JEM image location.
{venue_image_url} Absolute URL of the venue image. Empty when the venue has no existing image in an accepted JEM image location.
{site_name} Joomla site name. Suitable for subjects, headings and signatures.
{reminder_interval} Name of the reminder interval. Meaningful for scheduled reminders, for example “24 hours before”. It can be empty in other workflows.
The template editor displays the authoritative list of variables for the selected template. A variable may be allowed but contain an empty value when that information does not apply to the current event or workflow.

Shared Footer And Data-Protection Variables

The shared Footer and Data Protection sections use a smaller variable set:

VariableValue
{site_name} The Joomla site name.
{site_url} The absolute root URL of the website.
{privacy_url} The privacy-policy URL configured in the Data Protection section.
{contact_email} The Joomla sender email address.

Variable Rules

  • Use the exact lowercase identifier, including underscores.
  • Do not translate variable names.
  • Do not add spaces inside the braces.
  • Unknown variables are rejected when the template is saved.
  • Legacy positional markers such as %s must not be entered in a customised template.
  • The editor converts translated legacy defaults into named variables before presenting them for editing.
  • Missing recommended variables generate a warning, not a fatal validation error.
  • Values inserted into an HTML template are escaped before rendering.

Template Example

Subject:

{site_name}: Registration confirmed for {event_title}

Plain-text body:

Hello {user_name},

Your registration for {event_title} is confirmed.

Date: {event_date}
Time: {event_time}
Venue: {venue}
City: {city}
Places: {places}

Event details:
{event_url}

Your reservation:
{reservation_url}

HTML body:

<h2>Registration confirmed</h2>
<p>Hello <strong>{user_name}</strong>,</p>
<p>Your registration for <strong>{event_title}</strong> is confirmed.</p>
<ul>
    <li>Date: {event_date}</li>
    <li>Time: {event_time}</li>
    <li>Venue: {venue}</li>
    <li>Places: {places}</li>
</ul>
<p><a href="/{reservation_url}">Open your reservation</a></p>

Footer And Data Protection

The shared sections are appended in this order:

  1. Footer.
  2. Data Protection notice.
SectionAttendee defaultAdministrator defaultPurpose
Footer Enabled Disabled Common site signature or contact information.
Data Protection Disabled Disabled Privacy information reviewed and explicitly enabled by the administrator.

Each language can have different shared content. The Data Protection section also stores the absolute privacy-policy URL used by {privacy_url}.

Scheduled Reminders

JEM installs three reusable reminder definitions:

  • 7 days before.
  • 24 hours before.
  • 2 hours before.

Administrators can publish, reorder, edit or add reminder definitions using minutes, hours, days or weeks. Internally, JEM stores the resulting interval in minutes.

Reminder Configuration Workflow

  1. Select the global Advanced operating profile.
  2. Open JEM Settings → Notifications.
  3. Enable event reminders.
  4. Confirm that the Joomla Scheduled Task reports an active status.
  5. Open JEM Control Panel → Notifications → Reminders.
  6. Review the reminder definitions and their Default for new events status.
  7. Create or edit an event.
  8. Open the event's Notifications section.
  9. Enable reminders and select one or more intervals.
  10. For recurring or custom-date events, optionally apply the selection to the complete series.

A reminder definition marked as Default for new events is preselected only for events created after global reminders are enabled. Existing events are not changed automatically.

Reminder Eligibility

A scheduled reminder is created only when:

  • JEM uses a profile which permits notification automation.
  • Global reminders are enabled.
  • The event has at least one published reminder interval selected.
  • The registration is confirmed.
  • The registration is not on the waiting list.
  • The Joomla user is active, unblocked and has a valid email address.
  • The event has a date and is not cancelled.
  • The calculated reminder time is still in the future.

For all-day events, the configured reference time is interpreted in the effective event timezone. Open-date events do not receive reminders.

Notification History, Retry And Resend

JEM 5.1.0 stores an immutable snapshot of every catalogued reservation notification and scheduled reminder. The snapshot includes the recipient, resolved language, rendered subject, rendered content, reservation revision, state and delivery attempts.

ActionBehaviour
Retry Attempts to deliver the same immutable recipient and rendered message again.
Resend Creates a new linked notification using the current account email, language, reservation state and template content.
User resend Allows the booking holder to request another copy from the reservation page, subject to the configured cooldown and rolling limit.

The persistent history currently applies to catalogued reservation, attendance, cancellation, waiting-list and reminder messages. General event and venue submission emails are not stored in this notification history.

Notification Permissions

PermissionPurpose
Manage Notifications Allows a Joomla user group to view and customise templates, footer and Data Protection content.
View Notification History Allows access to persisted notification snapshots and delivery attempts.
Retry and Resend Notifications Allows retries of eligible failed snapshots and controlled administrator resends.

Recommended Configurations

Small Community Website

  • Mailer profile: Standard.
  • System Mail receivers: No.
  • Distribution list: one event manager address.
  • Send as HTML: No.

Provides attendee confirmations and sends management notifications to a controlled address.

Editorial Submission Workflow

  • Mailer profile: Editorial.
  • New and edited events: submitter, creator and Admin.
  • Category ACL: enabled where editorial teams use Joomla access groups.
  • Registration recipients: configure manually if attendee confirmations are also required.

Suitable for frontend event submissions requiring review.

Multilingual Registration Messages

  • JEM 5.1.0 Advanced profile.
  • Customise each template separately for every installed JEM language.
  • Use named variables instead of copying translated values.
  • Configure the shared footer per language.

Each recipient receives the resolved language version, with fallback when required.

Event Reminder Workflow

  • JEM 5.1.0 Advanced profile.
  • Global reminders: enabled.
  • Reminder intervals: 7 days and 24 hours.
  • Data Protection notice: reviewed and enabled for attendees.
  • Joomla Scheduled Task: active.

Suitable for courses, conferences and events where registered users need advance reminders.

Troubleshooting

ProblemLikely causeWhat to check
No email is sent Plugin disabled, Joomla mail misconfigured or no recipient enabled. Enable the plugin, send a Joomla test email and review the recipient matrix.
Admin messages are not delivered Admin checkboxes are enabled but the administrator recipient list is empty. Enable System Mail receivers or add valid addresses to the Distribution list.
Category recipients receive nothing The category Email field is empty or contains invalid addresses. Edit every affected category and verify its comma-separated email list.
Category ACL recipients receive nothing ACL email is disabled, the category access level contains no applicable groups or the users are blocked. Review the category email option, its Joomla access level and the assigned users.
JEM Group recipients receive nothing No JEM group is assigned to the category or the group has no members. Review the category Group assignment and the JEM group membership.
Too many messages are delivered Community profile or bulk attendee recipients are enabled. Switch to Standard or Quiet and enable only the required matrix cells.
Messages remain plain text Send as HTML is disabled. Enable Send as HTML in the Mailer plugin.
Custom HTML is not used Send as HTML is disabled or the selected language template has no HTML body. Enable HTML delivery and review the correct language-specific template.
A variable is rejected The variable is unknown, translated, malformed or uses legacy %s syntax. Insert variables using the buttons offered by the template editor.
An image variable is empty The event or venue has no valid existing JEM image. Check the assigned image and its storage path.
Notifications menu is missing JEM uses the Essential profile or the user lacks the notification ACL permission. Select the Advanced profile and review JEM component permissions.
Reminders are not sent Global reminders, event reminders or the Joomla Scheduled Task are disabled. Check the global Notifications tab, event reminder selection and scheduler status.
An open-date event has no reminder This is expected behaviour. Assign a valid event date before enabling reminders.
A failed message cannot be retried The maximum attempts were reached or the user lacks the resend ACL permission. Review the notification state, attempt count, global maximum and permissions.
The latest content was not used by Retry Retry deliberately reuses the immutable stored snapshot. Use Resend when a new message must be created from current data and templates.

GitHub References