chore: sync GovOPlaN module split state
This commit is contained in:
69
dev/mail-testbed/README.md
Normal file
69
dev/mail-testbed/README.md
Normal file
@@ -0,0 +1,69 @@
|
||||
# Campaign SMTP/IMAP Test Bed
|
||||
|
||||
This test bed provides dedicated non-production SMTP/IMAP infrastructure for
|
||||
campaign delivery checks. It uses GreenMail and must never be configured with
|
||||
production recipients or credentials.
|
||||
|
||||
## Start
|
||||
|
||||
```bash
|
||||
cd /mnt/DATA/git/govoplan-campaign/dev/mail-testbed
|
||||
cp .env.example .env
|
||||
docker compose --env-file .env up -d
|
||||
```
|
||||
|
||||
Default endpoints:
|
||||
|
||||
- SMTP: `127.0.0.1:3025`, plain transport
|
||||
- IMAP: `127.0.0.1:3143`, plain transport
|
||||
- GreenMail API/UI endpoint: `127.0.0.1:38080`
|
||||
|
||||
## Smoke Test
|
||||
|
||||
Run the transport smoke from the core virtual environment after installing the
|
||||
campaign and mail modules:
|
||||
|
||||
```bash
|
||||
cd /mnt/DATA/git/govoplan-campaign/dev/mail-testbed
|
||||
set -a
|
||||
. ./.env
|
||||
set +a
|
||||
/mnt/DATA/git/govoplan-core/.venv/bin/python run_transport_smoke.py
|
||||
```
|
||||
|
||||
The smoke sends and appends three messages:
|
||||
|
||||
- no attachment
|
||||
- one normal attachment
|
||||
- one password-protected AES ZIP attachment
|
||||
|
||||
It verifies SMTP authentication, IMAP authentication, folder listing, delivery
|
||||
to `INBOX`, and append-to-Sent behavior.
|
||||
|
||||
If the smoke is started immediately after `docker compose up -d`, GreenMail may
|
||||
bind the SMTP/IMAP ports before the services are fully ready. The smoke retries
|
||||
login and folder setup for `GOVOPLAN_MAIL_TEST_READY_TIMEOUT_SECONDS`.
|
||||
|
||||
## Use With A Campaign
|
||||
|
||||
Use the same settings in a campaign mail profile:
|
||||
|
||||
- SMTP host `127.0.0.1`, port `3025`, security `plain`
|
||||
- IMAP host `127.0.0.1`, port `3143`, security `plain`
|
||||
- username and password from `.env`
|
||||
- append folder from `GOVOPLAN_MAIL_TEST_SENT_FOLDER`
|
||||
|
||||
When changing the mailbox, keep `GOVOPLAN_MAIL_TEST_USER` equal to
|
||||
`${GOVOPLAN_MAIL_TEST_LOCAL_PART}@${GOVOPLAN_MAIL_TEST_DOMAIN}` because the
|
||||
compose file creates the GreenMail account from local part, password, and
|
||||
domain while login uses the full email address.
|
||||
|
||||
Then run the controlled sending checklist from
|
||||
`docs/CAMPAIGN_DELIVERY_RUNBOOK.md` for no attachment, one attachment, and
|
||||
password-protected ZIP campaign variants.
|
||||
|
||||
## Stop
|
||||
|
||||
```bash
|
||||
docker compose --env-file .env down -v
|
||||
```
|
||||
Reference in New Issue
Block a user