Skip to content

Setting up email

Do this before anything else. Password resets, staff logins, fee receipts and notices all travel by email. About 15 minutes.

Email settings live in three places

This surprises people, so it is worth understanding before you start. The system looks for email settings in this order, and the first one it finds wins:

LevelWho sets itWhen it is used
School SMTPEach school, in its own settingsAlways, for that school's email — it beats everything else
Platform settingsYou, in the superadmin panelWhen the school has none, and the toggle is on
.env fileYou, during installationWhen neither of the above applies

Which should you use?

Set the platform settings and leave it at that. Schools can add their own later if they want email to come from their own address — most never bother, and yours works for everybody.

Setting up platform email

Sidebar → Settings → Mail

Fill in these fields:

FieldWhat to enterExample
Mail HostYour provider's outgoing serversmtp.hostinger.com
Mail Port465 or 587 — see below587
Mail UsernameUsually the full email addressnoreply@yourdomain.com
Mail PasswordThat mailbox's password
Mail Encryptionssl for port 465, tls for port 587tls
Mail From AddressThe address email appears to come fromnoreply@yourdomain.com
Mail From NameThe name recipients seeSt Mary's School

Then switch Use These Settings to Active, or the system carries on using the .env file and your changes appear to do nothing.

Ports and encryption must match

465 goes with ssl. 587 goes with tls. Mixing them is the single most common reason email fails with a timeout or a handshake error.

Press Test Mail before Save Mail Settings. If the test arrives, save. If it does not, nothing has been changed yet.

Common providers

Confirm these with your provider — they do change.

ProviderHostPortEncryption
Hostinger emailsmtp.hostinger.com465ssl
cPanel mailboxmail.yourdomain.com465ssl
Gmail / Google Workspacesmtp.gmail.com587tls
Microsoft 365smtp.office365.com587tls
SendGridsmtp.sendgrid.net587tls

Gmail will not accept your normal password

Google blocks ordinary passwords for this. You must turn on 2-Step Verification on that Google account and generate an App Password, then use the 16-character app password as the Mail Password.

If you skip this you get "username and password not accepted", no matter how many times you retype the correct password.

Letting a school use its own address

A school that wants email to come from its own address sets this up itself, in its own settings. Once saved, that school's email always uses its own settings, whatever the platform is set to.

The school's test sends without saving, so a wrong password cannot break their email — if the test fails, nothing has changed.

If a school leaves the From address blank, the system falls back to the school's own email address and name automatically.

Sending a lot of email

Shared hosting mailboxes have sending limits — often a few hundred messages an hour. A school emailing 900 fee receipts will hit that limit, and messages will silently stop.

If you send in bulk, use a dedicated sending service such as SendGrid, Brevo or Amazon SES. They cost little at school volumes and will not suspend your hosting account for looking like a spam source.

If email is not arriving

Work down this list in order.

CheckHow
Is the cron job running?Most email is queued, not sent instantly. No cron means nothing sends and no error appears — check this first
Does Test Mail work?If yes, the settings are fine and the problem is elsewhere
Is Use These Settings on?If off, your saved settings are ignored and .env is used
Is MAIL_MAILER set to log in .env?Then email is written to a log file and never sent. It must be smtp
Do port and encryption match?465 = ssl, 587 = tls
Is it landing in spam?Very likely if the From address is a different domain to your sending server

The single most common cause

It is almost always the cron job, not the email settings. Test Mail sends immediately, but real email goes through the queue — so a broken cron job produces exactly this: the test works, real email never arrives.