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:
Tom Hughes 2009-11-05 23:16:20 +00:00
parent 33dc83a470
commit 23b8672bc9
5 changed files with 62 additions and 1 deletions

View file

@ -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

View file

@ -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

View file

@ -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