Files
bongo/docs/external-accounts.md
T
Mario Fetka 92e0ba117d
Debian Trixie package bundle / packages (push) Failing after 14m43s
Bound external collector queue growth
2026-07-23 22:15:21 +02:00

2.6 KiB

External mail accounts

External IMAP and POP3 credentials are stored in external-accounts.sqlite. Credential values are encrypted with AES-256-GCM; the per-installation master key is stored separately as external-accounts.key in Bongo's DBF directory. Both files are restricted to the Bongo service account.

Back up the database and master key together. A database backup without the matching key cannot decrypt external-account credentials. Do not copy the key to another installation unless the associated database is moved as well.

The collector verifies TLS certificates and host names by default. Provider passwords are never included in URLs or log messages. Existing plaintext credential records from early 0.7 development versions are encrypted automatically the next time they are read.

For an internal provider signed by a private certificate authority, set ca_file in /etc/bongo/config.d/collector to the absolute path of a PEM CA bundle and run bongo-admin config sync. Certificate and host-name verification remain enabled. Prefer installing a site-wide CA through the operating system trust store when possible. BONGO_COLLECTOR_CAINFO remains available as a test-only environment override.

Remote deletion policies are never, after_import, and after_days. Messages are recorded as imported only after Bongo's durable Queue accepts and commits the complete message. The normal antivirus, antispam, Sieve/rules, quota, and Store delivery pipeline owns it from that point onward. A failed remote deletion does not cause the message to be delivered again; the collector retries the deletion during a later poll.

maximum_pending_messages and maximum_pending_messages_per_user in the suffixless collector configuration bound the number of externally collected messages that may be waiting anywhere in Bongo's Queue. Their defaults are 10000 globally and 1000 per local user. The per-user value must not exceed the global value. The collector checks both limits before fetching each previously unseen message; when either limit is reached, it records backpressure on the external account and leaves that message at the provider. Successfully delivered Queue entries no longer count toward either limit, so collection resumes on a later poll after the user or administrator has freed the bottleneck.

The authenticated Queue command QCOUNT COLLECTED [user] supplies this pending count without treating unrelated SMTP or LMTP traffic as collector load. Administrators can inspect the same values with:

bongo-queuetool collected-count
bongo-queuetool collected-count username