Skip to content

fix(email): no default Reply-To; emails invite a reply only when NUXT_EMAIL_REPLY_TO is set - #465

Merged
ABB65 merged 1 commit into
mainfrom
fix/t3-no-default-reply-to
Oct 17, 2026
Merged

ABB65 merged 1 commit into
mainfrom
fix/t3-no-default-reply-to

Conversation

@ABB65

@ABB65 ABB65 commented Oct 16, 2026

Copy link
Copy Markdown
Member

GENERIC, promise edge. #463 defaulted emailReplyTo to support@contentrain.io, so on a self-hosted Studio a user's reply to their own instance's email went to Contentrain.

  • nuxt.config.ts: emailReplyTo defaults to ''. Unset → the Resend provider sends no Reply-To header (it already skipped an empty value).
  • email-templates model: new reply text field. The five "reply to this email" sentences moved out of notes into it (payment-failed, subscription-activated, subscription-cancel-scheduled, subscription-canceled, trial-ending). payment-failed keeps "check with your card issuer" in notes; only the reply half moved.
  • emailTemplate() appends reply after the notes only when NUXT_EMAIL_REPLY_TO is set, so header and sentence are both present or both absent. Unset: omitted, not replaced.
  • Tests: email-templates — each of the 5 slugs has no sentence when unset and has it when set; a content guard checks that no field other than reply says "reply to this email". New resend-email.test.ts: no replyTo for undefined / '' / whitespace, trimmed header when set.
  • .env.example, docs/DEPLOYMENT.md: unset = no Reply-To. Studio docs: Contentrain/docs#17.

Deploy note: Studio's own Railway env needs NUXT_EMAIL_REPLY_TO set to keep replies working there.

Checks (local): typecheck 0, lint 0 errors, unit 2340 passed / 2 skipped. test:nuxt fails locally on unchanged main as well (vite cannot resolve nuxt-vitest-app-entry in this worktree), so the nuxt project is left to CI; no nuxt test touches email.

@ABB65
ABB65 merged commit b7edff0 into main Oct 17, 2026
2 checks passed
@ABB65
ABB65 deleted the fix/t3-no-default-reply-to branch October 17, 2026 17:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant