FIX: Don't reply to Unsubscribe email sent to mailing list mirror

This commit is contained in:
Gerhard Schlager 2018-10-11 16:08:57 +02:00
parent ded5ff90aa
commit 7a41a783a4
3 changed files with 20 additions and 0 deletions

View File

@ -838,6 +838,8 @@ module Email
def subscription_action_for(body, subject) def subscription_action_for(body, subject)
return unless SiteSetting.unsubscribe_via_email return unless SiteSetting.unsubscribe_via_email
return if sent_to_mailinglist_mirror?
if ([subject, body].compact.map(&:to_s).map(&:downcase) & ['unsubscribe']).any? if ([subject, body].compact.map(&:to_s).map(&:downcase) & ['unsubscribe']).any?
:confirm_unsubscribe :confirm_unsubscribe
end end

View File

@ -1103,6 +1103,13 @@ describe Email::Receiver do
expect { process(:mailinglist_reply) }.to change { topic.posts.count } expect { process(:mailinglist_reply) }.to change { topic.posts.count }
end end
end end
it "ignores unsubscribe email" do
SiteSetting.unsubscribe_via_email = true
Fabricate(:user, email: "alice@foo.com")
expect { process("mailinglist_unsubscribe") }.to_not change { ActionMailer::Base.deliveries.count }
end
end end
it "tries to fix unparsable email addresses in To and CC headers" do it "tries to fix unparsable email addresses in To and CC headers" do

View File

@ -0,0 +1,11 @@
Return-Path: <discourse@bar.com>
From: alice@foo.com
To: list@example.com
Date: Thu, 13 Jun 2013 17:03:48 -0400
Message-ID: <56@foo.bar.mail>
Subject: UnSuBScRiBe
Mime-Version: 1.0
Content-Type: text/plain;
Content-Transfer-Encoding: 7bit
I've basically had enough of your mailing list and would very much like it if you went away.