Skip to content

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=smtp with 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 -> Emails

These 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

  1. Confirm .env mail values are correct.
  2. Clear config cache after changes.
  3. Send a workspace invitation and confirm delivery.
  4. Trigger a billing notification in Stripe test mode and confirm delivery.