mbrts/README.md

1.7 KiB

mbrts

Real-time mail delivery for maildirs via Fastmail's JMAP push API.

Connects to Fastmail's JMAP EventSource stream and delivers new messages directly to a local Maildir the moment they arrive without polling.

How it works

On first run — or when the saved JMAP state is too stale — mbrts falls back to mbsync for a full sync, then takes over from that point.

Setup

Create a Fastmail API token at Settings → Security → API Tokens.

Config file

By default mbrts reads $XDG_CONFIG_HOME/mbrts/config.yaml (e.g. ~/.config/mbrts/config.yaml):

accounts:
  - name: Personal
    maildir_path: /home/you/.mail/Personal
    password_command: "pass show fastmail/api-token"

Each account requires exactly one token source:

Field Description
password_command Shell command that prints the token to stdout
token_file Path to a file containing the token
token_env Name of an environment variable containing the token

Optional fields: mbsync_account (mbsync channel/group name; defaults to name), log_level (top-level: debug, info, warn, error).

CLI flags

Every config file option has an equivalent flag. Flags override the config file. A single account can be configured entirely on the command line without a config file:

mbrts --name Personal \
      --maildir-path ~/.mail/Personal \
      --password-command "pass show fastmail/api-token"

Run mbrts --help for the full flag list, or mbrts --version to print the version.

Build

CGO_ENABLED=0 go build -o mbrts .

aerc

Configure the account source as maildir:// so aerc picks up delivered messages immediately via inotify:

source = maildir:///home/you/.mail/Personal