Add support for processing incoming mail messages in reply to message
notifications and diary comment notifications, turning the maill messages into reply messages through the site messaging system.
This commit is contained in:
parent
33dc83a470
commit
23b8672bc9
5 changed files with 62 additions and 1 deletions
|
@ -4,4 +4,13 @@ class DiaryComment < ActiveRecord::Base
|
|||
|
||||
validates_presence_of :body
|
||||
validates_associated :diary_entry
|
||||
|
||||
def digest
|
||||
md5 = Digest::MD5.new
|
||||
md5 << diary_entry_id.to_s
|
||||
md5 << user_id.to_s
|
||||
md5 << created_at.xmlschema
|
||||
md5 << body
|
||||
md5.hexdigest
|
||||
end
|
||||
end
|
||||
|
|
|
@ -9,4 +9,14 @@ class Message < ActiveRecord::Base
|
|||
validates_inclusion_of :message_read, :in => [ true, false ]
|
||||
validates_associated :sender, :recipient
|
||||
validates_as_utf8 :title
|
||||
|
||||
def digest
|
||||
md5 = Digest::MD5.new
|
||||
md5 << from_user_id.to_s
|
||||
md5 << to_user_id.to_s
|
||||
md5 << sent_on.xmlschema
|
||||
md5 << title
|
||||
md5 << body
|
||||
md5.hexdigest
|
||||
end
|
||||
end
|
||||
|
|
|
@ -47,6 +47,7 @@ class Notifier < ActionMailer::Base
|
|||
|
||||
def message_notification(message)
|
||||
common_headers message.recipient
|
||||
from_header message.sender.display_name, "m", message.id, message.digest
|
||||
subject I18n.t('notifier.message_notification.subject', :user => message.sender.display_name, :locale => locale)
|
||||
body :to_user => message.recipient.display_name,
|
||||
:from_user => message.sender.display_name,
|
||||
|
@ -62,6 +63,7 @@ class Notifier < ActionMailer::Base
|
|||
|
||||
def diary_comment_notification(comment)
|
||||
common_headers comment.diary_entry.user
|
||||
from_header comment.user.display_name, "c", comment.id, comment.digest
|
||||
subject I18n.t('notifier.diary_comment_notification.subject', :user => comment.user.display_name, :locale => locale)
|
||||
body :to_user => comment.diary_entry.user.display_name,
|
||||
:from_user => comment.user.display_name,
|
||||
|
@ -103,8 +105,14 @@ private
|
|||
def common_headers(recipient)
|
||||
recipients recipient.email
|
||||
locale recipient.preferred_language_from(I18n.available_locales)
|
||||
from "webmaster@openstreetmap.org"
|
||||
from "OpenStreetMap <webmaster@openstreetmap.org>"
|
||||
headers "return-path" => "bounces@openstreetmap.org",
|
||||
"Auto-Submitted" => "auto-generated"
|
||||
end
|
||||
|
||||
def from_header(name, type, id, digest)
|
||||
if domain = APP_CONFIG['messages_domain']
|
||||
from "#{name} <#{type}-#{id}-#{digest[0,6]}@#{domain}>"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue