66 lines
1.9 KiB
Markdown
66 lines
1.9 KiB
Markdown
# Legacy Email Proxy
|
|
|
|
Proxy an unauthenticated, unencrypted POP3 / SMTP server to authenticated IMAPS and SMTPS backends.
|
|
|
|
## Features
|
|
|
|
- Exposes legacy `POP3` on `0.0.0.0:110` and legacy `SMTP` on `0.0.0.0:25`
|
|
- Forwards POP3 mailbox access to an IMAP backend
|
|
- Forwards SMTP submissions to an SMTPS backend
|
|
- Backend host, ports, and credentials are configured via environment variables
|
|
|
|
## Environment Variables
|
|
|
|
- `POP3_BIND_ADDR` (default `0.0.0.0`)
|
|
- `POP3_BIND_PORT` (default `110`)
|
|
- `SMTP_BIND_ADDR` (default `0.0.0.0`)
|
|
- `SMTP_BIND_PORT` (default `25`)
|
|
|
|
- `BACKEND_IMAP_HOST`
|
|
- `BACKEND_IMAP_PORT` (default `993`)
|
|
- `BACKEND_IMAP_USER`
|
|
- `BACKEND_IMAP_PASS`
|
|
- `BACKEND_IMAP_USE_SSL` (default `true`)
|
|
- `BACKEND_IMAP_USE_STARTTLS` (default `false`)
|
|
|
|
- `BACKEND_SMTP_HOST`
|
|
- `BACKEND_SMTP_PORT` (default `465`)
|
|
- `BACKEND_SMTP_USER`
|
|
- `BACKEND_SMTP_PASS`
|
|
- `BACKEND_SMTP_USE_SSL` (default `true`)
|
|
- `BACKEND_SMTP_USE_TLS` (default `false`)
|
|
|
|
## Build and run
|
|
|
|
This project targets the latest Python LTS release. The included `Dockerfile` uses `python:3.12-slim`, which is compatible with Python 3.12 and later LTS releases.
|
|
|
|
```bash
|
|
docker build -t legacy-email-proxy .
|
|
docker run --rm -p 110:110 -p 25:25 \
|
|
-e BACKEND_IMAP_HOST=imap.example.com \
|
|
-e BACKEND_IMAP_PORT=993 \
|
|
-e BACKEND_IMAP_USER=imap-user \
|
|
-e BACKEND_IMAP_PASS=imap-pass \
|
|
-e BACKEND_SMTP_HOST=smtp.example.com \
|
|
-e BACKEND_SMTP_PORT=465 \
|
|
-e BACKEND_SMTP_USER=smtp-user \
|
|
-e BACKEND_SMTP_PASS=smtp-pass \
|
|
legacy-email-proxy
|
|
```
|
|
|
|
## Tests
|
|
|
|
Install development dependencies and run the test suite:
|
|
|
|
```bash
|
|
python -m venv .venv
|
|
source .venv/bin/activate
|
|
python -m pip install --upgrade pip
|
|
pip install -r requirements-dev.txt
|
|
pytest -q
|
|
```
|
|
|
|
## Notes
|
|
|
|
This implementation begins the proxy with a minimal POP3 command set and SMTP delivery path. It is designed to start development on the required application architecture.
|