A command-line interface for the Forward Email API.
git clone https://github.com/orangerabbit-io/forwardemail.git
cd forwardemail
cargo build --release
cp target/release/forwardemail ~/.local/bin/nix run github:orangerabbit-io/forwardemailCreate ~/.config/forwardemail/config.toml:
api_key = "your-api-key"Get your API key from forwardemail.net/my-account/security.
Alternatively, set the FORWARDEMAIL_API_KEY environment variable or pass --api-key on every command.
Priority: --api-key flag > FORWARDEMAIL_API_KEY env > config file.
forwardemail account get
forwardemail account create --email user@example.com --password secret
forwardemail account update --given-name John --family-name Doeforwardemail domains list
forwardemail domains create example.com --plan enhanced_protection
forwardemail domains get example.com
forwardemail domains update example.com --retention-days 30
forwardemail domains delete example.com
forwardemail domains verify-records example.com
forwardemail domains verify-smtp example.comforwardemail aliases list example.com
forwardemail aliases create example.com --name info --recipients user@example.com
forwardemail aliases get example.com <alias_id>
forwardemail aliases update example.com <alias_id> --is-enabled false
forwardemail aliases delete example.com <alias_id>
forwardemail aliases generate-password example.com <alias_id>forwardemail emails list
forwardemail emails send --from sender@example.com --to recipient@example.com --subject "Hello" --text "Body"
forwardemail emails get <id>
forwardemail emails delete <id>
forwardemail emails limitforwardemail logs download
forwardemail logs download --domain example.com
forwardemail logs download -q "bounce" --response-code 550forwardemail invites create example.com --email user@example.com --group admin
forwardemail invites accept example.com
forwardemail invites remove example.com --email user@example.comforwardemail members update example.com <member_id> --group user
forwardemail members remove example.com <member_id>forwardemail catch-all-passwords list example.com
forwardemail catch-all-passwords create example.com --description "Main"
forwardemail catch-all-passwords delete example.com <token_id>forwardemail encrypt "forward-email=user@example.com"Markdown table output by default. Add --json to any command for JSON:
forwardemail domains list --json
forwardemail domains list --json | jq '.[].name'| Resource | Commands |
|---|---|
| Account | create, get, update |
| Domains | list, create, get, update, delete, verify-records, verify-smtp |
| Aliases | list, create, get, update, delete, generate-password |
| Emails | list, send, get, delete, limit |
| Logs | download |
| Invites | create, accept, remove |
| Members | update, remove |
| Catch-All Passwords | list, create, delete |
| Encrypt | encrypt |
cargo test --workspace # unit + integration (mocked)
cargo clippy --workspace # lint
cargo fmt --all # formatMock tests use mockito -- no API key needed.
FORWARDEMAIL_LIVE_TEST=1 cargo test --test live_test -- --test-threads=1Requires FORWARDEMAIL_API_KEY. Exercises real endpoints including domain/alias/password CRUD lifecycles with automatic cleanup.
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.