]> cat aescling's git repositories - mastodon.git/commitdiff
Thread toot notification mails by conversation (#5061)
authorThibG <thib@sitedethib.com>
Sun, 24 Sep 2017 09:19:42 +0000 (11:19 +0200)
committerEugen Rochko <eugen@zeonfederated.com>
Sun, 24 Sep 2017 09:19:42 +0000 (11:19 +0200)
* Thread toot notification mails by conversation

* Make codeclimate happy and avoid potential mis-threading

app/mailers/notification_mailer.rb

index 12b92bf45158b19d12f1c1318e240cf49ef15677..80c9d8ccfaec0421083e4bfe72a1fa0459cdc7c4 100644 (file)
@@ -8,6 +8,7 @@ class NotificationMailer < ApplicationMailer
     @status = notification.target_status
 
     locale_for_account(@me) do
+      thread_by_conversation(@status.conversation)
       mail to: @me.user.email, subject: I18n.t('notification_mailer.mention.subject', name: @status.account.acct)
     end
   end
@@ -27,6 +28,7 @@ class NotificationMailer < ApplicationMailer
     @status  = notification.target_status
 
     locale_for_account(@me) do
+      thread_by_conversation(@status.conversation)
       mail to: @me.user.email, subject: I18n.t('notification_mailer.favourite.subject', name: @account.acct)
     end
   end
@@ -37,6 +39,7 @@ class NotificationMailer < ApplicationMailer
     @status  = notification.target_status
 
     locale_for_account(@me) do
+      thread_by_conversation(@status.conversation)
       mail to: @me.user.email, subject: I18n.t('notification_mailer.reblog.subject', name: @account.acct)
     end
   end
@@ -67,4 +70,13 @@ class NotificationMailer < ApplicationMailer
            )
     end
   end
+
+  private
+
+  def thread_by_conversation(conversation)
+    return if conversation.nil?
+    msg_id = "<conversation-#{conversation.id}.#{conversation.created_at.strftime('%Y-%m-%d')}@#{Rails.configuration.x.local_domain}>"
+    headers['In-Reply-To'] = msg_id
+    headers['References'] = msg_id
+  end
 end