What you'll have at the end
A configured email alert channel in NightOwl that sends through your Gmail account. New issues, resolved issues, missed scheduled tasks, and queue failures land in your inbox — without you running an SMTP server, paying for Postmark, or verifying a domain.
END STATE
[ SCREENSHOT PENDING ]
Gmail inbox with a NightOwl alert email titled 'New issue: AppointmentController::store — TypeError', showing the issue summary, fingerprint, count, and a 'View in dashboard' button.
Why Gmail SMTP works for NightOwl alerts
Three properties make Gmail a clean fit for low-volume alert delivery:
- Free. Up to 500 outbound emails per 24 hours on free Gmail; 2,000 on Workspace. Most Laravel apps fire 5-50 alerts per week.
- No domain verification. You authenticate as yourself, send from yourself. No SPF/DKIM setup, no warmup period, no postmaster questions.
- Standard SMTP. Plain port 587 + TLS — works from any host, in any container, with no provider-specific SDK.
Two catches worth knowing up front:
- Gmail's mail queue can delay alerts during incidents. Gmail SMTP accepts your message immediately, but Google queues outbound delivery on its side. Quiet periods: 5-15 seconds. Burst periods (which is exactly when you need alerts): 30 seconds to 2 minutes, sometimes longer if Gmail rate-limits. This is Gmail's queue, not NightOwl — the agent fires the alert the instant the issue is created. For guaranteed sub-10-second delivery, use Postmark or SendGrid instead. Both have free tiers.
- 500 emails/day cap on free Gmail. Sustained high alert volume hits the wall. In practice, NightOwl groups exceptions by fingerprint and only fires
issue.newonce per new fingerprint, so volume stays well under 500/day during normal incidents — but the cap exists.
Step 1 — Enable 2-Step Verification
Gmail App Passwords require 2-Step Verification on the account. If you don't have it on:
- Visit myaccount.google.com/security
- Click 2-Step Verification
- Add a phone number or hardware key, follow the prompts
Takes about 60 seconds. Skip this and the App Passwords page won't even be accessible.
STEP 01
[ SCREENSHOT PENDING ]
Google Account → Security page showing '2-Step Verification' enabled with a green check, listing the configured phone number as the second factor.
Step 2 — Generate a 16-character App Password
Go to myaccount.google.com/apppasswords. Enter a label (e.g. "NightOwl") and click Create. Google shows a 16-character password in groups of four — looks like abcd efgh ijkl mnop.
Copy it without the spaces. NightOwl (and most SMTP clients) expect the 16 characters concatenated. This is shown only once; if you lose it, generate a new one.
STEP 02
[ SCREENSHOT PENDING ]
Google App Passwords page showing the generated 16-character password 'abcd efgh ijkl mnop' for the label 'NightOwl', with a 'Done' button.
Step 3 — Open the email channel form in NightOwl
Sign in to the NightOwl dashboard. Pick your application, then go to Settings → Issues. Scroll to the Email section and click Configure SMTP (or Add another if you already have an email channel set up).
STEP 03
[ SCREENSHOT PENDING ]
NightOwl Settings → Issues tab with the Email section showing a 'Configure SMTP' button (empty state) or 'Add another' button (with existing channels).
Step 4 — Fill in Gmail's SMTP settings
Plug these values into the NightOwl email channel form:
| Field | Value |
|---|---|
| Channel Name | On-call Email |
| Host | smtp.gmail.com |
| Port | 587 |
| Encryption | TLS |
| Username | you@gmail.com |
| Password | <App Password from Step 2, no spaces> |
| From Address | you@gmail.com |
| From Name | NightOwl Alerts |
| To Addresses | team@yourdomain.com |
From Address must equal Username. Gmail rejects messages where the From doesn't match the authenticated user — you can't send "from" a custom domain without Workspace + a configured alias.
STEP 04
[ SCREENSHOT PENDING ]
NightOwl email channel form with all Gmail SMTP fields filled in: smtp.gmail.com, port 587, TLS encryption, Gmail username/password, From and To addresses set.
Step 5 — Send a test alert
Save the channel, then click Send Test. NightOwl fires a synthetic alert through Gmail. Check your inbox — under normal conditions, it lands in 5-15 seconds.
If nothing arrives in 60 seconds:
- Check the channel's Last delivery status — Gmail returns a clear error if auth failed
- Confirm the App Password has no spaces
- Verify 2-Step Verification is still on (disabling it revokes every App Password)
- Check the spam folder — first deliveries from a new account/IP combination occasionally get filtered
STEP 05
[ SCREENSHOT PENDING ]
NightOwl email channel detail page after a successful test, showing 'Last delivery: 6 seconds ago — 200 OK' and a Gmail inbox screenshot beside it with the test alert visible.
Step 6 — Subscribe the channel to alert events
NightOwl currently exposes four issue-lifecycle events. Tick the ones you want this channel to receive:
- issue.new — a new exception fingerprint appears (always on)
- issue.reopened — a previously-resolved issue fires again (recommended on)
- issue.resolved — issue triaged closed (optional, useful for solo triage)
- issue.ignored — issue muted (optional)
For a solo dev, leave all four on. For a team where one person triages, keep issue.new and issue.reopened only — turning off issue.resolved/ignored avoids inbox noise when colleagues triage. Because alerts only fire on issue lifecycle changes (not on every exception occurrence), volume stays comfortably under Gmail's 500/day cap during normal incidents.
STEP 06
[ SCREENSHOT PENDING ]
NightOwl alert channel events panel showing checkboxes for issue.new, issue.reopened, issue.resolved, issue.ignored — all four ticked for solo use.
When to graduate to a transactional provider
Gmail SMTP is good enough until it's not. Three signals to switch:
- You've hit Gmail's queue lag during a real incident — alerts arrived 2 minutes after PagerDuty did. Move to Postmark/SendGrid (sub-10-second delivery, real SLAs).
- You're approaching the 500/day cap — sustained alert volume past that means either upgrade to Workspace (2,000/day) or switch to a provider that doesn't cap.
- You want branded sender addresses — alerts from
alerts@yourdomain.cominstead of your personal Gmail. Postmark / SendGrid / Resend all handle this; free Gmail does not.
Postmark's free tier is 100 emails/month; SendGrid's is 100/day; Resend's is 3,000/month. Any of them swaps in cleanly — same NightOwl email channel form, just different host/credentials.
PREFER A WEBHOOK?
Slack and Discord channels are zero-config alternatives
If your team lives in Slack or Discord, NightOwl ships native channels for both — paste an incoming webhook URL, done. No SMTP, no daily limits, instant delivery.
Email is still useful as a fallback when chat is down — but it doesn't have to be your primary channel.