From 8f3838fadae09a875c961fc0e66d8476bded8053 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Sat, 24 Feb 2024 09:57:21 +0000 Subject: [PATCH] Add standard List-XXX headers to some notification messages --- app/mailers/user_mailer.rb | 29 +++++++++++++++++++++++++++++ config/locales/en.yml | 3 +++ 2 files changed, 32 insertions(+) diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb index f4cd9d3e5..4f56d9900 100644 --- a/app/mailers/user_mailer.rb +++ b/app/mailers/user_mailer.rb @@ -104,6 +104,14 @@ class UserMailer < ApplicationMailer set_references("diary", comment.diary_entry) + set_list_headers( + "#{comment.diary_entry.id}.diary.www.openstreetmap.org", + t(".description", :id => comment.diary_entry.id), + :archive => @readurl, + :subscribe => diary_entry_subscribe_url(comment.diary_entry.user, comment.diary_entry), + :unsubscribe => @unsubscribeurl + ) + mail :from => from_address(comment.user.display_name, "c", comment.id, comment.notification_token(recipient.id), recipient.id), :to => recipient.email, :subject => t(".subject", :user => comment.user.display_name) @@ -142,6 +150,12 @@ class UserMailer < ApplicationMailer set_references("note", comment.note) + set_list_headers( + "#{comment.note.id}.note.www.openstreetmap.org", + t(".description", :id => comment.note.id), + :archive => @noteurl + ) + subject = if @owner t(".#{@event}.subject_own", :commenter => @commenter) else @@ -175,6 +189,14 @@ class UserMailer < ApplicationMailer set_references("changeset", comment.changeset) + set_list_headers( + "#{comment.changeset.id}.changeset.www.openstreetmap.org", + t(".description", :id => comment.changeset.id), + :subscribe => changeset_subscribe_url(comment.changeset), + :unsubscribe => @unsubscribe_url, + :archive => @changeset_url + ) + mail :to => recipient.email, :subject => subject end end @@ -247,4 +269,11 @@ class UserMailer < ApplicationMailer headers["In-Reply-To"] = ref headers["References"] = ref end + + def set_list_headers(id, description, options = {}) + headers["List-ID"] = "#{description} <#{id}>" + headers["List-Archive"] = "<#{options[:archive]}>" if options[:archive] + headers["List-Subscribe"] = "<#{options[:subscribe]}>" if options[:subscribe] + headers["List-Unsubscribe"] = "<#{options[:unsubscribe]}>" if options[:unsubscribe] + end end diff --git a/config/locales/en.yml b/config/locales/en.yml index 35dcd3bad..2f1e4d016 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1584,6 +1584,7 @@ en: more: More user_mailer: diary_comment_notification: + description: "OpenStreetMap Diary Entry #%{id}" subject: "[OpenStreetMap] %{user} commented on a diary entry" hi: "Hi %{to_user}," header: "%{from_user} has commented on the OpenStreetMap diary entry with the subject %{subject}:" @@ -1640,6 +1641,7 @@ en: hopefully_you: "Someone (possibly you) has asked for the password to be reset on this email address's openstreetmap.org account." click_the_link: "If this is you, please click the link below to reset your password." note_comment_notification: + description: "OpenStreetMap Note #%{id}" anonymous: An anonymous user greeting: "Hi," commented: @@ -1666,6 +1668,7 @@ en: details: "More details about the note can be found at %{url}." details_html: "More details about the note can be found at %{url}." changeset_comment_notification: + description: "OpenStreetMap Changeset #%{id}" hi: "Hi %{to_user}," greeting: "Hi," commented: -- 2.39.5