4.1 KiB
Protocol overview
Bongo keeps compatibility with older standards where that can be done without weakening the default policy, while advertising modern extensions only when their handlers and tests are present.
Mail transport
The SMTP server supports classic SMTP and ESMTP with SIZE, PIPELINING,
8BITMIME, DSN, CHUNKING/bounded BDAT, optional SMTPUTF8, STARTTLS,
SASL authentication, and REQUIRETLS on TLS-capable listeners. BINARYMIME
is deliberately not advertised or accepted. Authenticated submission and
implicit TLS use listener-specific policy; Internet delivery uses
opportunistic STARTTLS unless REQUIRETLS, DNSSEC-authenticated DANE, or an
RFC 8461 MTA-STS destination policy requires authenticated TLS.
LMTP transports are available for local downstream services such as Mailman.
Trusted SMTP/LMTP peers can receive original-client metadata through
negotiated XCLIENT or XFORWARD, or through explicitly configured fallback
headers. Incoming HAProxy PROXY v1/v2 is a separate, source-restricted
connection feature.
See smtp.md, tls.md, and mail-authentication.md.
Mail access
IMAP advertises IMAP4rev2, IMAP4rev1, and legacy IMAP4, plus the
implemented capabilities documented in imap.md. This preserves
basic access for old clients while allowing modern UTF-8 mailbox and message
handling after ENABLE UTF8=ACCEPT.
POP3 implements the normal transaction commands and advertises TOP,
RESP-CODES, AUTH-RESP-CODE, PIPELINING, EXPIRE NEVER, UIDL, and
UTF8. STLS is offered before authentication; SASL and password login are
advertised only according to the TLS policy. POP3S provides implicit TLS.
After a successful UTF8 command, STLS is no longer advertised and is
rejected so that the negotiated UTF-8 session state cannot cross into TLS.
Both IMAP STARTTLS and POP3 STLS discard buffered cleartext before negotiating
TLS.
Mail-storage limits are enforced by the shared Store for SMTP delivery, IMAP,
POP3, Web access, and external collection. IMAP exposes RFC 9208 quota queries;
POP3 has no standardized quota command and releases charged storage only when
its QUIT update transaction successfully commits marked deletions. See
Mail storage quotas.
Server-side filtering
ManageSieve uses TCP 4190 and implements the RFC 5804 management commands,
including script upload, activation, listing, retrieval, rename, deletion,
space checks, and syntax checks. The Sieve engine reports fileinto,
envelope, body, variables, vacation, and vacation-seconds support.
Authentication mechanisms are obtained from the shared GNU GSASL policy and
are offered after TLS.
Thunderbird and other ManageSieve clients can update the active script without depending on the Web interface. Later interfaces, including a future JMAP implementation, must operate on the same user filter model rather than inventing incompatible rules.
Web, calendars, and contacts
The Python 3 Web service provides Webmail and user settings. CalDAV exposes calendars using iCalendar data, and CardDAV exposes address books using vCard data. External HTTPS is normally supplied by a reverse proxy; the Bongo Web listener itself defaults to HTTP on loopback.
JMAP and Exchange/MAPI protocols are not part of Bongo 0.7. JMAP is planned for 0.9 after the mail protocols and Store API are stable. Native Exchange/Outlook compatibility remains research beyond that milestone.
Private Bongo protocols
The Store and Queue protocols coordinate local Bongo agents. They are not public client protocols and have no Internet compatibility promise. Bind them to a private interface and firewall ports 689 and 8670 from clients.
Authentication and message security
Mail protocols share GNU GSASL and the same Bongo account/app-password policy. Password mechanisms are not exposed on an unencrypted connection. Optional TOTP protects the master login; app passwords keep non-interactive clients usable. SPF, DKIM, and DMARC authenticate incoming domain claims; outgoing DKIM and SRS cover signing and forwarding. None of these replaces TLS or user authentication.