Bichon Docs

Everything in Bichon is organized around accounts. This page walks through creating and configuring them; see Accounts for what each account type stores and Archive Filters for content rules.

Creating an account requires the account:create permission.

Choose the account type

On Accounts → New Account:

TypeUse it for
IMAPArchiving a live mailbox from a remote IMAP server
Local account (NoSync)Imports (EML/MBOX/PST) and SMTP delivery
ViewA read-only, filter-scoped window onto other accounts (Pro/Enterprise)

A View is covered in Accounts → View; the rest of this page is about IMAP and local accounts.

Step 1 — Email address and discovery

Enter the email address first. Bichon attempts automatic discovery from the domain: IMAP host, port, encryption, and a matching OAuth2 provider preset where one exists (Gmail, Outlook/Microsoft 365, Yahoo). Discovery is best-effort; every field can be overridden manually.

The address cannot be changed after the account is created.

Step 2 — IMAP server and authentication

FieldNotes
host / portIMAP server; discovered or entered manually
encryptiontls (implicit), starttls, or none
auth_typePassword (PLAIN/LOGIN) or OAuth2 (SASL XOAUTH2)
passwordRequired for password auth; encrypted at rest
use_proxyOptional proxy for this account's IMAP connections

Self-signed certificates can be accepted per account when the server uses one.

OAuth2 accounts

OAuth2 providers are configured before the account, on the OAuth2 page (/oauth2) or via /api/v1/oauth2:

FieldMeaning
client_id / client_secretCredentials from Google, Microsoft, Yahoo, or another provider
client_typeConfidential (has a secret) or Public (PKCE, no secret)
auth_url / token_urlProvider endpoints
redirect_uriMust exactly match the callback registered with the provider
scopesProvider-specific IMAP scopes (e.g. https://outlook.office.com/IMAP.AccessAsUser.All, offline_access)
extra_paramsOptional provider parameters such as access_type or prompt
use_proxyRoute the authorization/token exchange through a proxy

After saving the provider, create the IMAP account with auth_type: OAuth2, choose the provider, and complete the authorization flow. Tokens are stored encrypted and refreshed automatically.

Proxies

Create reusable HTTP or SOCKS5 proxies under Settings → Proxy (/settings/proxy), test them there, then select one per account or per OAuth2 provider. A proxy only affects outbound IMAP/OAuth traffic; it does not proxy the WebUI or REST API.

Step 3 — Sync schedule

Choose one of two mutually exclusive modes:

  • Fixed interval — minutes between syncs (download_interval_min).
  • Cron schedule — six-field cron sec min hour day month dow, evaluated in the server's local timezone. When set, it overrides the interval.

At least one of the two is required for an IMAP account. To stop automatic syncing, disable the account rather than setting an empty schedule.

Step 4 — Download scope

SettingMeaning
Download All EmailsFetch from the first message to the latest
Date SinceOnly messages on/after a date (maps to IMAP SINCE)
Date BeforeOnly messages before a relative cut-off
Choose MailboxesExplicit folder list; only selected folders are fetched
Auto-download new mailboxesFetch folders that appear on the server later
Batch sizeMessages per IMAP request, 10–200
Max email sizeSkip messages larger than this (default 100 MB)
IMAP quotaOptional quota guard; bytes and window must be set together

Date Since and Date Before are mutually exclusive.

Step 5 — General and lifecycle

  • Account name / login name — display name and IMAP username (defaults to the email address; custom values supported).
  • Enabled — a disabled account keeps its data but does not sync or import.
  • PGP key — optional key associated with the account.
  • Retention window (days) — permanently purge messages older than N days. Empty or 0 keeps everything. Age is the older of the Date header and the server receive time; a legal hold suspends retention. See Storage & Backup → Account Retention.
  • Minimum retention / deletion lock (days) — Enterprise. Messages younger than this window cannot be deleted by any path, and the retention sweep keeps them. Only system:root can set or clear it. See Minimum retention.
  • Source mailbox cleanup — move archived mail out of the source mailbox into bichon_auto_created_trash. See Source Mailbox Cleanup.
  • Archive filtering — only matching messages are archived. See Archive Filters.
  • Attachment extraction — Pro: only matching attachments are text-extracted for full-text search. See Attachment Search.
  • Override From headers — optional ordered header names whose first valid mailbox replaces the stored from address.

Step 6 — Save, download, and gap-fill

Saving creates the account. Start the initial download from the account page; progress, errors, and per-folder state are shown there. Enable Check new emails and automatically backfill older missing emails to run gap-fill after a sync: it compares every remote folder's UIDs with the local archive and re-downloads anything missing.

Per-account sync state is also exposed as metrics — see Monitoring & Metrics.

Local (NoSync) accounts

A local account is the only valid target for imports and SMTP delivery. Create one with no IMAP configuration; then:

Editing and deleting

  • Most settings can be changed after creation; the email address cannot.
  • Deleting an account is permanent. On Enterprise, account.delete can be placed under dual control.
  • An account that a View reads from cannot be deleted until it is removed from every view — the error names the blocking views.
  • Accounts count toward the license limit (IMAP, local, and View alike). See Licensing & Trials.

API

MethodPathDescription
GET/api/v1/accountsList accounts (includes type and view config)
POST/api/v1/accountCreate an account
GET/POST/api/v1/account/{account_id}Get / update one account (retention fields are rejected)
POST/api/v1/account/{account_id}/retentionChange retention policy (root only; weakening changes may require approval)
DELETE/api/v1/account/{account_id}Delete an account
POST/api/v1/accounts/{account_id}/start-downloadStart a sync
POST/api/v1/accounts/{account_id}/cancel-downloadCancel a running sync
GET/api/v1/accounts/{account_id}/download-statsPer-folder sync statistics
GET/api/v1/accounts/{account_id}/gap-fill-statsGap-fill statistics
GET/api/v1/oauth2-listList OAuth2 providers
POST/api/v1/oauth2Create an OAuth2 provider
GET/api/v1/list-proxyList proxies
POST/api/v1/proxyCreate a proxy
POST/api/v1/accounts/access/assignmentsBatch-assign an account role to users

On this page