54 lines
1.7 KiB
Markdown
54 lines
1.7 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
|
||
|
|
```
|
||
|
|
|
||
|
|
## 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.
|