Add handling for message reply via email
If the reply_email_domain configuration is set the messages plugin will use unique Reply-To addresses for every email. They contain enough information to reconstruct the message context and a hash to avoid user forgery and spam. A mail transfer agent must be configured to call the new rake task foodsoft:parse_reply_email for incoming mails. The rake task requires the receipt of the mail in the RECIPIENT variable and the raw message via standard input. An example invocation would look like: rake foodsoft:parse_reply_email RECIPIENT=f.1.1.HASH < test.eml
This commit is contained in:
parent
6b32d0c960
commit
4e35e2d58e
11 changed files with 135 additions and 11 deletions
|
|
@ -4,9 +4,17 @@ class MessagesMailer < Mailer
|
|||
set_foodcoop_scope
|
||||
@message = message
|
||||
|
||||
reply_email_domain = FoodsoftConfig[:reply_email_domain]
|
||||
if reply_email_domain
|
||||
hash = message.mail_hash_for_user recipient
|
||||
reply_to = "Foodsoft <#{FoodsoftConfig.scope}.#{message.id}.#{recipient.id}.#{hash}@#{reply_email_domain}>"
|
||||
else
|
||||
reply_to = "#{show_user(message.sender)} <#{message.sender.email}>"
|
||||
end
|
||||
|
||||
mail subject: "[#{FoodsoftConfig[:name]}] " + message.subject,
|
||||
to: recipient.email,
|
||||
from: "#{show_user(message.sender)} via Foodsoft <#{FoodsoftConfig[:email_sender]}>",
|
||||
reply_to: "#{show_user(message.sender)} <#{message.sender.email}>"
|
||||
reply_to: reply_to
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue