mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
This PR adds a fake SMTP server for scale testing. It collects emails sent during tests, which you can then check using the HTTP API. #### Changes - Added mock SMTP server - Added `coder scaletest smtp` CLI command - Implemented HTTP API endpoints to retrieve messages by email - Added auto-purge to prevent memory issues #### HTTP API Endpoints - `GET /messages?email=<email>` – Get messages sent to an email address - `POST /purge` – Clear all messages from memory The HTTP API parses raw email messages to extract the **date**, **subject**, and **notification ID**. Notification IDs are sent in emails like this: ```html <p> <a href="http://127.0.0.1:3000/settings/notifications?disabled=4e19c0ac-94e1-4532-9515-d1801aa283b2" style="color: #2563eb; text-decoration: none;"> Stop receiving emails like this </a> </p> ``` #### CLI ```bash coder scaletest smtp --host localhost --port 33199 --api-port 8080 --purge-at-count 1000 ``` **Flags:** - `--host`: Host for the mock SMTP and API server (default: localhost) - `--port`: Port for the mock SMTP server (random if not specified) - `--api-port`: Port for the HTTP API server (random if not specified) - `--purge-at-count`: Max number of messages before auto-purging (default: 100000)