Skip to content

Email Configuration

The platform sends emails for email verification, password reset, and user notifications.

Configuration via Admin Panel

Mail is configured only through the admin panel, not via .env. MAIL_* variables in .env are not used.

Admin Panel → Mail (/admin-panel/settings/mail)

Settings are stored in the config table (key mail, JSON) and applied via MailServiceProvider without restarting the server:

FieldPurpose
MailerTransport (smtp)
HostSMTP server address
PortPort (465, 587, 25)
UsernameSMTP login — also used as the sender address (mail.from.address)
PasswordSMTP password
EncryptionEncryption: ssl, tls, or none
From NameSender name

There is no separate "From Address" field: the sender address is taken from Username.

Settings take effect immediately after saving — no container restart needed.

Enter parameters in the admin panel (Mail section). In dev, Mailhog is not included by defaultdocker-compose.yml does not ship an SMTP interceptor.

Gmail

Host: smtp.gmail.com
Port: 587
Encryption: tls
Username: your@gmail.com

For Gmail, use an App Password with 2FA enabled.

Mailgun

Host: smtp.mailgun.org
Port: 587
Encryption: tls

Yandex Mail

Host: smtp.yandex.ru
Port: 465
Encryption: ssl
Username: your@yandex.ru

Sendgrid

Host: smtp.sendgrid.net
Port: 587
Encryption: tls
Username: apikey
Password: {your API key}

Testing Mail

After configuring SMTP, send a test email via Artisan:

bash
docker compose exec app php artisan tinker
php
Mail::raw('Test', fn($m) => $m->to('test@example.com')->subject('Test'));

Debugging Issues

When mail delivery fails:

  1. Check storage/logs/laravel.log for SMTP errors
  2. Verify the SMTP server is reachable from the container
  3. Check SPF/DKIM records for your domain
  4. The sender address (Username) should match the SMTP account's domain

System Email Events

Categories of emails the platform sends:

EventRecipient
Email verificationNew user
Password resetUser
Notifications (reactions, replies, mentions)Subscribers
NewsletterNewsletter subscribers

Users control notification delivery via Settings → Notifications.

Released under the MIT License.