summaryrefslogtreecommitdiff
path: root/lib/gitlab/email/handler/unsubscribe_handler.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/email/handler/unsubscribe_handler.rb')
-rw-r--r--lib/gitlab/email/handler/unsubscribe_handler.rb12
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/gitlab/email/handler/unsubscribe_handler.rb b/lib/gitlab/email/handler/unsubscribe_handler.rb
index d2f617b868a..77b6c9177de 100644
--- a/lib/gitlab/email/handler/unsubscribe_handler.rb
+++ b/lib/gitlab/email/handler/unsubscribe_handler.rb
@@ -9,7 +9,7 @@ module Gitlab
delegate :project, to: :sent_notification, allow_nil: true
def can_handle?
- mail_key =~ /\A\w+#{Regexp.escape(Gitlab::IncomingEmail::UNSUBSCRIBE_SUFFIX)}\z/
+ mail_key =~ /\A\w+#{Regexp.escape(suffix)}\z/
end
def execute
@@ -28,8 +28,16 @@ module Gitlab
@sent_notification ||= SentNotification.for(reply_key)
end
+ def suffix
+ @suffix ||= if mail_key&.end_with?(Gitlab::IncomingEmail::UNSUBSCRIBE_SUFFIX)
+ Gitlab::IncomingEmail::UNSUBSCRIBE_SUFFIX
+ else
+ Gitlab::IncomingEmail::UNSUBSCRIBE_SUFFIX_OLD
+ end
+ end
+
def reply_key
- mail_key.sub(Gitlab::IncomingEmail::UNSUBSCRIBE_SUFFIX, '')
+ mail_key.sub(suffix, '')
end
end
end