| Crates.io | imapctl |
| lib.rs | imapctl |
| version | 0.1.0 |
| created_at | 2025-12-01 17:50:10.433312+00 |
| updated_at | 2025-12-01 17:50:10.433312+00 |
| description | Scriptable IMAP client for the shell |
| homepage | |
| repository | https://app.radicle.xyz/nodes/seed.radicle.garden/rad:zjy7BiSYaEFtM9ohHwSfJGbyPQKp |
| max_upload_size | |
| id | 1960187 |
| size | 123,044 |
Scriptable IMAP client for the shell.
Where it makes sense, commands read their input from stdin making it possible
to compose commands with pipes.
Nix can take care of the toolchains for you ;)
nix run git+https://seed.radicle.garden/zjy7BiSYaEFtM9ohHwSfJGbyPQKp.git
# and building ofc
nix build git+https://seed.radicle.garden/zjy7BiSYaEFtM9ohHwSfJGbyPQKp.git
nix build '#docker'
docker load < result
# To run:
docker run -ti imapctl
Use imapctl --help for more help.
export IMAPCTL_HOST=imap.example.com
export IMAPCTL_USERNAME=you@example.com
export IMAPCTL_PASSWD_CMD="pass show hosts/imap.example.com/you@example.com"
The other examples will assume these environmental variables to be set.
Alternatively, you can pass the --host, --username and --passwd-cmd
parameters.
imapctl search all
imapctl search --mailbox bla all
imapctl search --mailbox bla all |imapctl fetch
imapctl search all |imapctl fetch --format '{{date}} - {{from}} {{ subject }}'
for msg in $(imapctl search all); do
(imapctl fetch $msg --format '{{body}}' |imapctl append --mailbox bla)
done