3.5 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 a destination policy requires 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.
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.