MbWatch/README.md
2024-06-22 11:05:00 +01:00

1.8 KiB

mbwatch

mbwatch is a CLI tool designed to monitor mailboxes and automatically invoke mbsync when changes occur in the remote mailbox. mbsync is a highly regarded tool for synchronizing remote email accounts with local maildir, but it requires manual execution to update changes. Typically, this is managed through periodic polling using a tool like cron, which can result in delayed message synchronization.

mbwatch addresses this issue by leveraging the IMAP IDLE feature to continuously monitor the mailbox for changes. When a change is detected, mbwatch automatically triggers mbsync to sync the new messages, ensuring your local maildir is always up-to-date without manual intervention.

Prerequisites

  • The remote IMAP server must support IDEL
  • The rust toolchain for building
  • mbsync installed and configured

Installation

Right now there are no prebuilt binary, you can install from git using cargo.

cargo install --git https://github.com/AdeAttwood/MbWatch

Configuration

This tool will use the mbsync Groups config from your existing .mbsyncrc. You will need to define a group called mbwatch, it will then watch all the mailboxes defined in the Channels prop. This should be a comma separated list of channel:mailbox like you define on the mbsync cli.

This is an example config, it assumes you have two channels called work and personal each remote store has a mailbox called INBOX and the work mailbox has one called Archive.

Group mbwatch
Channels work:INBOX, work:Archive, personal:INBOX

For more details on the .mbsyncrc you can view the upstream mbsync docs