Email Setup

Enable password resets, invitation emails, shift reminders, and notifications.

How-To Guides › Email Setup
Advanced · Optional

FD Commander works fine without email. By default, all email features are hidden from the UI so nobody sees broken "forgot password" links or grayed-out notification checkboxes. The admin creates accounts and sets passwords manually, and operators manage their own shifts through the web interface.

If your club wants password resets, invitation emails, shift reminders, or security alerts, you just need to point FD Commander at an SMTP server. Once configured, the hidden features appear automatically.

What Gets Unlocked

When email is not configured, five pieces of the UI are hidden. Once you add SMTP credentials, they all appear:

  1. Forgot password link on the login page. Without email, the link doesn't exist because there's no way to deliver a reset token. With email, operators can reset their own passwords without bothering the admin.
  2. Send password reset email option in the admin panel. When an admin resets a user's password, they can choose to email a reset link instead of setting a password manually.
  3. Send invitation email checkbox when creating a new user. The admin can have FD Commander email the new user with a link to set their password, instead of handing them a temporary password in person.
  4. Email notifications section on each user's profile page. This includes toggles for security alerts, event notifications, and system announcements.
  5. Email shift reminders checkbox on the profile page. When enabled, operators get an email before their scheduled shifts.

If email is never configured, none of these elements appear in the UI. Operators never see features they can't use.

How detection works

FD Commander checks the MAIL_MAILER value in your .env file. If it's set to log or array (the defaults when email isn't configured), all email features are disabled. Any real transport like smtp, ses, or mailgun enables them.

Configuring SMTP

SSH into the server and edit the .env file in the FD Commander directory:

$ sudo nano /var/www/fd-commander/.env

Find the mail section and update it with your SMTP credentials:

# Mail configuration MAIL_MAILER=smtp MAIL_HOST=smtp.example.com MAIL_PORT=587 MAIL_USERNAME=your-smtp-username MAIL_PASSWORD=your-smtp-password MAIL_ENCRYPTION=tls MAIL_FROM_ADDRESS=fieldday@yourcallsign.com MAIL_FROM_NAME="FD Commander"

After saving the file, clear the config cache so the changes take effect:

$ cd /var/www/fd-commander && sudo php artisan config:cache

That's it. The email features will appear in the UI on the next page load.

Common SMTP Providers

Any SMTP-capable service works. Here are settings for a few common options:

Gmail (Google Workspace or personal)

MAIL_HOST=smtp.gmail.com MAIL_PORT=587 MAIL_ENCRYPTION=tls

You'll need to generate an App Password in your Google account settings. Regular passwords won't work if 2FA is enabled (and it should be).

Amazon SES

MAIL_MAILER=ses

If you're already running on AWS, SES is the simplest option. Set your AWS credentials in the .env file and change MAIL_MAILER to ses instead of smtp.

Mailgun / Postmark / SendGrid

All of these offer free tiers that cover more email than a Field Day event will ever need. Use their SMTP relay credentials with the standard smtp mailer.

Keep it simple

For a club running one event a year, Gmail with an App Password is the easiest setup. You don't need a dedicated email service unless you're sending hundreds of messages.

Verify It Works

The quickest way to confirm email is working is to test a password reset. Log out, click the "Forgot password?" link on the login page (it should now be visible), enter an email address, and check for the reset email. If it arrives, everything is wired up.

If the email doesn't arrive, check the application log for errors:

$ sudo tail -50 /var/www/fd-commander/storage/logs/laravel.log

Common problems: wrong SMTP port (try 465 with MAIL_ENCRYPTION=ssl if 587 doesn't work), incorrect App Password, or the "from" address not being verified with your email provider.

Backend guard

Even if a notification preference is somehow set in the database while email is unconfigured, FD Commander won't try to send it. The ReminderService checks whether email is configured before every send and short-circuits if it's not. This prevents queued jobs from failing silently or throwing errors.

Disabling Email Again

If you want to turn email features back off, set MAIL_MAILER=log in your .env file and clear the config cache. The UI elements will disappear and no emails will be sent.