CSV-driven bulk operations
Drive mass create / edit / delete from a CSV. BOM is stripped automatically, headers map flexibly case-insensitively, and hard row and length limits guard against accidental huge inputs.
MailGrit is a cross-platform desktop app for creating, editing and deleting mail user accounts
on iRedAdmin servers in bulk — even behind FortiWeb / WAF — through an embedded
browser that performs a legitimate fetch inside the real session. No Node/JS
toolchain: native WebView2/wry via Dioxus 0.7.
For authorized administration only — operate solely on iRedAdmin servers you own or administer. Not affiliated with iRedAdmin.
unsafe (workspace forbid)A native panel on top of a real iRedAdmin session — no brittle cookie replay, no separate HTTP client that breaks behind a WAF.
Drive mass create / edit / delete from a CSV. BOM is stripped automatically, headers map flexibly case-insensitively, and hard row and length limits guard against accidental huge inputs.
Every operation is appended to a tamper-evident HMAC-SHA256 chain, encrypted at rest with streaming AEAD (XChaCha20-Poly1305). Nothing is silently altered.
Derives the audit-log key and export key via Argon2id (memory-hard KDF). The password is never stored; lose it and the audit log and encrypted exports stay locked.
Requests run as a fetch inside the same webview that holds the legitimate session, so backend authentication held by the proxy just works — no cookie guessing.
English, Deutsch, Français, Español, Italiano, Português, Nederlands, Polski and Українська. Translations are embedded into the binary; your choice persists in config.toml.
A home-grown design system on CSS tokens: custom titlebar, dark/light themes with a toggle, symmetric card grid, modal confirmation for destructive ops and live progress.
Security is a workspace policy, not a best effort: unsafe_code = "forbid", strict clippy, and supply-chain checks run on every supported platform in CI.
unsafe_code = "forbid" workspace-wide — no unsafe anywhere in the application crates.correctness, suspicious, complexity, perf, pedantic, nursery and cargo groups all deny.panic, unwrap_used, expect_used, indexing_slicing, arithmetic_side_effects all deny.cargo-deny (advisories, bans, licenses, sources) plus cargo-audit.# No exceptions: wry 0.53 returns HttpOnly cookies natively. # Every application crate is audited under this policy. [workspace.lints.rust] unsafe_code = "forbid" [workspace.lints.clippy] correctness = { level = "deny", priority = -1 } suspicious = { level = "deny", priority = -1 } pedantic = { level = "deny", priority = -1 } unwrap_used = "deny" indexing_slicing = "deny" arithmetic_side_effects = "deny" panic = "deny"
Translations are embedded at compile time with rust-i18n — no resource files to chase at runtime. Your selection is saved to config.toml.
en English English
de German Deutsch
fr French Français
es Spanish Español
it Italian Italiano
pt Portuguese Português
nl Dutch Nederlands
pl Polish Polski
uk Ukrainian Украюнська
MailGrit is a Cargo workspace; build the desktop app for your platform and run it directly.
# Requires Rust 1.97.1 (pinned via rust-toolchain.toml, edition 2024) $ cargo build --release -p mailgrit-app-desktop # Windows > .\target\release\mailgrit-app-desktop.exe # Linux / macOS $ ./target/release/mailgrit-app-desktop
On first launch a mailgrit-data/ folder is created next to the binary, holding all
application files. Point it at your iRedAdmin URL, sign in once in the embedded browser, and the
operations panel opens automatically.
A Cargo workspace where the domain, parsing, storage, security and UI layers are separated — cargo test -p <crate> runs each in isolation.
# each crate compiles / tests in isolation
core-domain ─┬─ core-csv ────┐
├─ core-storage ─┤
└─ core-security ┴─ app-desktop
MailGrit is free and open source. If it saves you time, consider supporting its development.
Donate