docs(campaigns): document support@targo.ca as the default gift-campaign sender

Validated live with Mailjet: targo.ca is verified at the DOMAIN level
(SPF + DKIM + DMARC published in Cloudflare), so any *@targo.ca sender
works without per-mailbox approval. Tested 1 send from
support@targo.ca → accepted, delivered.

Why support@ rather than noreply@ for campaigns:
  - Campaigns INVITE a reply (questions about the gift, "I didn't get
    mine", "the link doesn't work", etc.)
  - noreply@ is for transactional system mail where there's nothing
    useful for a human to reply to
  - Different intent → different sender

The hub's transactional emails (invoices, magic links) continue to
use noreply@targo.ca; campaigns specifically use support@targo.ca.
README updated accordingly with the rationale.

Note for future: if we ever want a @gigafibre.ca sender, that's
~30 min of Mailjet setup (add domain, publish SPF/DKIM CNAMEs in
Cloudflare). Not done today because all customer-facing email
flows through targo.ca and support@ is the right mailbox for this
campaign intent.
This commit is contained in:
louispaulb 2026-05-21 16:36:06 -04:00
parent e1283f30e8
commit 380f3bc0e7

View File

@ -84,6 +84,27 @@ The `--sandbox` flag does TWO things:
so the test gifts (non-redeemable in sandbox) don't actually land in
any real customer inbox
### `--from` sender
The Mailjet account has `targo.ca` verified at the domain level (SPF +
DKIM + DMARC), so any `*@targo.ca` sender works out of the box. The
default we use for gift campaigns is:
```
--from "Gigafibre Support <support@targo.ca>"
```
Reasoning: it's a human-monitored mailbox (unlike `noreply@`), so if a
recipient hits reply with a question about their gift, someone sees it
and can help. The hub's transactional emails (invoices, magic links)
still go from `noreply@targo.ca` — campaigns are different in that
they invite a reply.
If you ever need a `@gigafibre.ca` sender, that's a 30-min DNS + Mailjet
setup (add the domain in Mailjet → publish SPF/DKIM CNAMEs in
Cloudflare) — not done yet because all customer-facing email currently
flows through `targo.ca`.
## Stage 2 — send the personalized French emails
## Dry run (no emails sent, HTML written for preview)
@ -96,7 +117,7 @@ node send_gift_campaign.js \
--subject "🎁 Un cadeau pour vous, de la part de Gigafibre" \
--amount "50 $" \
--expiry "31 décembre 2026" \
--from "Gigafibre <noreply@gigafibre.ca>" \
--from "Gigafibre Support <support@targo.ca>" \
--dry-run
```
@ -118,7 +139,7 @@ node send_gift_campaign.js \
--subject "🎁 Un cadeau pour vous, de la part de Gigafibre" \
--amount "50 $" \
--expiry "31 décembre 2026" \
--from "Gigafibre <noreply@gigafibre.ca>" \
--from "Gigafibre Support <support@targo.ca>" \
--smtp-host in-v3.mailjet.com --smtp-port 587 \
--smtp-user "$SMTP_USER" --smtp-pass "$SMTP_PASS" \
--throttle-ms 600