X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/4dff06a6293971c3e17f8508859a1d80717a23f6..a64b7237ec06264d26385e1384c3130bcbccd446:/app/mailers/user_mailer.rb diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb index 92c64b4d6..dee3dafbe 100644 --- a/app/mailers/user_mailer.rb +++ b/app/mailers/user_mailer.rb @@ -105,6 +105,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) @@ -143,6 +151,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 @@ -163,6 +177,7 @@ class UserMailer < ApplicationMailer @changeset_comment = comment.changeset.tags["comment"].presence @time = comment.created_at @changeset_author = comment.changeset.user.display_name + @unsubscribe_url = unsubscribe_changeset_url(comment.changeset) @author = @commenter subject = if @owner @@ -175,6 +190,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 => subscribe_changeset_url(comment.changeset), + :unsubscribe => @unsubscribe_url, + :archive => @changeset_url + ) + mail :to => recipient.email, :subject => subject end end @@ -224,8 +247,8 @@ class UserMailer < ApplicationMailer end end - def with_recipient_locale(recipient, &block) - I18n.with_locale(Locale.available.preferred(recipient.preferred_languages), &block) + def with_recipient_locale(recipient, &) + I18n.with_locale(Locale.available.preferred(recipient.preferred_languages), &) end def from_address(name, type, id, token, user_id = nil) @@ -247,4 +270,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