JoomSchool's private messaging system is the school's internal mailbox: a way for administrators, teachers, students and parents to send each other messages with optional file attachments without using personal email.
This article covers the inbox model, sending messages, replies, attachments and the Notifications and PMS options.
Overview
Private messages are stored inside the JoomSchool database, not in any external email server. Each message has a sender, a recipient, a subject, a body and zero or more file attachments. Replies form a thread tied to the original message.
Messages live in two places:
- Admin view — Components → JoomSchool → Messages — the administrator sees every message ever sent. Useful for auditing, moderation and recovering deleted threads.
- Frontend — every signed-in student, teacher and parent has a personal inbox at the Message menu item, with an envelope icon in the top navigation showing the unread count.
Email notifications are optional: when enabled, the recipient also gets a copy of the message at the email address on their Joomla user account.
Prerequisites
- Students, teachers and parents exist with linked Joomla accounts (so messages have valid email addresses for notifications).
- Components → JoomSchool → Options → Attachments sets the allowed file formats, size and count for any file attached to a message.
- Optionally, Components → JoomSchool → Options → Notifications is set to Enable for "When user receive a new private message".
- Optionally, Components → JoomSchool → Options → PMS is set to Enable for "Allow private messaging to sections" if you want teachers to send mass messages to whole sections.
Who can message whom
The recipient picker on the Compose form changes depending on who is logged in.
From the admin view
Two recipient types are available:
- Student — any published student in the database.
- Teacher — any published teacher in the database.
From the frontend
The recipient picker is a To dropdown:
| Logged-in role | Can write to |
|---|---|
| Student | Teachers; other students (only if their group also includes the messaging permission); sections (if the PMS option is enabled) |
| Teacher | Students; parents; sections (if the PMS option is enabled) |
| Parent | Teachers |
| Administrator | Any of the above through the admin view |
Parents cannot message students directly through the frontend in the default setup; the section-level option exists for teacher-to-section announcements rather than student-to-student.
Sending a message
From the admin view
- Open Components → JoomSchool → Messages and click New.
- The form has these fields:
| Field | Description | Required |
|---|---|---|
| To | Recipient type — Student or Teacher. | Yes |
| Student / Teacher Name | The picker that appears once you choose the type. | Yes |
| Subject | Short summary of the message. | Yes |
| Message | Body text. | Yes |
| Attachment | One or more files. Multi-select; subject to the limits in Options → Attachments. | No |
- Click Save & Close. The recipient gets a row in their frontend inbox; if Notifications is enabled, they also get an email.
From the frontend (Compose)
- Click Message in the top navigation, then Compose (or the equivalent New button).
- Pick the recipient type from the To dropdown.
- Type the recipient's name in the search field; suggestions appear after a few characters. Click the right person.
- Fill in Subject and the Message body.
- Attach one or more files via the Attachment field if needed.
- Click Send.
Replies and threading
Click any message in the inbox to open it. Below the original body there's a Reply form with the same fields (message body and attachment). Click Reply to add to the thread.
The thread keeps the original sender and subject; recipients see the full back-and-forth in date order. Each reply is a separate database record but is grouped in the UI.
Attachments
The Attachment field is a multi-file input. Constraints come from Components → JoomSchool → Options → Attachments:
| Setting | Controls |
|---|---|
| Allowed File Format | Comma-separated list of accepted extensions. Defaults: zip,pdf,jpg,png,jpeg,doc,docx,xls. |
| Max File Size | Maximum size per file in megabytes. Default 10. |
| Upload Number | Maximum number of files attached to a single message. Default 5. |
PHP's upload_max_filesize and post_max_size directives must be at least as large as Max File Size; otherwise the JoomSchool limit is silently overridden by PHP.
Attachments are stored on the server filesystem under JoomSchool's media folder and are served back via download links inside the message thread.
Email notifications
When Components → JoomSchool → Options → Notifications → When user receive a new private message is set to Enable, JoomSchool sends an email to the recipient's account email any time:
- A new message is sent to them
- A new reply is added to a thread they're part of
The email contains the subject and body in plain text, and a link back to the inbox. There is no separate template editor — the format is fixed, but the from-address respects Joomla's global mail configuration.
If you don't want users notified by email at all, leave the option set to Disable (the default).
Section-wide messages
The PMS option Allow private messaging to sections lets teachers compose a single message addressed to every student in a chosen section. To use it:
- Enable the option in Components → JoomSchool → Options → PMS.
- Log in as a teacher.
- Open Compose; the To dropdown now has a Section entry.
- Choose Section, pick the section, fill in the subject and body, and send.
Each student in the section gets their own copy of the message and their own email notification. Replies stay between the individual student and the teacher — the section is only the addressing convenience, not a group thread.
Searching and filtering the inbox
Both the admin view and the frontend inbox have:
- A keyword search across subject and body
- A read / unread filter (frontend only)
- A date filter
The admin view also allows filtering by sender type (Student / Teacher / Parent) so you can audit one role's messages.
Tips & Best Practices
- Use descriptive subjects. "Question" or "Hi" are useless to search later. "Math homework — Class 6 Section A" is searchable forever.
- Keep attachments small. A 10 MB attachment slows down email notifications dramatically. Resize photos before attaching, and link to large documents from announcements rather than emailing them.
- Use messages for one-to-one conversations, announcements for one-to-many. Section-wide messages are a third option, but parents don't see them — for school-to-parent broadcasts, use announcements.
- Audit the message log periodically. Once a year, archive older threads to keep the database tidy.
- Don't disable Notifications during the school year — users get used to email replies, and a sudden silence makes them miss messages.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| Message sent but recipient never received an email. | Notifications option is set to Disable, or the recipient's account email is wrong. | Enable Notifications; check the recipient's email in Users → Manage. |
| Attachment upload fails with no error. | The file is larger than Max File Size in Options → Attachments, or its extension isn't in the allowed list. | Check both settings; resize or convert the file. |
| Section option missing from the To dropdown. | PMS option is disabled. | Enable "Allow private messaging to sections" in Options → PMS. |
| Message thread is missing recent replies. | A reply may have been trashed accidentally. | Check the admin view's Trash filter; restore if needed. |
| Email notifications go to spam. | School's mail is being flagged by recipients' providers. | Configure SPF/DKIM on the domain that sends Joomla mail; use a transactional service if necessary. |
| Multiple notifications received for one message. | The user is in multiple groups (e.g. a teacher who is also a parent) and the notification logic fires per role. | Currently expected behaviour; remove duplicate group memberships if it's a problem. |
| Cannot find the recipient when typing a name. | The recipient is unpublished, archived or trashed in JoomSchool. | Re-publish the user record. |