From d9738b4be2add82ff955f061c79316b0dc91768f Mon Sep 17 00:00:00 2001 From: Elvis Claros Castro Date: Sat, 26 Sep 2026 18:47:40 -0300 Subject: posta: generic IMAP/SMTP mail CLI with JSON output --- README.md | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 README.md (limited to 'README.md') diff --git a/README.md b/README.md new file mode 100644 index 0000000..e57ddb9 --- /dev/null +++ b/README.md @@ -0,0 +1,126 @@ +# posta + +> *[Leé esto en castellano](README.es.md)* + +**posta** is a tiny, generic IMAP/SMTP mail client for your terminal. One +binary, JSON output by default, and named accounts in a single TOML file — +so your mailbox is as scriptable as any other API. + +The name comes from the *postas*: the relay stations of the colonial mail +routes of South America. In Argentine slang, *la posta* also means +"the real thing". + +```console +$ posta list --unread --max 3 --format table + UID DATE FROM SUBJECT + 7121 ● Fri, 17 Jul 2026 17:0… "Example ISP" msg.eml # raw RFC 822 source +posta send --to bob@example.com --subject 'Hi' --body 'Hello!' +git log | posta send --to bob@example.com --subject 'Changelog' +posta mark read 7119 7120 # also: unread, flagged, unflagged +posta move 7119 --to Archives +posta delete 7119 # moves to the trash folder +posta search 'FROM bank UNSEEN' # raw IMAP SEARCH, prints UIDs +``` + +Global flags: `--account/-a NAME`, `--config FILE`, +`--format json|table`, and `--folder` on folder-scoped commands. + +Every command opens a fresh session and logs out; there is no daemon, +cache, or local state. + +## Notes + +- `send` appends a copy to the sent folder over IMAP (skip with + `--no-record`). +- `move`/`delete` use `UID MOVE` when the server supports it, falling back + to `COPY` + `\Deleted` + `EXPUNGE`. +- TLS is always required; plain-text connections are not supported. + +## Development + +```sh +cargo test # unit + CLI integration tests, no server needed +cargo clippy --all-targets -- -D warnings +cargo fmt --check +``` + +## License + +[MIT](LICENSE) -- cgit v1.2.3