m2sync 0.11.0

Tool for synchronizing IMAP and local m2dir
# m2sync IMAP to m2dir synchronization

[![Crates.io](https://img.shields.io/crates/v/m2sync.svg)](https://crates.io/crates/m2sync)
[![builds.sr.ht status](https://builds.sr.ht/~bitfehler/vomit-m2sync/commits.svg)](https://builds.sr.ht/~bitfehler/vomit-m2sync/commits?)

m2sync is a small CLI wrapper around [vomit-m2sync][1]. It aims to provide
access to all functionality that vomit-m2sync offers. Currently, syncing a
local m2dir and a remote IMAP mailbox in both directions is supported. m2sync
has to be run periodically to keep the two synchronized.

**NOTE:** until m2sync has reached version 1.0 it has to be considered
experimental, and it is entirely possible that it will **delete your email**!

Here is some quick steps to hopefully avoid that:

* Currently, m2sync will refuse to delete an entire mailbox (folder) unless the
  `--force` option is used 
* The code paths for one-way and two-way sync are explicitly kept seperate, so
  if you just want to get the remote state locally, run `m2sync --pull`, it
  will not touch your remote mailbox
* A state cache is required for two-way sync to function properly, but caches
  are hard. One area of concern are potentially untested failure cases:
  * After any hard-interrupted sync, run `m2sync --list` and inspect the
    result
  * If in doubt, run `m2sync --pull` once (potentially undoing some local
    changes) to get back to a clean state

Reach out to the [mailing list][3] if you have questions.

[1]: https://crates.io/crates/vomit-m2sync "vomit-m2sync on crates.io"

For more usage information, see the [man page][5].

[5]: https://bitfehler.net/man/m2sync.1.html "m2sync(1) man page"

# Configuration

m2sync uses [vomit-config][4], which means the default configuration file
location is `$XDG_CONFIG_DIR/vomit/config.toml` (usually
`~/.config/vomit/config.toml`).

[4]: https://docs.rs/vomit-config

Example configuration file:

```
[myaccount]
local = "~/.mail"
remote = "imap.example.com:993"
user = "myusername"
pass-cmd = "pass show mail/myaccount"
# or use this:
#password = "s3cr34"
```

## The Vomit project

Both vomit-m2sync and m2sync are part of the [Vomit project][2].

[2]: https://sr.ht/~bitfehler/vomit "Vomit project page on SourceHut"

## Contributing

Please send patches to the [vomit mailing list][3].

## Feedback

The [mailing list][3] is open for all kinds of feedback, questions, and
discussions.

[3]: https://lists.sr.ht/~bitfehler/vomit "The Vomit mailing list"