Appearance
Email Configuration
This page explains how to configure outbound email for SaasForgeKit.
Why this matters
SaasForgeKit sends important transactional emails, including:
- Workspace invitations
- Billing lifecycle emails (trial started, payment failed, invoice paid, etc.)
- Account-related notifications
If email is not configured correctly, these flows will fail silently or only log locally.
Required .env variables
At minimum, configure:
env
MAIL_MAILER=smtp
MAIL_HOST=
MAIL_PORT=
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=
MAIL_FROM_NAME="${APP_NAME}"If you use API-based providers (Mailgun, Postmark, Resend, SES), set the provider-specific keys as required by Laravel.
Common provider patterns
- SMTP provider: use
MAIL_MAILER=smtpwith host/port/credentials. - Log-only (local dev): use
MAIL_MAILER=log. - SES/Postmark/Resend: configure service credentials and set the matching mailer.
App-level email toggles
SaasForgeKit includes admin-level toggles for billing and lifecycle emails:
text
Admin -> Settings -> EmailsThese toggles control whether specific notification types are sent.
Queue requirement
In production, run queue workers so queued mail is processed reliably.
- If queue workers are down, email delivery will be delayed or blocked.
- Ensure your deployment includes a persistent worker or cron-based queue processing.
Validate your setup
- Confirm
.envmail values are correct. - Clear config cache after changes.
- Send a workspace invitation and confirm delivery.
- Trigger a billing notification in Stripe test mode and confirm delivery.