Features
Sending
Send text / HTML email via the Resend REST API; multiple recipients (comma / semicolon / newline / space separated).
Rhai-driven
Identity resolution, send gating, sending and counting live in scripts/default.rhai.
Reload from the Script page — no recompile needed.
Fixed From name
Configure the From name once in Settings (e.g. Soup Team <noreply@soup.dev>); every mail uses it.
Send counters & quota
- Total and current-period (cycle start, default 1st of month) counts
- Free / Pro / Scale or a custom monthly limit
- Live
remaining = quota − current-period count, turns red when exhausted
Encryption
- Per-category password: libsmx SM4-GCM, encrypt
API KeyandFrom nameseparately - Shared password: ciphertext stored, password never on disk
- Encrypted run logs:
ui::log(...)stored as SM4-GCM ciphertext under a machine-local key
History & drafts
- Every attempt (success / failure / blocked) is written to
history.sml(cap 1000) - Drafts restore automatically on next launch
Attachment progress
Status bar shows 3.2 MB / 10.0 MB (32%) with per-second refresh; requests are time-bound (connect 15s, total scaled with attachment size up to 300s).
Automation (Rhai API)
fn my_task(args) {
let to = args[0];
send_mail(to, "Subject", "Body", false, "", []);
return "ok";
}
api::register("my.task", Fn("my_task"), "My automated task");
Command line: resender run <handler> [args...] — great for cron / scheduled tasks.