A campaign's replies go to NoReply, the member's e-mail, or a custom address — NoReply by default

FeatureEmailService
Shipped
September 16, 2026 at 10:09 PM UTC
Author
Kamo
Commit
d05bd2e

The editor's Reply-To becomes three choices (CampaignReplyTo), kept in the existing reply_to column. No DDL. - NO_REPLY (empty column, the default): Reply-To: NoReply@<the From's domain>, spelled by NoReplySenderService like every other NoReply address. The recipient sees before writing that nobody reads it, and postfix-k3m1-inbound refuses what is sent there. - MEMBER (member:<id>): the e-mail of the member who chose it, looked up when each message is composed (CampaignReplyToMembers, kept five minutes), so a changed address is followed. A member with no e-mail falls back to NoReply rather than naming an address nobody receives. - CUSTOM (an address): checked on save, bare and with a dotted domain; anything else is a 400 saying why. Saves carry replyToMode and replyToMemberId. Replies can go to the member saving, or stay with the member already chosen when a teammate saves, but never to another member picked by id. An editor from before the choice sends only an address: one is CUSTOM, none is NO_REPLY. The campaign read model adds replyToMode and replyToMemberId, and replyTo becomes the address the editor shows (the custom address or the member's e-mail).

All changes

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing