From 1ca2497015c03e99ff9809bcd77e61942eec9127 Mon Sep 17 00:00:00 2001 From: evazion Date: Thu, 28 Dec 2017 18:50:08 -0600 Subject: [PATCH] Fix #3474: Spurious email notifications. --- app/models/dmail.rb | 4 ++-- test/unit/dmail_test.rb | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/models/dmail.rb b/app/models/dmail.rb index 80abbb54a..f76b9c59c 100644 --- a/app/models/dmail.rb +++ b/app/models/dmail.rb @@ -23,7 +23,7 @@ class Dmail < ApplicationRecord after_initialize :initialize_attributes, if: :new_record? before_create :auto_read_if_filtered after_create :update_recipient - after_create :send_dmail + after_commit :send_email, on: :create rakismet_attrs author: :from_name, author_email: :from_email, content: :title_and_body, user_ip: :creator_ip_addr_str @@ -247,7 +247,7 @@ class Dmail < ApplicationRecord "[quote]\n#{from_name} said:\n\n#{body}\n[/quote]\n\n" end - def send_dmail + def send_email if !is_spam? && to.receive_email_notifications? && to.email =~ /@/ && owner_id == to.id UserMailer.dmail_notice(self).deliver_now end diff --git a/test/unit/dmail_test.rb b/test/unit/dmail_test.rb index 7e40ffcd9..c37c8631f 100644 --- a/test/unit/dmail_test.rb +++ b/test/unit/dmail_test.rb @@ -10,10 +10,12 @@ class DmailTest < ActiveSupport::TestCase ActionMailer::Base.delivery_method = :test ActionMailer::Base.perform_deliveries = true ActionMailer::Base.deliveries = [] + TestAfterCommit.enabled = true end teardown do CurrentUser.user = nil + TestAfterCommit.enabled = false end context "spam" do