Command-line tool
Send templated messages to a list, safely.
Write one message with {{placeholders}}, point messengerr at a CSV, and it validates the contacts, shows you exactly what will go out, sends through your provider, and keeps a record of every result.
$gem install messengerr
What you get
✓
Preview before anything is sent
See the first rendered messages and the total count, then confirm. --dry-run stops there and sends nothing.
☰
A record of every result
Each outcome is written to a ledger as it happens, so a crash or Ctrl-C never loses track of who was messaged.
How a send works
- Configure an integrationStore your provider's credentials once, verified live and encrypted at rest.
- Write the messageUse
{{column}}placeholders in the body and, for email, the subject. - Map your CSVChoose the column for each placeholder and the column that holds the address or number.
- ReviewBad contacts are listed by row. You drop them or abort to fix the file. Then you see a preview.
- SendMessages go out in batches. Failures are listed with reasons, and you decide whether to retry.
See it
# a CSV with one bad address 1 contact(s) have defects: row 4: "not-an-email" — invalid email address Drop these contacts and continue? (n = abort to fix) [y/n] y --- Preview (2 messages) --- To: ann@example.com Subject: Invoice for Ann Body: Hi Ann, your Pro invoice is ready. ... Dry run — nothing sent. Ledger skipped.
New here? Follow Getting started. Something broken? See Troubleshooting. Know what to expect from the tool, including what it does not do yet, in Limitations.