fix(email): correct Reply-To header shape for listmonk (was silently dropped)

Listmonk applies campaign headers as `for hdr,val := range set { h.Add(hdr,val) }`
(internal/manager/manager.go v6.1.0): each map's KEY is the literal header name.
The trucking/CRTC/deficiency builders wrote {"name":"Reply-To","value":..} (and
{"key":..,"value":..}), which emits junk `name:`/`value:` headers and NO real
Reply-To, so replies fell back to the From address (noreply@send.performancewest.net)
instead of info@performancewest.net. HC builder already used the correct
{"Reply-To": value} shape; match it everywhere. Verified against listmonk source.

Impact: outbound only; no customer replies were lost (noreply@ is a real mailbox),
but reply UX pointed at a no-reply address. Live campaign headers re-patched separately.
This commit is contained in:
justin 2026-06-21 01:03:07 -05:00
parent 297db74fee
commit e414ec4a5f
3 changed files with 10 additions and 4 deletions

View file

@ -251,7 +251,7 @@ def create_campaign():
"content_type": "html",
"body": campaign_html,
"status": "draft",
"headers": [{"key": "Reply-To", "value": "info@performancewest.net"}],
"headers": [{"Reply-To": "info@performancewest.net"}],
}, timeout=30)
if not r.ok: