From a89e9736266cbf9ccde3a49eccd8ab04f72bf38f Mon Sep 17 00:00:00 2001
From: Semyon Pupkov <mail@semyonpupkov.com>
Date: Sat, 11 Feb 2017 22:30:15 +0500
Subject: [PATCH] Set `Auto-Submitted: auto-generated` header to emails

Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/20305
---
 changelogs/unreleased/add-auto-submited-header.yml   |  4 ++++
 .../initializers/additional_headers_interceptor.rb   |  1 +
 lib/additional_email_headers_interceptor.rb          |  8 ++++++++
 .../lib/additional_email_headers_interceptor_spec.rb | 12 ++++++++++++
 4 files changed, 25 insertions(+)
 create mode 100644 changelogs/unreleased/add-auto-submited-header.yml
 create mode 100644 config/initializers/additional_headers_interceptor.rb
 create mode 100644 lib/additional_email_headers_interceptor.rb
 create mode 100644 spec/lib/additional_email_headers_interceptor_spec.rb

diff --git a/changelogs/unreleased/add-auto-submited-header.yml b/changelogs/unreleased/add-auto-submited-header.yml
new file mode 100644
index 00000000000..93481613b39
--- /dev/null
+++ b/changelogs/unreleased/add-auto-submited-header.yml
@@ -0,0 +1,4 @@
+---
+title: Set Auto-Submitted header to mails
+merge_request:
+author: Semyon Pupkov
diff --git a/config/initializers/additional_headers_interceptor.rb b/config/initializers/additional_headers_interceptor.rb
new file mode 100644
index 00000000000..b9159e7c06c
--- /dev/null
+++ b/config/initializers/additional_headers_interceptor.rb
@@ -0,0 +1 @@
+ActionMailer::Base.register_interceptor(AdditionalEmailHeadersInterceptor)
diff --git a/lib/additional_email_headers_interceptor.rb b/lib/additional_email_headers_interceptor.rb
new file mode 100644
index 00000000000..2358fa6bbfd
--- /dev/null
+++ b/lib/additional_email_headers_interceptor.rb
@@ -0,0 +1,8 @@
+class AdditionalEmailHeadersInterceptor
+  def self.delivering_email(message)
+    message.headers(
+      'Auto-Submitted' => 'auto-generated',
+      'X-Auto-Response-Suppress' => 'All'
+    )
+  end
+end
diff --git a/spec/lib/additional_email_headers_interceptor_spec.rb b/spec/lib/additional_email_headers_interceptor_spec.rb
new file mode 100644
index 00000000000..580450eef1e
--- /dev/null
+++ b/spec/lib/additional_email_headers_interceptor_spec.rb
@@ -0,0 +1,12 @@
+require 'spec_helper'
+
+describe AdditionalEmailHeadersInterceptor do
+  it 'adds Auto-Submitted header' do
+    mail = ActionMailer::Base.mail(to: 'test@mail.com', from: 'info@mail.com', body: 'hello').deliver
+
+    expect(mail.header['To'].value).to eq('test@mail.com')
+    expect(mail.header['From'].value).to eq('info@mail.com')
+    expect(mail.header['Auto-Submitted'].value).to eq('auto-generated')
+    expect(mail.header['X-Auto-Response-Suppress'].value).to eq('All')
+  end
+end
-- 
GitLab