After lots of support and help from others, I have finally sorted out the rawest form of how to accomplish this. It is presented below as a patch:
diff --git a/lib/email/message_builder.rb b/lib/email/message_builder.rb
index f099b11..2a69249 100644
--- a/lib/email/message_builder.rb
+++ b/lib/email/message_builder.rb
@@ -147,7 +147,15 @@ module Email
if allow_reply_by_email?
result['X-Discourse-Reply-Key'] = reply_key
- result['Reply-To'] = reply_by_email_address
+ if @opts[:private_reply] == true
+ result['Reply-To'] = reply_by_email_address
+ else
+ p = Post.find_by_id @opts[:post_id]
+ result['Reply-To'] = "#{p.user.name} <#{p.user.email}>"
+ result['CC'] = reply_by_email_address
+ end
else
result['Reply-To'] = from_value
end
This patch does the following:
- By default, users who hit ‘reply to’ will only reply to the sending user.
- For a user to post a public message to the mailing list / topic, they would have to hit ‘reply all’.
- It does not act on private messages.
Note: This exposes the sender’s email address to all recipients.
Unfortunately, I will implement this patch for our use-case effective immediately.
However, I recognize that it would be amazing if the following were true:
- A per-category or site-wide option to select this
- A per-category or site-wide option to expose email addresses.
- Integration into personal messages rather than via email directly.
- When the responding user hits ‘reply all’ and selects both the list and the sending user, the sending user should not receive an email notification from Discourse. Currently, two messages - one via email and one via Discourse - will arrive.
I hope the patch as it is helps somebody. If I could make it a per-category option, would you guys consider folding it into the master branch, @erlend_sh?