diff --git a/README.md b/README.md index c18c14a..057d15f 100644 --- a/README.md +++ b/README.md @@ -869,9 +869,9 @@ myna cloud login # mynaposter.com hosts the un myna newsletter import subscribers.csv --list moshcode # email,name,tags (or .json) myna newsletter subscribe ada@example.com --list moshcode --name Ada myna newsletter create --subject "Moshcode weekly #1" --list moshcode < issue.md -myna newsletter send moshcode-weekly-1 --test you@example.com # one [test] copy +myna newsletter send moshcode-weekly-1 --to you@example.com # one [test] copy (--test works too) myna newsletter send moshcode-weekly-1 --dry-run -myna newsletter send moshcode-weekly-1 +myna newsletter send moshcode-weekly-1 --yes # without --yes: the numbers, nothing sent myna newsletter edit moshcode-weekly-2 --at "friday 9am" # the daemon sends it myna newsletter list | show [--body] | rm [--force] myna newsletter subscribers --list moshcode @@ -905,7 +905,51 @@ it. A refusal is `failed` and is retried only with `--retry-failed`; a send that died mid-message leaves `pending`, retried only with `--retry-uncertain`, because that person may already have it. An issue sent by hand that stopped part way (say with `--limit 5`) waits for a hand; only scheduled issues resume -on their own. +on their own. Messages go out one a second (`newsletter.paceMs`), and +`--max-per-day N` raises the cap for one run. + +### Tracking and A/B tests + +With [crawlproof.com](https://crawlproof.com) tracking set up, every link in an +issue goes through a signed click URL, the HTML part carries an open pixel, +and the unsubscribe link is crawlproof's signed one (one-click too) instead of +myna cloud's, so no `myna cloud login` is needed. + +```bash +myna newsletter track set --secret # from the project's Tracking tab; the secret goes in the vault +myna newsletter track status --check +myna newsletter create --id moshcode-001 --list moshcode-users --service moshcode \ + --subject "What shipped in moshcode" --subject-b "Five new things in moshcode" < issue.md +myna newsletter send moshcode-001 --dry-run # the variants and how the list splits +myna newsletter stats moshcode-001 # per variant: sent, opens, clicks, CTR, unsubscribes +myna newsletter sync-optouts # unsubscribes from myna cloud and crawlproof +myna newsletter cta list | add "