3.7 KiB
3.7 KiB
SMTP Email Notification Setup
Configure SMTP email notifications for password resets, 2FA codes, and user registration approvals.
Quick Setup
All steps are done on your LOCAL machine (the one with the org-stack git repo).
1. Edit Local .env File
On your local machine, edit .env and add your SMTP credentials:
# Enable SMTP
SMTP_ENABLED=true
# SMTP Server Configuration
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your-email@gmail.com
SMTP_PASSWORD='your-app-password' # Use single quotes for passwords with special chars
SMTP_FROM=noreply@yourdomain.com
SMTP_USE_TLS=true
# Admin email for registration notifications
REGISTRATION_ADMIN_EMAIL=admin@yourdomain.com
Note: If your password contains special characters like ( ) $ " ', wrap it in single quotes.
2. Deploy from Local Machine
./deploy.sh
That's it! The deployment script:
- Syncs your
.envto the remote server - Automatically configures SMTP in all services
- Restarts containers
SMTP Provider Examples
Gmail
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your-email@gmail.com
SMTP_PASSWORD=your-16-char-app-password # Create at https://myaccount.google.com/apppasswords
SMTP_USE_TLS=true
SendGrid
SMTP_HOST=smtp.sendgrid.net
SMTP_PORT=587
SMTP_USER=apikey
SMTP_PASSWORD=your-sendgrid-api-key
SMTP_USE_TLS=true
Mailgun
SMTP_HOST=smtp.mailgun.org
SMTP_PORT=587
SMTP_USER=postmaster@your-domain.mailgun.org
SMTP_PASSWORD=your-mailgun-smtp-password
SMTP_USE_TLS=true
Office 365
SMTP_HOST=smtp.office365.com
SMTP_PORT=587
SMTP_USER=your-email@yourdomain.com
SMTP_PASSWORD=your-password
SMTP_USE_TLS=true
Testing
Test Authelia (Password Reset)
- Go to https://auth.yourdomain.com
- Click "Forgot password?"
- Enter your username
- Check email for reset link
Test Registration Service
- Submit a registration at https://register.yourdomain.com
- Admin receives notification email
- Approve the request at https://register.yourdomain.com/admin
- User receives credentials via email
Troubleshooting
Check Service Logs
Authelia:
ssh user@host 'cd ~/org-stack && docker compose logs authelia | grep -i smtp'
Registration:
ssh user@host 'cd ~/org-stack && docker compose logs registration | grep -i smtp'
Common Issues
Authentication Failed (535)
- Gmail: Enable 2FA and create an App Password
- Verify SMTP_USER and SMTP_PASSWORD are correct
Connection Refused
- Check SMTP_HOST and SMTP_PORT are correct
- Verify firewall allows outbound connections on port 587/465
Certificate Errors
- Ensure SMTP_USE_TLS=true for port 587
- Use SMTP_USE_TLS=false only for port 25 (not recommended)
Disable SMTP
To switch back to filesystem logging:
# In .env
SMTP_ENABLED=false
# Deploy
./deploy.sh
What Gets Sent
Authelia Sends:
- 2FA setup verification codes
- Password reset links
- New device registration confirmations
Registration Service Sends:
- Admin notification when user requests registration
- User approval with auto-generated credentials
- User rejection with reason
Security Notes
- SMTP passwords are stored in
.env(gitignored, not committed) - Use app passwords for Gmail/Google Workspace
- Rotate passwords regularly by updating
.envand redeploying