4e35e2d58e
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
20 lines
757 B
Ruby
20 lines
757 B
Ruby
class MessagesMailer < Mailer
|
|
# Sends an email copy of the given internal foodsoft message.
|
|
def foodsoft_message(message, recipient)
|
|
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: reply_to
|
|
end
|
|
end
|