litestar-org / litestar-org/litestar-fullstack
Bug: Mailpit does not receive email
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 610
- Forks
- 86
- PR merge metrics
- No merged PRs in 30d
Description
### Description
When deploying an new instance and using Docker local resources (i.e. `make start-infra`), the Mailpit server fails to receive the verification email for new account creation.
Mailpit is up and running locally on port 11025 (18025 for WebUI) and `.env` is pointing to it:
```bash
# Email Configuration (SMTP)
EMAIL_ENABLED=true # Set to true to enable email sending
EMAIL_SMTP_HOST=localhost # For Mailpit: localhost, for production: your SMTP host
EMAIL_SMTP_PORT=11025 # For Mailpit: 11025, for production: 587 (TLS) or 465 (SSL)
EMAIL_SMTP_USER= # Mailpit doesn't require auth, leave empty for dev
EMAIL_SMTP_PASSWORD= # Mailpit doesn't require auth, leave empty for dev
EMAIL_USE_TLS=false # Mailpit doesn't use TLS, set true for production
EMAIL_USE_SSL=false # Mailpit doesn't use SSL, set true for production
EMAIL_FROM_ADDRESS=noreply@localhost # Default from email
EMAIL_FROM_NAME="Litestar Dev App" # Default from name
EMAIL_TIMEOUT=30 # SMTP connection timeout in seconds
```
When an account is created, console shows no errors and appears to attempt mail delivery successfully, but the email just never shows up in Mailpit. I don't see any other logs to check for further diagnosis.
### URL to code causing the issue
_No response_
### MCVE
```python
```
### Steps to reproduce
```bash
```
### Screenshots
### Logs
```bash
2026-01-31T02:45:35.248379Z [info ] Found user avatar_url=None created_at=datetime.datetime(2026, 1, 31, 2, 45, 35, 217850, tzinfo=zoneinfo.ZoneInfo(key='Etc/UTC')) email=tim.tester.fourth@mydomain.com failed_reset_attempts=0 id=UUID('019c11f1-0971-7701-9a78-26dcb1e29d3e') is_active=True is_superuser=False is_two_factor_enabled=False is_verified=False joined_at=datetime.date(2026, 1, 31) login_count=0 name=Tim password_reset_at=None phone=None reset_locked_until=None two_factor_confirmed_at=None updated_at=datetime.datetime(2026, 1, 31, 2, 45, 35, 217854, tzinfo=zoneinfo.ZoneInfo(key='Etc/UTC')) username=None verified_at=None
------------------------------------------------------------
Subject: Verify your email address for Litestar Fullstack Template
From: Litestar Dev App
To: tim.tester.fourth@mydomain.com
Verify your email address Litestar Fullstack Template Secure Ap pplication Platform Verify your email address Hi Tim, Thank you for signing up for Litestar Fullstack Template.
```
### Package Version
Latest:
```
Loading environment configuration from .env
Using Litestar Fullstack Template app from env: 'app.server.asgi:create_app'
Starting Granian server process with uvloop ──────────────────────────────────────────────────────────────────────────────────────────
┌──────────────────────────────┬────────────────────────────────────────────────────────┐
│ Litestar version │ 2.19.0 │
│ Debug mode │ Enabled │
│ Python Debugger on exception │ Disabled │
│ CORS │ Enabled │
│ CSRF │ Disabled │
│ OpenAPI │ Enabled path=/schema │
│ Compression │ Disabled │
│ Middlewares │ JWTCookieAuthenticationMiddleware, ViteProxyMiddleware │
└──────────────────────────────┴────────────────────────────────────────────────────────┘
• Applied Vite environment variables
✓ Types exported → openapi: src/js/web/src/lib/generated/openapi.json
• Starting Vite server with HMR
✓ Vite process started
2026-01-31T02:45:06.594704Z [info ] Starting granian (main PID: 28681)
$ vite
2026-01-31T02:45:06.596741Z [info ] Listening at: http://0.0.0.0:8000
2026-01-31T02:45:06.599363Z [info ] Spawning worker-1 with PID: 28688
✓ SPA handler initialized
2026-01-31T02:45:06.747456Z [info ] Discovered domain components by_domain={'accounts': ['AccessController', 'EmailVerificationController', 'MfaChallengeController', 'MfaController', 'OAuthAccountController', 'OAuthController', 'ProfileController', 'RoleController', 'UserController', 'UserRoleController'], 'admin': ['AdminTeamsController', 'AdminUsersController', 'AuditController', 'DashboardController'], 'system': ['SystemController'], 'tags': ['TagController'], 'teams': ['TeamController', 'TeamInvitationController', 'TeamMemberController']} controllers=19 repositories=0 schemas=63 services=12 signals=6
2026-01-31T02:45:06.748048Z [info ] Started worker-1
2026-01-31T02:45:06.748133Z [info ] Started worker-1 runtime-1
• Watching: openapi.json
• Generating TypeScript types...
• openapi-ts config: openapi-ts.config.ts
• Schema types (unchanged)
• Static props types (unchanged)
✓ TypeScript artifacts updated (1085ms)
VITE v7.3.1 ready in 1757 ms
➜ Local: http://localhost:3006/static/
➜ Network: http://10.255.255.254:3006/static/
➜ Network: http://172.18.100.8:3006/static/
LITESTAR 2.19.0
➜ Mode: SPA (index.html)
➜ App URL: http://localhost:8000 ✓
➜ Dev Server: http://localhost:3006
➜ Type Gen: src/lib/generated/
```
### Platform
- [ ] Linux
- [ ] Mac
- [ ] Windows
- [ ] Other (Please specify in the description above)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Run make start-infra with the supplied .env settings, create a new account, and inspect Mailpit on ports 11025 and 18025 alongside the application logs. Trace the verification-email path from account creation and determine why delivery is reported as successful without appearing in Mailpit; done means the verification email is received locally and useful diagnostics are available for failures.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, python
- Domain
- backend, devops
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 42/100