From ffe636e6bdaff7fd7ab60402bde5ddaf5a51ec95 Mon Sep 17 00:00:00 2001 From: mmd Date: Thu, 12 Dec 2019 10:40:01 +0100 Subject: [PATCH 1/2] Add In-Reply-To, References headers to email Closes https://github.com/openstreetmap/openstreetmap-website/issues/2430 --- app/mailers/notifier.rb | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/app/mailers/notifier.rb b/app/mailers/notifier.rb index b125999810..676ae6f3b5 100644 --- a/app/mailers/notifier.rb +++ b/app/mailers/notifier.rb @@ -94,11 +94,14 @@ def diary_comment_notification(comment, recipient) @readurl = diary_entry_url(comment.diary_entry.user, comment.diary_entry, :anchor => "comment#{comment.id}") @commenturl = diary_entry_url(comment.diary_entry.user, comment.diary_entry, :anchor => "newcomment") @replyurl = new_message_url(comment.user, :message => { :title => "Re: #{comment.diary_entry.title}" }) - + @ref = "osm-diary-#{comment.diary_entry.id}@#{Settings.server_url}" @author = @from_user attach_user_avatar(comment.user) + headers["In-Reply-To"] = @ref + headers["References"] = @ref + mail :from => from_address(comment.user.display_name, "c", comment.id, comment.digest, recipient.id), :to => recipient.email, :subject => I18n.t("notifier.diary_comment_notification.subject", :user => comment.user.display_name) @@ -126,6 +129,7 @@ def note_comment_notification(comment, recipient) @comment = comment.body @owner = recipient == comment.note.author @event = comment.event + @ref = "osm-note-#{comment.note.id}@#{Settings.server_url}" @commenter = if comment.author comment.author.display_name @@ -136,6 +140,9 @@ def note_comment_notification(comment, recipient) @author = @commenter attach_user_avatar(comment.author) + headers["In-Reply-To"] = @ref + headers["References"] = @ref + subject = if @owner I18n.t("notifier.note_comment_notification.#{@event}.subject_own", :commenter => @commenter) else @@ -157,6 +164,7 @@ def changeset_comment_notification(comment, recipient) @time = comment.created_at @changeset_author = comment.changeset.user.display_name @author = @commenter + @ref = "osm-changeset-#{comment.changeset.id}@#{Settings.server_url}" subject = if @owner I18n.t("notifier.changeset_comment_notification.commented.subject_own", :commenter => @commenter) @@ -166,6 +174,9 @@ def changeset_comment_notification(comment, recipient) attach_user_avatar(comment.author) + headers["In-Reply-To"] = @ref + headers["References"] = @ref + mail :to => recipient.email, :subject => subject end end From 480eaa1b3638f29fcf05b67f67e31319f596130b Mon Sep 17 00:00:00 2001 From: mmd-osm Date: Mon, 30 Dec 2019 23:04:15 +0100 Subject: [PATCH 2/2] Added helper function set_references for mail header --- app/mailers/notifier.rb | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/app/mailers/notifier.rb b/app/mailers/notifier.rb index 676ae6f3b5..1d33db9d8b 100644 --- a/app/mailers/notifier.rb +++ b/app/mailers/notifier.rb @@ -94,13 +94,11 @@ def diary_comment_notification(comment, recipient) @readurl = diary_entry_url(comment.diary_entry.user, comment.diary_entry, :anchor => "comment#{comment.id}") @commenturl = diary_entry_url(comment.diary_entry.user, comment.diary_entry, :anchor => "newcomment") @replyurl = new_message_url(comment.user, :message => { :title => "Re: #{comment.diary_entry.title}" }) - @ref = "osm-diary-#{comment.diary_entry.id}@#{Settings.server_url}" @author = @from_user attach_user_avatar(comment.user) - headers["In-Reply-To"] = @ref - headers["References"] = @ref + set_references("diary", comment.diary_entry) mail :from => from_address(comment.user.display_name, "c", comment.id, comment.digest, recipient.id), :to => recipient.email, @@ -129,7 +127,6 @@ def note_comment_notification(comment, recipient) @comment = comment.body @owner = recipient == comment.note.author @event = comment.event - @ref = "osm-note-#{comment.note.id}@#{Settings.server_url}" @commenter = if comment.author comment.author.display_name @@ -140,8 +137,7 @@ def note_comment_notification(comment, recipient) @author = @commenter attach_user_avatar(comment.author) - headers["In-Reply-To"] = @ref - headers["References"] = @ref + set_references("note", comment.note) subject = if @owner I18n.t("notifier.note_comment_notification.#{@event}.subject_own", :commenter => @commenter) @@ -164,7 +160,6 @@ def changeset_comment_notification(comment, recipient) @time = comment.created_at @changeset_author = comment.changeset.user.display_name @author = @commenter - @ref = "osm-changeset-#{comment.changeset.id}@#{Settings.server_url}" subject = if @owner I18n.t("notifier.changeset_comment_notification.commented.subject_own", :commenter => @commenter) @@ -174,8 +169,7 @@ def changeset_comment_notification(comment, recipient) attach_user_avatar(comment.author) - headers["In-Reply-To"] = @ref - headers["References"] = @ref + set_references("changeset", comment.changeset) mail :to => recipient.email, :subject => subject end @@ -221,4 +215,10 @@ def from_address(name, type, id, digest, user_id = nil) Settings.email_from end end + + def set_references(scope, reference_object) + ref = "osm-#{scope}-#{reference_object.id}@#{Settings.server_url}" + headers["In-Reply-To"] = ref + headers["References"] = ref + end end