diff --git a/README.md b/README.md new file mode 100644 index 0000000..b7b7044 --- /dev/null +++ b/README.md @@ -0,0 +1,52 @@ +
+ +![mbwatch](assets/mbwatch-header.png) + +
+ +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](https://en.wikipedia.org/wiki/IMAP_IDLE) +- The rust toolchain for building +- [mbsync](https://isync.sourceforge.io/mbsync.html) installed and configured + +## Installation + +Right now there are no prebuilt binary, you can install from git using cargo. + +```bash +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`. + +```conf +Group mbwatch +Channels work:INBOX, work:Archive, personal:INBOX +``` + +For more details on the `.mbsyncrc` you can view the upstream [mbsync docs](https://isync.sourceforge.io/mbsync.html#CONFIGURATION) + + + diff --git a/assets/mbwatch-header.png b/assets/mbwatch-header.png new file mode 100644 index 0000000..883c629 Binary files /dev/null and b/assets/mbwatch-header.png differ