Files
bongo/docs/pop3.md
T
2026-07-22 17:58:11 +02:00

67 lines
2.8 KiB
Markdown

# POP3 and POP3S
Bongo keeps POP3 for simple and older mail clients while using the same
accounts, authentication policy, message files, flags, and per-user mail quota
as IMAP and Webmail. POP3 is an access protocol only: SMTP remains responsible
for message submission.
## Listeners and TLS
The suffixless `pop3` configuration document controls the two listeners:
```json
{
"version": 1,
"port": 110,
"port_ssl": 995,
"allow_legacy_tls": false,
"proxy_protocol_enabled": false,
"proxy_protocol_networks": []
}
```
Port 110 offers `STLS` before authentication. Port 995 uses implicit TLS.
Password and GNU GSASL mechanisms are made available only on a protected
connection under the secure default. Enabling `allow_legacy_tls` is an
explicit compatibility exception for obsolete clients; current TLS is still
negotiated when both peers support it.
PROXY protocol must remain disabled unless a trusted TCP proxy is actually in
front of POP3. Enabling it requires at least one exact trusted IPv4 address or
CIDR in `proxy_protocol_networks`; ordinary clients must never be included.
## Commands and capabilities
The server implements the normal authorization and transaction commands:
`USER`, `PASS`, `AUTH`, `APOP`, `STAT`, `LIST`, `UIDL`, `RETR`, `TOP`, `DELE`,
`RSET`, `NOOP`, `CAPA`, `UTF8`, `STLS`, and `QUIT`. Multiline replies apply
POP3 dot transparency and canonical CRLF termination even when a stored
message was read in chunks.
`CAPA` reports the implemented `TOP`, `RESP-CODES`, `AUTH-RESP-CODE`,
`PIPELINING`, `EXPIRE NEVER`, `UIDL`, and `UTF8` features. `STLS`, `USER`, and
the `SASL` mechanism list are state-dependent. After `UTF8` succeeds, `STLS`
is no longer offered and is rejected, preventing already-buffered cleartext
UTF-8 session state from crossing the TLS boundary.
## Deletion and quota semantics
`DELE` marks a message only for the current POP3 transaction. `RSET` or a
disconnect leaves it in the mailbox; a successful `QUIT` commits the marked
deletions. Storage is therefore released only after that commit. POP3 has no
standard quota query command, but delivery to the same account is still
limited by the shared Store quota described in [quotas.md](quotas.md).
Use IMAP or Webmail when a client needs server-side folders, flags, searching,
or concurrent mailbox changes. POP3 clients which delete downloaded mail
should be tested carefully before enabling that option for a large account.
## Operational checks
After changing the listener or TLS policy, validate and synchronize the
configuration, restart the agent through `bongo-manager`, and test both the
clear listener's `STLS` transition and a direct POP3S login. Also verify
`STAT`, `LIST`, `RETR`, `TOP`, `UIDL`, deletion rollback on disconnect, and
deletion commit on `QUIT`. The release gate is recorded under POP-01 through
POP-06 in [release-testing-0.7.md](release-testing-0.7.md).